modest maemo summit 09

49
static void _f_do_barnacle_install_properties(GObjectClass *gobject_class) { GParamSpec *pspec; /* Party code attribute */ pspec = g_param_spec_uint64 (F_DO_BARNACLE_CODE, "Barnacle code.", "Barnacle code", 0, 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 [email protected] Modest Creating a modern mobile email client with GNOME technologies

Upload: jose-dapena-paz

Post on 14-May-2015

956 views

Category:

Technology


0 download

DESCRIPTION

Modest 2009 status talk for Maemo Summit 2009

TRANSCRIPT

Page 1: Modest Maemo Summit 09

static void_f_do_barnacle_install_properties(GObjectClass

*gobject_class){

GParamSpec *pspec;

/* Party code attribute */ pspec = g_param_spec_uint64 (F_DO_BARNACLE_CODE,

"Barnacle code.", "Barnacle code",

0, 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 [email protected]

ModestCreating a modern mobile email client with GNOME technologies

Page 2: Modest Maemo Summit 09

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

Page 3: Modest Maemo Summit 09

How big is it?

● Modest

Total Physical Source Lines of Code

(SLOC) = 104,675● Tinymail

Total Physical Source Lines of Code

(SLOC) = 179,363

Page 4: Modest Maemo Summit 09

Goals

Page 5: Modest Maemo Summit 09

Easy to use

Page 6: Modest Maemo Summit 09

Embedded devices

● Small resources● Small screen● Small storage

Page 7: Modest Maemo Summit 09

Multiple UI.Common logic

Page 8: Modest Maemo Summit 09

Gnome UI

Page 9: Modest Maemo Summit 09

Maemo 4/Diablo UI

Page 10: Modest Maemo Summit 09

Maemo 5/Fremantle UI

Next slides... :)

Page 11: Modest Maemo Summit 09

Support for modest common email protocols

● IMAP● POP3● SMTP

Page 12: Modest Maemo Summit 09

Extensibility

New Plugin architecture

Page 13: Modest Maemo Summit 09

Architecture

Page 14: Modest Maemo Summit 09

Architecture

GTKGnome stack

Hildon MaemoplatformM

odest

Tinymai l libtinymail-gtk libtinymail-maemo

libtinymail-camel

camel-lite

IMAP SMTPPOP

ModestPlugin Xproto

Camel Xproto

Xproto daemon

ModestPlugin Yproto

Camel Yproto

Page 15: Modest Maemo Summit 09

Camel-lite

Page 16: Modest Maemo Summit 09

mmap-ed summaries

● Very reduced memory usage● Very compact representation on disk● Efficient use of memory (thx kernel)

Page 17: Modest Maemo Summit 09

Camel features out-of-the-box

● Great support for MIME● Streams based API● Modular extensible

Page 18: Modest Maemo Summit 09

Tinymail

● Multiple platforms● Simplifies Camel API's● Integrated Glib mainloop● Gtk+ widgets● Asynchronous API's. Responsive UI● Modular design

Page 19: Modest Maemo Summit 09

Modest

● Message view based on gtkhtml● Rich message editor based on wpeditor● Offline read of messages and folders● Integration with network status libraries

Page 20: Modest Maemo Summit 09

Migration to Hildon 2.2

Page 21: Modest Maemo Summit 09

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

Page 22: Modest Maemo Summit 09

What to change in Modest?

Goal

Mail simple for everyone!

Page 23: Modest Maemo Summit 09

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.

Page 24: Modest Maemo Summit 09

Main window replacements

Page 25: Modest Maemo Summit 09

Main window replacements

Page 26: Modest Maemo Summit 09

Main window replacements

Page 27: Modest Maemo Summit 09

Main window replacements

Page 28: Modest Maemo Summit 09

Show relevant information

Small space for important information

Page 29: Modest Maemo Summit 09

Show relevant information

Page 30: Modest Maemo Summit 09

Show relevant information

Page 31: Modest Maemo Summit 09

Very complex menus

Diablo hierarchies: 3 levels.

Difficult to browse, not easy to understand.

Hard to... tap.

Page 32: Modest Maemo Summit 09

Very complex menus

● Menus in Fremantle:● Up to 10 options● No hierarchy

Page 33: Modest Maemo Summit 09

No focus

Page 34: Modest Maemo Summit 09

No focus

Page 35: Modest Maemo Summit 09

No focus

Page 36: Modest Maemo Summit 09

Migration to finger widgets

Use pannables

Finger size buttons

Replace comboboxes with touchable selectors.

Page 37: Modest Maemo Summit 09

What we did? More things

● Reused widgets from Diablo, but reorganized in new windows.

● Stacking views. One window at a time.● Pannables everywhere

Page 38: Modest Maemo Summit 09

Challenges

Page 39: Modest Maemo Summit 09

Challenges

● Massive email accounts (Gmail like)● High volume of information in small screens● Performance requirements● Slow network connection● Plugin API

Page 40: Modest Maemo Summit 09

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.

Page 41: Modest Maemo Summit 09

Challenge 2: performance

● Lots of new optimisations● Priority to perceived speed● Show immediately the information user wants to see● Better handling of big messages

Page 42: Modest Maemo Summit 09

Challenge 3: better MIME support

● Signed messages now visible● Reply: adds References fields● Multibody supported now● Reply to HTML-only messages quotes properly

Page 43: Modest Maemo Summit 09

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!

Page 44: Modest Maemo Summit 09

Conclusions

Page 45: Modest Maemo Summit 09

Work done in 2009

● Finger enabled UI● More reliable● Plugins support● Easier for user● Faster, better user experience● Better support of mail standards

Page 46: Modest Maemo Summit 09

Next releases

● More speed and power usage improvements● Live search● Optimize network bandwidth usage

Page 47: Modest Maemo Summit 09

Future

● Pluggable storage support● Daemonize● Take advantage of plugins architecture for new

features● Ports to other devices. Moblin?

Page 48: Modest Maemo Summit 09

Get involved

● https://git.maemo.org/projects/modest● http://modest.garage.maemo.org● #modest @ freenode● [email protected][email protected]

Questions?

Page 49: Modest Maemo Summit 09

Thanks!