* Updated the SOURCES sections of Makefile.am's
[modest] / docs / reference / modest-preface.sgml
1   <preface>
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.
7     </para>
8     
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
20       visible.
21     </para>
22     
23     <para>
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.
28     </para>
29     
30     <para>To summarize the goals for <application>modest</application>:
31       <itemizedlist>
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
34           e-mail);</listitem>
35         <listitem>target Linux/Unix-like environments with GLib/GTK+-based
36           support;</listitem>
37         <listitem>support multiple user-interface (UIs) with as much code
38           sharing as possible between the different UIs.</listitem>
39     </itemizedlist></para>
40     
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>
46
47   </preface>