The purpose of an application framework is to help application development by pro-
viding a standard structure for an application. Applications that have a graphical user
interface tend to have a similar structure, e.g. the event-driven runtime model. The
events are triggered by the user, for example, by touching a button on the touchscreen.
Events can also be triggered by the application engine itself. An example is when
new data is received from the network. The application framework of maemo is called
Hildon. It is partially based on the same technologies that GNOME framework is built
on, most notably the GTK+ components.
Hildon has several additions and enhancements to GNOME/GTK+ including
Hildon widget set, Sapwood theme engine and image server, task navigator, Hildon
control panel and status bar. Some of the changes to standard GNOME like Sapwood,
for instance, are to reduce memory requirements and to improve speed on a small
hand-held device. In addition, Hildon framework has many features to support mobil-
ity like automatic state saving, touchscreen input methods, and window management
on a physically small device.
The programming APIs are familiar to GNOME and GTK+ developers. The frame-
work has GLib and GObject object management system underneath. The GTK+ widget
set is provided with Hildon extensions. The interprocess communication is done using
D-BUS messages. The user files are accessed through GNOME-VFS and multimedia
applications can use GStreamer to get accelerated support for various codecs. User
configurations are stored via GConf and an XML parser API is available.
The figure above illustrates the most crucial components and their dependencies
that the maemo application developer must deal with. These components are explained
in more detail in the next chapters.
10
maemo / maemo 4 Quick Start Guide