android iphone symbian and webos

Android:

Android is an open source mobile OS platform that’s running on top of Linux kernel. It uses a non-standard Java Virtual Machine called Dalvik, specialized to handle mobile device processes. The main programming language used for Android is Java, with many library from J2SE and third party open source projects, such as Apache commons, sqlite, webkit, etc.

Android is tightly integrated with Google’s cloud services, such as Gmail, Calendar, Contacts, Gtalk, etc. This positions Google at a very good edge to monetize mobile ad revenues.

Android’s open source nature enables manufacturers to design and customize the platform to their own likings. So fragmentation is a concern here. However, the core Android OS provides more than enough features for current mobile devices’ needs. As it evolves, it might include more standardized features, and the OS platform can only become better and better.

There are announced handsets using Android coming out this year from LG, Samsung, Motorola, Lenovo, just to name a few. With carriers like Sprint and AT&T getting Android-powered devices under their offerings, along with T-mobile, the landscape for Android development cannot be underestimated.

On top of that, Android is also being developed for Netbook, ebook readers, and a slew of other electronic appliances. So it’s more than a mobile device OS. This is something Sun attempted with their Jini technology 10 years ago but failed miserably. Android is realizing it now.

Symbian:

Symbian was a proprietary operating system for mobile devices until recently, under Android’s huge challenge and losing market ground, Nokia bought all the Symbian outstanding shares, and created Symbian foundation and declared it open source.

The main platforms for Symbian includes S60 and UIQ. UIQ was closed down and all people got laid off shortly after the creation of Symbian foundation. As to how appealing open source Symbian to developers are yet to be seen. S60 series are no doubt the leader in number of installed base today. However, Symbian’s market share, especially in the smartphone area, are getting smaller and smaller largely due to iPhone.

The main language used for Symbian programming is J2ME and C++. C++ API provides more lower level device access than J2ME. However, their C++ implementation is unnecessarily complex and error-prone. Their paradigm is not suitable for the needs of modern mobile computing. It will require them a great efforts to deliver something comparable to Android and iPhone.

Palm’s WebOS:

Palm’s webOS utilized standards such as HTML, CSS, and JavaScript as their main building blocks. It’s Mojo AJAX framework is based on Dojo. It also uses webkit as its browser engine, with sqlite as local storage, part of HTML5 standards. The fact that it’s based on many W3C standards and uses web technologies will attract many web developers.

It uses JavaScript as a bridge to the native device functions, such as GPS, power management, accelerometer, etc. Intel has some JavaScript toolkits are similar in this fashion but Mojo takes this many steps higher. It also supports notifications and background services, similar to Android.

WebOS also supports multi-touch gesture-based system. This might potentially infringe Apple’s multi-touch patent. We will see how it works out in the end.

Apple’s iPhone:

iPhone is by far the most powerful and elegant mobile OS yet. It’s based on Mac OS X (which is based on freeBSD). The UNIX kernel with POSIX-thread is well suited for mobile computing processing needs. iPhone’s Coca Touch UI paradigm redefined the mobile UI. Its multi-touch gesture based navigation system is the most advanced currently in the market. There have been enough articles on iPhone so I will not try to elaborate again here :).

The main programming language used for iPhone programming is Objective-C, a super-set of C and C++. You can use any of these 3 languages, mixed too, for your application. iPhone also has the webkit as well. (webkit was developed by Apple and released as open source project). Sqlite is also used for local storage.

There are more than 20,000 apps currently on the AppStore. It’s clear Apple is the winner here, although iPhone does not have the most advanced hardware in its system. The conclusion is: it’s software that makes mobile device great, not hardware.

Another interesting trend is the ever-growing tie between mobile browsers (webkit-based) and device native APIs. With open standards such as HTML5 (sqlite as local storage) and JavaScript, there will be many hybrid applications coming out. The AppStore model for native apps are certainly great and hugely successful. But we cannot overlook the potential of browser-based apps that takes advantage of open standards and cloud computing. The recent Safari 4 beta is a good example of how AppStore model can be adapted to browser. Apple, in this regard, is truly innovative!

6 COMMENTS

LEAVE A REPLY

Please enter your comment!
Please enter your name here