elementary has been known for its focus on design and ease of use; that’s the primary reason people are so attracted to our apps and OS. Lately, there’s been a stricter focus on also innovating while still keeping that excellent design and improving ease of use. We’re finding more ways to give users the best experience in elementary.
First, let's look at GTK3 and the status of apps we ship. I’m proud to say it looks like all but possibly one shipped app will utilize GTK3, the next-generation toolkit, instead of GTK2. This means elementary will be prettier and faster as a whole. This is great for the users and developers alike, as it means both more consistency and easier development.
One result of this push for more consistency in interfaces and focus on improving user experience is that we’ve decided to drop a few apps from Luna. We shipped both AbiWord and Gnumeric in Jupiter simply because we felt we should include some GTK-native office apps, but they were not well-accepted and simply don’t perform up to elementary standards. In addition, they have been poorly-developed with infrequent updates, and they have no obvious plans regarding GTK3. We’ve also decided to drop Transmission as it’s more of a power user tool; average users won’t use it and those who know what it is will be the type of user who knows how to download it. These apps will continue to be available for installation in elementary, but we will no longer include them in the default install.
Following up the announcement of Switchboard, we decided to undergo a plug sprint to get the essential plugs developed and tested. We put our team of designers to work on providing mockups, and many developers helped pump out some code. This sprint was another win for users and developers, as it gave developers who are starting out something small and manageable to work on, and users will get all of the wonderful plugs.
Next, let's look at the elementary widget library, Granite, and some ways we’re looking to improve it. For those who are unfamiliar with Granite, it’s what brings consistency and ease of development to elementary apps; it is a widget library that includes all the elementary-style bits you’re probably familiar with (but aren’t in GTK by default): AppMenu, the Search field, Contractor, and much more. Instead of developers recreating the wheel each time, they simply use Granite’s wheel.
We’re now looking at possibly expanding Granite to cover two more important widgets: the “file picker” dialog and the “about” dialog. The file picker is what you see whenever you open or save a file, and is a widget hard-coded into GTK itself. Unfortunately, the GTK widget is extremely lacking and confusing, especially when compared to Marlin. The about dialog is a similar story; it’s hardcoded into GTK and is not very nice to use. By including the file picker and about dialogs in Granite, we’re making it easy for developers to make beautiful apps that fit right into the elementary desktop. Also, there’s nothing keeping developers who make their apps for other GTK-based platforms from using Granite; it will still make using the wonderful elementary widgets simple, even if it’s not on elementary.
By tackling these issues of consistency, we’re making elementary rock even more. Critics may point out that we’re recreating things instead of collaborating with upstream--which is an understandable concern--but there are many valid reasons to do so. First of all, our approach is to first work with upstream if possible, and to revert to doing it ourselves if we’re not able to get it upstream. Second, our goal is consistency with the rest of the desktop, and our vision of a perfect desktop oftentimes differs from that of upstream. And lastly, our apps already use the Granite widget library for many widgets, and including these improved dialogs in Granite makes sense since they themselves will be utilizing Granite widgets.
We continue striving to be the best open desktop platform, and it’s times like these I get excited and am reminded that we really can make a difference through our work. How else can we improve consistency and ease of use? Let us know what you think in the comments!