Series 60 Platform builds on the Operating System from Symbian, complementing it with a configurable graphical user interface library and a comprehensive suite of applications plus other general-purpose engines. Series 60 is a complete smartphone reference design.
A set of robust components and APIs are provided for developers in Series 60 SDKs. The APIs provided are widely used by the suite of "standard" applications that are an integral part of Series 60 Platform. However, the extensive APIs were designed for use by third-party application developers as well.
The core of Series 60 Platform is Symbian OS GT (Generic Technology) layers ”see Figure I-1. Series 60 adds the extensive Avkon UI layer, a full suite of applications based on the Avkon and Uikon libraries plus a number of key application engines ”see Figure I-2. Series 60 Platform contains the majority of the user interface and framework APIs used by third-party GUI applications.
There are also a number of platform-specific dynamic link libraries, executables and device drivers ”for example, to control the specific keyboard, display, real-time clock (RTC), Bluetooth, IrDA and persistent storage devices. Symbian OS communicates with the device's core cellular software through a well-defined interface (ETel), based on a Client/Server architecture.
Porting Series 60 to a new target hardware platform will involve production of some low-level hardware-specific code such as device drivers. This can be a large specialist task and is beyond the intended scope of this book.
A number of the key Series 60 applications or system facilities provide shared access to their data or functionality by making their engines available through public APIs. Examples include Event Logging, Photo Album/Image Gallery, Browser engine and CommDB (a database containing communications and connection settings). These engines use system services from lower layers. For example, the WAP Loader uses the WAP Stack to fetch data using the Wireless Application Protocol. The WAP Stack, in turn, uses the Socket engine in the Communication layer for network access, which in turn uses the ETel engine for hardware-specific telephony data access. In general, engines may be layered upon each other.
The Avkon library defines many user interface components and application framework components. Some key examples are:
Status pane ” framework and contents
Main pane ” listbox, form, options menu, grid, query, note, soft notification and settings page
Control pane ” soft keys and scrolling indicator
Avkon builds on and extends the framework and controls provided in the generic Symbian Uikon library and a version of the Standard Eikon library (from Symbian) modified for Series 60 by Nokia.
Each GUI application is then based on framework classes provided as part of the Avkon library and on the UI layers below that ”for example, in Uikon. The majority of Series 60 user interface elements are based on standardized controls provided by the UI libraries or as specific custom controls provided by the developer. The Series 60 GUI library determines the rendering of all GUI elements, so the individual applications share a common look and feel.
As much as 80 percent of the code for an application may be contained in the application engine, which, if it is well designed, should contain no UI code. The UI may account for only 20 percent of an application's code base, and it can share components and services from all Symbian generic and Avkon elements.