Introduction
modest is a mail user agent
(MUA) targetting small devices, in particular Nokia's
Nokia 770 Internet Tablet. This document
describes the design and implementation of this software.
modest lives at the top of a extensive
stack of software. It is built on top
of tinymail, and uses its libcamel
backend. It strives to the be a simple yet powerful program, geared
towards small devices, for example (but not limited
to) Nokia's 770 internet tablet. An important
goal is to minimize memory usage while still being able to handle
significant amounts of email quickly; much of that is achieved simply by
using tinymail, which uses a number of clever
tricks for that, such as the proxy design pattern for listing email
headers, and not needing memory for headers which are not currently
visible.
modest, in turn, also tries to be efficient,
fast and scalable. That means that the MUA should
support multiple user-interfaces, perhaps making it even possible to
switch between them during runtime.
To summarize the goals for modest:
target devices with limited amounts of memory ('limited' in 2006
terms means less than 64Mb, and of which only part can be used for
e-mail);
target Linux/Unix-like environments with GLib/GTK+-based
support;
support multiple user-interface (UIs) with as much code
sharing as possible between the different UIs.
Like tinymail
and libcamel, modest
is programmed in C, using the GObject-system for
object-oriented (OO) features. For now, it specifically targets \gtk based
UIs (and derivatives like 'Hildon').