views:

333

answers:

2

From here I read S60 is currently amongst the leading smartphone platforms in the world.
However I can't understand:

  • What the S60 does, what is the need for a platform when there already exists an underlying Symbian OS?
  • If I write applications in Symbian C++ or Java ME is it for the Symbian OS or the S60 platform?
  • Can I directly write apps for the Symbian OS bypassing the S60 layer.
+2  A: 

In theory S60 is a UI framework (Avkon) and collection of applications, where as Symbian OS provides the fundamental OS services. In practice it is more complicated because S60 also features middleware and other services not limited to pure UI elements.

Symbian does feature a generic UI framework called UIKON but I don't think it is used very often. Also the Symbian world is pretty much dominated by S60 outside of Japan (which has it's own environment called MOAP).

Not sure about the Java question.

It depends what your application does whether it bypasses S60. You can write very simple apps and OS level services with no dependencies on S60.

tonylo
+6  A: 

S60 is essentially a UI framework and a collection of middleware components on top of Symbian OS. Historically, Symbian provided the base operating system (e.g. kernel, communications, multimedia services, core application engines, reference UI) and device manufacturers added their own code on top of it to differentiate from competition and to optimize their devices for a particular purpose.

S60 is one of these add-ons, originally developed for phones intended for one-handed usage with a keypad. There have been others UI frameworks on top of Symbian OS as well, for example Nokia's Series 80 and Series 90, UIQ and MOAP(S).

Now as Symbian is moving to the Symbian Foundation mode of operation, S60 and Symbian OS are essentially merged into one Symbian Foundation platform. The other UI frameworks have been discontinued. But devices currently on the market still have the distinction between Symbian OS and S60.

  • If I write applications in Symbian C++ or Java ME is it for the Symbian OS or the S60 platform?
  • Can I directly write apps for the Symbian OS bypassing the S60 layer.

Depends on which APIs you use.

With Java ME it's easier to write applications that don't rely on S60-specific add-ons. In C++ it's likely that you want some UI for your app and therefore have to use the S60 Avkon UI. Though, if you want more platform-independent UI for your C++ app, have a look at Qt for S60.

In any case, writing C++ apps so that the same binary can be run on all Symbian OS based devices is practically not possible. In Java, "write once run everywhere" works in theory, but in practice it's more like "write once test everywhere and try to work around the differences between devices".

laalto
"Writing C++ apps so that the same binary can be run on all Symbian OS based devices is practically not possible"... Why so?
Kevin Boyd
@Kevin Boyd: Binary compatibilty breaks between Symbian OS 9.1 and pre-9.1; different UI frameworks etc. If you target a subset of the Symbian OS devices like S60 3rd Edition devices, then binary compatibility is achievable.
laalto
THere still exist cases when compatibility is broken between 3rd and FP1 or FP2 devices. SyncML and Bluetooth settings are some things that comes to my mind.
Riho
@Riho: Yes, sure. But in there the broken BC APIs are relatively small in number. You don't need to use them in every project. If you do use them, you can encapsulate the API use e.g. in an adapter DLL that you load conditionally.
laalto