Modest Maemo Summit 09

1,137 views
1,047 views

Published on

Modest 2009 status talk for Maemo Summit 2009

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,137
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
26
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Modest Maemo Summit 09

  1. 1. static void Modest _f_do_barnacle_install_properties(GObjectClass *gobject_class) { GParamSpec *pspec; Creating a modern mobile email /* Party code attribute */ pspec = g_param_spec_uint64 (F_DO_BARNACLE_CODE, "Barnacle code.", "Barnacle code", 0, client with GNOME technologies G_MAXUINT64, G_MAXUINT64 /* default value */, G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_PRIVATE); g_object_class_install_property (gobject_class, F_DO_BARNACLE_PROP_CODE, José Dapena Paz jdapena@igalia.com
  2. 2. Brief history ● Started in 2006 ● 2007 Targeted for Maemo Chinook ● December 2007 first beta release ● 2008 Maemo Diablo ● 2009 Development becomes public. Repository moved to GIT ● Now. Maemo Fremantle release
  3. 3. How big is it? ● Modest Total Physical Source Lines of Code (SLOC) = 104,675 ● Tinymail Total Physical Source Lines of Code (SLOC) = 179,363
  4. 4. Goals
  5. 5. Easy to use
  6. 6. Embedded devices ● Small resources ● Small screen ● Small storage
  7. 7. Multiple UI. Common logic
  8. 8. Gnome UI
  9. 9. Maemo 4/Diablo UI
  10. 10. Maemo 5/Fremantle UI Next slides... :)
  11. 11. Support for modest common email protocols ● IMAP ● POP3 ● SMTP
  12. 12. Extensibility New Plugin architecture
  13. 13. Architecture
  14. 14. Architecture GTK Modest Modest Modest Gnome stack Plugin Xproto Plugin Yproto Maemo Hildon platform libtinymail-gtk libtinymail-maemo Tinymail Camel Xproto Camel Yproto libtinymail-camel camel-lite Xproto daemon IMAP POP SMTP
  15. 15. Camel-lite
  16. 16. mmap-ed summaries ● Very reduced memory usage ● Very compact representation on disk ● Efficient use of memory (thx kernel)
  17. 17. Camel features out-of-the-box ● Great support for MIME ● Streams based API ● Modular extensible
  18. 18. Tinymail ● Multiple platforms ● Simplifies Camel API's ● Integrated Glib mainloop ● Gtk+ widgets ● Asynchronous API's. Responsive UI ● Modular design
  19. 19. Modest ● Message view based on gtkhtml ● Rich message editor based on wpeditor ● Offline read of messages and folders ● Integration with network status libraries
  20. 20. Migration to Hildon 2.2
  21. 21. Hildon 2.2/Fremantle philosophy ● Proper experience with finger in small screens. No stylus ● No focus in views ● Actions not repeated through UI ● No hierarchies in menus ● No scrollbars ---> Use pannables ● No tabs ● Stackable windows
  22. 22. What to change in Modest? Goal Mail simple for everyone!
  23. 23. Main window replacements ● Diablo main window: very complex. ● Required stylus. Fingers usability was almost broken. ● Move from old main window to “one window per object handled”. Stackables. New window management.
  24. 24. Main window replacements
  25. 25. Main window replacements
  26. 26. Main window replacements
  27. 27. Main window replacements
  28. 28. Show relevant information Small space for important information
  29. 29. Show relevant information
  30. 30. Show relevant information
  31. 31. Very complex menus Diablo hierarchies: 3 levels. Difficult to browse, not easy to understand. Hard to... tap.
  32. 32. Very complex menus ● Menus in Fremantle: ● Up to 10 options ● No hierarchy
  33. 33. No focus
  34. 34. No focus
  35. 35. No focus
  36. 36. Migration to finger widgets Use pannables Finger size buttons Replace comboboxes with touchable selectors.
  37. 37. What we did? More things ● Reused widgets from Diablo, but reorganized in new windows. ● Stacking views. One window at a time. ● Pannables everywhere
  38. 38. Challenges
  39. 39. Challenges ● Massive email accounts (Gmail like) ● High volume of information in small screens ● Performance requirements ● Slow network connection ● Plugin API
  40. 40. Challenge 1: massive email accounts ● Improved speed handling massive folders ● Faster response loading folders window ● Show fast last readed messages (the ones user wants to see) ● Lots of bugfixing and performance improvements. ● More reliable now with very big folders.
  41. 41. Challenge 2: performance ● Lots of new optimisations ● Priority to perceived speed ● Show immediately the information user wants to see ● Better handling of big messages
  42. 42. Challenge 3: better MIME support ● Signed messages now visible ● Reply: adds References fields ● Multibody supported now ● Reply to HTML-only messages quotes properly
  43. 43. Challenge 4: plugin architecture ● Support for adding other protocols as plugins ● Storage and transport as camel backend plugins ● Modest plugin for UI side ● Other protocols? NNTP? RSS? You're invited!
  44. 44. Conclusions
  45. 45. Work done in 2009 ● Finger enabled UI ● More reliable ● Plugins support ● Easier for user ● Faster, better user experience ● Better support of mail standards
  46. 46. Next releases ● More speed and power usage improvements ● Live search ● Optimize network bandwidth usage
  47. 47. Future ● Pluggable storage support ● Daemonize ● Take advantage of plugins architecture for new features ● Ports to other devices. Moblin?
  48. 48. Get involved ● https://git.maemo.org/projects/modest ● http://modest.garage.maemo.org ● #modest @ freenode ● modest-devel@garage.maemo.org ● modest-users@garage.maemo.org Questions?
  49. 49. Thanks!

×