TimeFist Technical Consulting
 
SYMBIAN PLATFORM
Symbian is a mobile development platform advocated by Nokia and its partners since 2002. It has a market share of 66.5% in Q1 2006. Its biggest competitor is Linux advocated by Motorola, which has a market share of 24.4% in Q1 2006.
company
services
technologies
tean
contact

TECHNOLOGY BEHIND SYMBIAN

Symbian is a C++ library, with some limited support to C library. Compared with C++, Symbian has its own memory management due to the tight memory constraints in mobile platform, such as 2-Phase construction and TRAP Harnesses for exception handling. It also has its own thread model called Active Object (AO). Active Object is a single-threaded framework that allows non-preemptive multi-tasking. It is a lightweight method to provide asynchronous services. In addition, Symbian also has its own multi-threaded model and server-client model. Multi-threaded model can be used when preemptive services are required (usually for longer services). Server-client model is the most expensive in terms of resources and performance, but it provides maximum memory isolation and robustness. It is usually used to provide sharable “resources”, such as file system, network connection, databases, etc.

Porting C codes to Symbian is never trivial. Although Symbian does support STDLIB, the usage could be so different that extra effort may be needed to handle surprises. For example, the threads’ resources in C or Linux are shared within a process, while those in Symbian are private and cannot be shared with other threads without extra complexity. This makes the port and environment sharing difficult in Symbian. Moreover, prior to Symbian OS version 8.1b, static and global variables are not supported in Symbian. Thus, extra effort is required to port those static/global variables to Thread Local Storage (TLS) in Symbian, which is usually a tedious task. Since OS version 8.1b (EKA2 kernal), Writable Static Data (WSD) is introduced to support static/global variables with some memory tradeoff . In general, porting existing C codes to Symbian may save you some time than writing from scratch, and the codes can be improved to product quality if the C library limitations are not hit and the memory footprint is reasonable. For GUI applications, native Symbian models are required, or you can write a Symbian GUI wrapper to a C-style engine.

CHOOSING SYMBIAN

Whether to develop your application on top of the Symbian platform really depends on the target phones you want to support. Symbian phones are usually marketed as middle to high end products. Thus, Symbian users will have demands for office, gaming and media streaming applications. The programming alternative of Symbian platform is mainly J2ME, a platform which is based on Java programming language and runs across multiple mobile platforms. Symbian could be a better choice if performance is a key issue, such as gaming and streaming applications. Otherwise, J2ME provides better portability and return to investment, and is a good choice for mobile enterprise, personal and office applications.

LEARNING SYMBIAN

To learn Symbian, you can download the SDK for free from Forum Nokia. Before installing the SDK, It usually requires you to pre-install CodeWarrior or Visual Studio .NET. Currently, the recommended IDE has moved away from CodeWarrior to Carbide C++. Both of them should provide better debugging for target phones. However, for learning Symbian, any supported IDE should be adequate. The SDK provides a phone emulator that allows you to develop applications without a real phone. If you are not sure which version of SDK to download, you can start with the latest SDK of S60 platform. Or, your chosen target phones should tell you which platform is needed. After installing the SDK, you should start playing with their HelloWorld applications.
Copyright © 2004-2006 TimeFirst LLC.