Centigrade specializes in creating GUIs, in many projects with a particular focus on the implementation of Java Swing based GUIs for desktop applications. With the advancement of the mobile market, it is an obvious step for Centigrade to also have a look at Java based mobile GUIs. This article gives an overview on the mobile market today and includes a comparison of the two major Java players in that sector, Google Android and JavaFX.
Where Are We Today?
Regarding the mobile market, we are witnessing a transition from 2G (2nd generation or GSM) to 3G (3rd generation or UMTS). Availability of internet connectivity grows, bandwidths increases and become more affordable. This results in a broader selection of internet-enabled services, comparable to those that we are already used to from desktop computers. Furthermore, modern mobile devices are able to execute applications even if these have high demands on performance. In the early days of mobile telephony, a mobile phone was shipped with an operating system and a set of preinstalled applications. But thanks to more sophisticated operating systems and runtime environments running on such devices combined with the new extent of connectivity that 3G implies, the market for custom application for mobile phone is growing rapidly. However, as often, this rapid technological advancement results in a very heterogeneous market situation in which innovation is sometimes paired with immature technology.
Maturity and adoption of mobile technologies can be illustrated in a “5 phase hype cycle”, a method to illustrate the evolution process of new technologies in general. For the development and dissemination of 3G it shows that in the year 2000, with the expensive auctions of mobile licenses for 3G frequencies, expectations have been enormous. This point is called the “Peak of Inflated Expectations”. Several years later, public attraction diminished, even leading to doubts about the technology in general – this point in time is called the “Trough of Disillusionment”, at which people tried to leverage the poor possibilities that the 2G infrastructure provided back then – with little satisfaction. But with the iPhone and improved infrastructures the “Slope of Enlightenment” was reached and the ”Plateau of Productivity” started to emerge.
Mobile Market Vendors Overview
In today’s mobile platform market there are several players, some of which focus more on software development while others mainly engage in hardware development. Also, there are some companies, such as Apple, that are active in both domains.
The following table provides an overview over hardware and software vendors in the mobile market. For those vendors that (also) develop software, the it shows whether they provide an entire operating system, a web browser or some kind of other runtime environment that enables applications to run on different mobile devices.
|Mobile Market Player||Hardware||Operating System||Cross-OS Runtime Environments|
Java ME, JavaFX
|Microsoft Silverlight||Adobe Flash|
|–||Android||Android Browser,||Java ME Tests,||Microsoft interested in Android support||TechDemo and plans|
|Microsoft||–||Windows Mobile||Internet Explorer, Opera Mobile||JavaME,||Planned for Windows Mobile||Support given|
|Nokia, Motorola and Samsung||Several
(e.g. Nokia S60)
|Symbian OS, ExplicitlyNO Android plans||Opera Mobile / Mini||Java ME, noplans for JavaFX||Planned for Nokia S60/ Symbian||Support for some devices and plans|
|SonyEricsson||Several (e.g. X1)||Symbian OS,
|Own browser, Opera Mini||Java ME, JavaFX Partner||–||Support for some devices|
|LG||Several (e.g. LG Chocolate)||Windows Mobile, Android planned, …||Opera Mini, LG Web Browser||Java ME, JavaFX Partner||–||Support for some devices|
|Linux Distributors||–||Linux (Limo, TuxMobile, Mobile Linux)||Opera in progress||Java ME||–||–|
|Apple||iPhone||iPhone OS (a.k.a. Mac OS X)||Safari||Former plans by Sun, Rejection by Apple||–||Rejection by Apple|
|Research in Motion (RIM)||BlackBerry||BlackBerry OS||Opera Mini, BlackBerry Browser||Java ME||–||Rejection by RIM|
|Palm||Palm||Palm OS||Opera Mini, Palm Blazer||Java ME||–||Plans|
|HTC||several (e.g. G1, HTC Magic)||Android, Windows Mobile, Symbian||Opera Mini, depends on OS||depends on OS||depends on OS||depends on OS|
Interesting Market Situation – An Excursion to Statistics
Market Share by Hardware Vendor
The following diagram by Gartner, Inc. shows the market share of different hardware vendors during the 4th quarter of 2008. Nokia is leading with 40%, followed by Research in Motion (RIM, BlackBerry) with about 20%, followed by Apple (iPhone) with 11%. HTC and Samsung have about 4% share each. (It should be noted that HTC actually has a larger share as it offers white-labeled products, so that some of the players that fall in the “Others” category may in fact are rebranded HTC devices.) (Source: Gartner, Inc.)
Growth compared to the 4th quarter of 2007 denotes Samsung with 138%, Apple with 112% and RIM with 85%.
Since Java ME is mostly available on Nokia, RIM, HTC and Samsung devices, a cautiously optimistic market share of about 70% to 80% can be assumed.
Market Share by Operating System
The statistics on market share by operating system in 2008 show that Symbian is dominating the market with 52%, despite a declining tendency of -6% compared to one year before. But the runner-up, RIM, follows with only 17%, then Windows Mobile with 12%. Mac OS X (iPhone) and Linux follow with a market share of about 8% each. Watching the growth rate, Mac OS X with 245% is the most notable OS. But also BlackBerry’s (RIM) growth of about 97% is worth being mentioned.
Market Share for Mobile Internet by Platform
To complete the market survey, the following diagram shows the usage of platforms for mobile search issues among the leading search engines in February 2009. The most obvious fact is the enormous domination of Apple’s iPhone, which covers 66% of the mobile internet search market. Java ME follows with 9%. It is one of the longest established technologies, serving as a base for a lot of applications (e.g. the widespread Opera Mini browser). Windows Mobile, Google Android and Symbian all cover a range of about 6%. An interesting note here is that Google Android is just available for only a few devices and initially entered the market in October 2008, which is just five months ago. Windows Mobile has comparable shares, despite the fact that it is available for about 9 years now.
It is interesting to note that the internet search engine usage statistics are not even close to the market share values of operating systems and vendors. This allows for the interpretation that the way of accessing or using the internet through an iPhone and a Google Android-based phone must be revolutionary different to others.
Custom Applications on All Devices
The usage of application on mobile devices can be categorized into four evolutionary steps:
- Early days: Mobile phones were shipped with a set of preinstalled applications.
- Today: Users can install further custom applications in addition to preinstalled ones via download websites, e.g. the Apple’s App Store for custom iPhone apps is a very successful example in this case.
- Near future: One implementation of an application can be used on nearly all kinds of mobile phone
- Vision of the farer future: One implementation of an application can actually be used on all kind of devices, which beside mobile phones, also includes devices such as netbooks, laptops, desktop computers or TV set top boxes.
Flash Lite, Silverlight Mobile and JavaFX are runtime environments that strive towards serving the requirements of the near and farer future. Yet, the internet browser, as a kind of light-weight runtime environment, is also still of unbroken popularity for future development as it provides a more-or-less standardized means to develop a single web application that runs on all operating systems that support this internet browser. Custom applications running on all devices will probably become an enormous market. However, the market overview above shows that today’s heterogeneous market situation might result in the vision of having one implementation running on all platforms being still unrealized for a while.
As a quintessence of this short excursion to statistics, it can be said that in the future an application development platform that allows developing easily for many different devices will have a higher chance of succeeding than others.
One Platform for All Devices – A Java Principle
A slogan around the Java technology states “Write once, run everywhere”, which indicates that Java is a platform including a runtime environment that aims to run one app on a vast majority of devices and operating systems. Therefore we take a closer look at two Java based technologies for mobile usage: Google Android and JavaFX.
Google Android is an operating system that is targeted primarily at mobile phones, but also at netbooks. It is published by the Open Handset Alliance, a consortium of leading mobile technology partners from hardware vendors to network operators and software companies. (Find a detailed list here). The Android development process is mainly supervised by Google. Most of the operating system’s source code is published under a free license, but some core parts fall under a proprietary closed license. Apps for Android are written in the Java language, but the development tools and technologies are not consistently compatible with the well-known Java standards. Most notably, Android uses a JVM derivate, the so-called Dalvik Virtual Machine, written by Google, to avoid dependencies on Sun Microsystems’ JVM. As a consequence, Android apps do not run on devices that just have a standard Java Runtime Environment (JRE) installed.
The primary website for interested Android developers is developer.android.com. To get a general visual impression, the following graphics show some common GUI examples of Google Android screens.
JavaFX is a software platform for a huge variety of mobile and non-portable devices, which includes desktop, mobile and browser applications. Sun Microsystems, established a new slogan for JavaFX, that JavaFX applications run on “all the screens of your life”, which underlines the visionary aim of having one single implementation for all devices.
The API offers different profiles. The “common” profile provides rudimentary functionalities that work on every type of device, also on mobile phones. The “desktop” profile provides more extended features but currently is bound to run on desktop machines only. E.g. it offers a full-fledged GUI toolkit such as Java Swing.
When having a look at JavaFX Mobile, we should not neglect Java ME as a long-established and the most widespread mobile runtime environment. Among other things, Java ME today is the de facto standard for downloadable mobile games. JavaFX is supposed to be the successor of Java ME. There will be a period during which both technologies exist in parallel. However, in the long run, JavaFX will replace Java ME. Current drawbacks of Java ME, such as the complex configurations for various devices, should be solved with JavaFX Mobile by having clearly separated profiles.
The most notable website for interested JavaFX developers is javafx.com. To have a first visual impression of JavaFX Mobile, here some screens of JavaFX demo applications.
In the second part of the series (coming soon), this general introduction into the mobile market as well as into Google Android and JavaFX will be followed by a detailed comparison of these two market participants.