Stuff Michael Meeks is doing
Older items: 2010: ( J F M ), 2009: ( J F M A M J J A S O N D ), 2008: ( J F M A M J J A S O N D ), 2006, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, legacy html
Some ramblings about the creation of a new user interface for mail, calendaring etc. specifically for MeeGo; something I've been working on, amongst other things, for the last three months.
Initially for Moblin 2.1 we tried a more invasive re-working of the user-experience: called Anjal. That was not uniformly positive, missing many features (by design), and didn't have enough time to mature. As such, it was decided by the MeeGo team that we should try a new approach. This would take Evolution, and adapt it's UI for the netbook screen-size, tweaking all the relevant defaults. We would merge the best features from Anjal, and then build from there. The result is some great MeeGo, netbook goodness, despite being done at high speed over three months.
It is important to realise that ~all netbooks have a 1024x600 screen - giving very, very few pixels - particularly vertically (most apps are tuned for at a minimum 1024x768) and as such lots of tweakage was needed to save vertical space. As Linus' Coding Style document suggests - vertical space is a non-renewable resource, and we need to conserve it: just adding scroll-bars is an ugly cheat. This quest for vspace is nastily exacerbated by the terrible touch-pads that so many net-books have, meaning we need lots of extra padding around widgets to avoid them being clicked by accident.
The Evolution team of course ! None of this would have been possible without lots of help from Novell, RedHat, Intel, Collabora, and all of the other guys who have worked so hard over the years making it rock: thank you, it's been dead fun working with you all.
Having said that, there were some particular stars in the team here here: Chen who implemented IMAP-X (substantially improving IMAP interactivity). Federico for incisive bug fixing and squashing of the UI to fit into the available pixels. Matthew Barnes fixing defaults, moving search into the toolbar, and re-factoring and cleaning code. Srini - who wrote the original Anjal code, and advised / fixed issues, and whom with Ross Burton did the hard grind to get the evolution-data-server (e-d-s) port to DBus up-stream. Thanks too to Colin and Thiago who speedily reviewed and merged a core DBus threading fix without which our interactivity was terrible. Naturally the UI work was based on great advice and design from Nick Richards and Claire at Intel, and new icons from Hylke Bons & Jakub Steiner. Finally, I did some real Evolution hacking myself, which was fun after an eight year break, and I was dead pleased: the code base is far cleaner, more beautiful, and hack-able than it was back then; good stuff.
In contrast to Moblin 2.1 which shipped with a very heavily patched e-d-s, Evolution etc. to make Anjal work, the code for Evolution Express is all up-stream. Matthew merged the 'express2' branch (based on gnome-2-30) into master yesterday - so all of this, and more, should ship in Gnome 3.0. The project plan (for what it is) is in the wiki here.
The first thing missing in Evolution was a simplified user experience. To this end, we split the Calendar from the Mailer + Addressbook. Of course, both are still implemented by the same process, but we tweaked the code to allow launching the Calendar without configuring Evolution first, and to avoid E-mail related interactions there. Providing separate .desktop files for each of the three also helps make them more findable in the application launcher.
Then of course, we want a simple first-time setup. Re-using the nice Mozilla generated provider database (thanks guys), we merged Srini's Anjal account setup code (which is now also available as an out-of-process capplet - with Evo updating properly on changes). This gives a great first-start experience:
Firstly, Express mode is better when running under MeeGo - it will detect that we are using the netbook's window-manager, and maximise windows, and turn off the (un-necessary) Window-manager decoration, to save vspace. If you see no window decoration in a screenshot - that is because there is none.
Auditing the menus, and toolbars - it turned out there was a load of cruft that was not that useful for a typical netbook user, and possibly downright confusing. We added a semi-generic way to special case the UI XML descriptions for Express mode, and re-organised and simplified the 'search' bar into the toolbar to save vspace. We also dropped the huge, scary 'Cancel' button, since operations can be cancelled from the status bar anyway. The result looks like this:
We also did a large, and hard-to-notice chunk of work to simplify the preferences dialog (so they actually stay on the screen), we also dropped preferences that are not relevant to the component, eg. the Calendar preferences from the mailer:
The component switching functionality was discarded from the mailer, instead - we always launch the mail view - and a button to access the addressbook added to the toolbar. That view looks pretty similar to the existing Evolution view, but we had to cleanup and compress the Contact editor to get it onto the screen, that looks like this:
The calendar, luckily was sufficiently simple that we could remove the menu-bar altogether, (thus avoiding the horrible theme bug you can see in the close button jammed next to the menu-bar in the mailer shots). We also dropped the status bar (as in the addressbook) - since it is not that useful here. The result looks like this:
The biggest beneficiary of removing extraneous component's settings is the calendar's property dialog - which looses it's icon selector. We also removed the ability to manually select a timezone, instead always following the system timezone.
The appointment editor, now so easy to trigger via the MyZone, was also extensively overhauled. For a long time this has been rather an unpleasant dialog. Now all Evolution users will get an improved tabbed look, that exposes more useful functionality in an easy-to-find way, rather than having some toolbar icon that pops a separate dialog out:
Not strictly Evolution of course, but Srini and Rob Bradford did some great work making the MyZone panel, and the clock drop-down work well with evolution-data-server to allow a pretty, integrated view of of what is going on. The time drop-down looks like this:
There are no laurels to rest on here; work continues cleaning up the visual look (somewhat hindered by a last minute change of MeeGo theme). And implementing a list of missing feature and improvements. The wiki contains a plan. All help with that gratefully received - Evolution (these days) is a great place to start hacking, and there are lots of low hanging fruit around tweaking and improving the UI, not just for netbooks. Mail me, or check out Gnome Love to get involved.
Clearly the netbook work points to some of the UI deficiencies
that we have suffered in Evolution for a while. Some of the work will
appear in the stock version of Evolution, other changes I hope will
inspire new, and better ways of doing PIM user interface in both
products and of course
evolution --express will allow
you to check-out the work in GNOME 3.0.
For me, it's been a real pleasure to get involved in contributing to Evolution, and help to lead this work. Incidentally, (to whom it may concern), this very afternoon I shall be generously accepting free drinks at the aforementioned appointment from around 5pm-ish.