2 <title>Introduction</title>
3 <para><application>modest</application> is a mail user agent
4 (<abbrev>MUA</abbrev>) targetting small devices, in particular Nokia's
5 <productname>Nokia 770 Internet Tablet</productname>. This document
6 describes the design and implementation of this software.
9 <para><application>modest</application> lives at the top of a extensive
10 stack of software. It is built on top
11 of <application>tinymail</application>, and uses its libcamel
12 backend. It strives to the be a simple yet powerful program, geared
13 towards small devices, for example (but not limited
14 to) <productname>Nokia's 770 internet tablet</productname>. An important
15 goal is to minimize memory usage while still being able to handle
16 significant amounts of email quickly; much of that is achieved simply by
17 using <application>tinymail</application>, which uses a number of clever
18 tricks for that, such as the proxy design pattern for listing email
19 headers, and not needing memory for headers which are not currently
24 <application>modest</application>, in turn, also tries to be efficient,
25 fast and scalable. That means that the <abbrev>MUA</abbrev> should
26 support multiple user-interfaces, perhaps making it even possible to
27 switch between them during runtime.
30 <para>To summarize the goals for <application>modest</application>:
32 <listitem>target devices with limited amounts of memory ('limited' in 2006
33 terms means less than 64Mb, and of which only part can be used for
35 <listitem>target Linux/Unix-like environments with GLib/GTK+-based
37 <listitem>support multiple user-interface (UIs) with as much code
38 sharing as possible between the different UIs.</listitem>
39 </itemizedlist></para>
41 <para>Like <application>tinymail</application>
42 and <application>libcamel</application>, <application>modest</application>
43 is programmed in C, using the <package>GObject</package>-system for
44 object-oriented (OO) features. For now, it specifically targets \gtk based
45 UIs (and derivatives like 'Hildon').</para>