This article provides an overview of the evolution of UI layers for Symbian OS. Following the open sourcing of Symbian and the demise of UIQ the only UI layer of interest to Symbian C++ developers is AvKon, which provides the S60 look and feel over the ui-agnostic Uikon layer. This article is provided only to help developers understand what the older terms mean.
In Symbian OS v5, the graphics framework was known as Eikon. That version was originally intended to support both narrow (8-bit characters) and Unicode (16-bit characters) builds but, in the end, only the narrow build was supported. Symbian OS v 5.1 contained the changes necessary to support Unicode builds and, from that version onwards, Unicode became the only supported build. To reflect this change, the name of the graphics framework was changed from Eikon to Uikon.
All later versions of Symbian OS support customization of the user interface (UI), depending on the features of the target machine, such as the size and aspect ratio of the screen, whether it supports keyboard and/or pen-based input and the relative significance of voicecentric or data-centric applications. These differences are largely implemented by the creation of additional UI layers above Uikon.
The S60 UI, based on Symbian OS v6.1, uses an additional layer known as Avkon to modify the behavior and/or appearance of the underlying Uikon framework. UIQ, based on Symbian OS v7.0, uses Qikon to perform a similar task.
Qikon and Avkon are the names of the UI-Specific application framework layers implemented on top of the common Symbian OS UI framework, which is called Uikon. Qikon and Avkon implement framework classes defined in Uikon which must be overridden further by application writers.
Uikon provides the base classes for the threee fundamental UI classes:
- The Application (CEikApplication)
- The Document (CEikDocument)
- The Application UI (CEikAppUi)
All S60 and UIQ applications minimally need to define their own classes that derive from these base classes, but from the UI-specific implementation of them.
These implementations have the same name as the Uikon classes but in UIQ the CEik prefix is replaced with CQik and S60 uses CAkn.