Evaluating Cross-Platform Development Approaches For Mobile Applications
Evaluating Cross-Platform Development Approaches For Mobile Applications
1 Introduction
c Springer Berlin Heidelberg 2013. This is the authors version. The original publication appeared in Jose Cordeiro and Karl-Heinz Krempels (ed-
itors): Web Information Systems and Technologies. 8th International Conference, WEBIST 2012, Porto, Portugal, April 18-21, 2012, Revised Se-
lected Papers, volume 140 of Lecture Notes in Business Information Processing (LNBIP), pp. 120138, and is available on www.springerlink.com.
2 Heitkotter, Hanschke, and Majchrzak
for several platforms. On the other hand, they still have to enable developers to
capitalize on the specific advantages and possibilities of smartphones.
Our paper first classifies general approaches to cross-platform development
of mobile applications. We then analyse and compare existing cross-platform
solutions based on Web technologies like HTML, CSS, and JavaScript. As these
differ in their general architecture and their capabilities, it is not obvious which
to prefer. We will outline criteria that are important when making a decision
as well as evaluate the popular approaches mobile Web apps, PhoneGap and
Titanium Mobile according to these criteria.
Our work makes several contributions. Firstly, it gives a comprehensive over-
view of current approaches for cross-platform app development. Secondly, it
proposes a framework of criteria for evaluation. They are not only applicable in
this paper but can be used for future assessments. Thirdly, we present a detailed
analysis of the considered approaches. Fourthly, we discuss and generalize our
findings in order to provide decision advice.
This paper is structured as follows. Related work is studied in Section 2. Sec-
tion 3 classifies general cross-platform development approaches. Concrete cross-
platform frameworks to be evaluated are presented in section 4. We then intro-
duce our catalogue of criteria in Section 5. The evaluation follows in Section 6. In
Section 7 we discuss our findings. Eventually, we draw a conclusion in Section 8.
2 Related Work
Much related work can usually be identified for an article that compares various
technologies. However, if it deals with cutting-edge technology, the number of
similar papers shrinks dramatically. General papers on the technologies dealt
with in this paper are cited in the appropriate sections, particularly in Section 4.
Thus, this section assesses existing work that compares two or more approaches
for cross-platform app development.
Until recently, papers only discussed mobile platforms or rather operating
systems for mobile devices. An example is the paper by Cho and Jeon [15].
Comparison papers such as by Lin and Ye [35] only marginally help developing
multi-platform apps. The same applies to very specialized papers. They usually
rather concern the business perspective than deal with technology. An example
is a study of mobile service platforms [60]. But even technically-driven papers
that address multiple platforms do not necessarily help to develop cross-platform
apps. For instance, a study of smartphone malware [20] only roughly hints to
platform particularities.
Anvaari and Jansen [6] have compared the predominant mobile platforms
with regard to the openness of their architectures. Their approach takes a very
close look at one aspect and thus can be seen as complementary with our work.
Charland and Leroux [14] compare the development of native apps and Web
apps. In contrast to our approach, they do not take a cross-platform perspective.
A comparison of iPhone and Android development is presented by Goadrich
and Rogers [25]. Despite the topic, which is similar to our work, their aim is
Cross-Platform Development Approaches 3
different. In fact, they try to answer which platform should be used for the
education of students. Another study deals with mobile cloud apps [34]. While
the authors deal with cross-platform development, they focus on native thin
clients that access cloud services.
A number of publications address more than one platform [18, 4, 22]. While
these publications foster a better understanding of the platforms, they do not
really compare the different approaches. Rather, they explain how to use a tech-
nology on a multitude of platforms or devices. Due to the high relevance for prac-
titioners, the topic is also recognized in technology weblogs [38, 13]. Although
such articles give valuable advice, they cannot be compared to our structured
approach. In an industry study, VisionMobile compared a large number of cross-
platform tools based on a developer survey and vendor interviews. This comple-
ments our in-depth review, which is based on a set of criteria.
3 Classification of Approaches
devices, which the Web browser then interprets. The optimization has to account
for the different screen size and usage philosophy of mobile devices. Due to the
standardized technologies, the Web site can be accessed in a similar way by
mobile browsers on all platforms. However, mobile Web apps cannot use device-
specific hardware features such as camera or GPS sensor. They usually cannot
be installed on the mobile device but are retrieved via an URL. The upcoming
version of HTML, HTML5, will provide some means in both areas, but not
a comprehensive solution. Typically, Web apps will at least partially look and
behave like common Web pages, differing in appearance and behavior from the
native UI elements provided by the platform.
To resolve the lack of access to hardware functionality while still satisfying
the desire to employ common Web technologies, hybrid approaches emerged as
a combination of Web technologies and native functionality. Their runtime envi-
ronment largely consists of a Web rendering engine, wrapped in a native engine.
The source code of hybrid apps uses similar technology like Web apps but ad-
ditionally has access to an API for platform-specific features. At runtime, the
platforms Web viewessentially a browser without user controlsinterprets the
source code to display Web pages. All calls to hardware APIs are relegated to the
native wrapper. Hybrid apps are packaged natively and thus can be (and have
to be) installed on the device, unlike Web apps. While their look & feel mostly
resembles that of Web apps, they have access to platform-specific features.
Self-contained runtime environments do not reuse any (Web) environment
already present on mobile platforms, but use their own, separate runtime en-
vironment. Since such an engine is built from scratch and not based on any
previous engine, building a self-contained environment needs more work, but
also offers more freedom. Self-contained frameworks are not constrained by ex-
isting environments and can be designed according to the needs of apps. Hence,
they can enable an intuitive and easy development process. Apps are typically
packaged with the frameworks engine and deployed as native packages.
4 Overview of Frameworks
Based on the classification from above, we chose three concrete cross-platform
solutions, i.e. frameworks, and evaluated them, one from each kind of runtime
environment: mobile Web apps, PhoneGap as a hybrid framework, and Tita-
nium Mobile as a self-contained approach. On the one hand, their evaluation is
useful on its own, because these are popular frameworks among developers1 . On
the other hand, each also stands as an example of their category, so that their
evaluation offers additional insight into the general suitability of each category.
Together, they make up the largest part of the decision space relevant when
thinking about cross-platform development for mobile devices. Native apps will
serve as a point of comparison. The following briefly introduces each framework.
1
PhoneGap counts more than half a million downloads and thousands of applications
built with the framework [3]. Numbers from Appcelerator indicate 30,000 applica-
tions using Titanium [8].
Cross-Platform Development Approaches 5
Simple Web apps may rely on the browser itself and do not necessarily need
to be supported by a concrete framework. However, several frameworks support
the optimization for mobile use, e.g. jQuery Mobile [29] or Sencha Touch [52].
Our evaluation mainly applies to Web apps in general, although our tests have
used jQuery Mobile as a concrete framework.
The most prominent exponent of the hybrid approach is PhoneGap [40].
PhoneGap was originally created by Nitobi Software, which has been acquired
by Adobe [3]. The development now takes place in the Apache Cordova project
of the Apache Foundation [7], of which PhoneGap is a distribution [42]. There,
it is developed as open source under Nitobis leadership by a diverse community,
including developers from major software firms like IBM or Microsoft [2]. Us-
ing PhoneGap, developers still implement their application with HTML, CSS,
and JavaScript. In addition to the Web view, PhoneGaps runtime environment
provides a JavaScript API combined with a native bridge to access hardware
features. We did our initial review with PhoneGap 1.2, using jQuery Mobile 1.0
for mobile optimization. Where necessary, we have since updated our evaluation
to version 1.8.0 of PhoneGap and jQuery Mobile 1.1.0.
As a self-contained runtime environment, Appcelerator Titanium Mobile [9]
follows a different approach. It does not use HTML and CSS to create the user
interface. Instead, the UI is implemented completely programmatically. Devel-
opers use JavaScript to build the interface and to implement logic and data,
extensively using the Titanium API. The code is then packaged with Titaniums
engine. At runtime, this engine interprets the JavaScript code and creates the
user interface. Similar to PhoneGap, apps can then be distributed via app stores.
However, their look-and-feel resembles the typical platform appearance more
closely; the UI is made up of native elements. Titanium Mobile is a product of
Appcelerator, which leads development of the basic platform provided as open
source [57] and sells additional features and support. We did our initial tests
with Titanium Mobile 1.7.2 and have since updated our review to version 2.0.2.
Other frameworks not covered here are, for example, Rhodes [49], a hybrid
approach similar to PhoneGap, and model-driven approaches. The latter cate-
gory has not been included because existing model-driven solutions like iPhonical
[27] or applause [10] are still in early stages or not relevant in general practice.
The same applies to cross-compiling tools like XMLVM [64].
5 Criteria
D1 Development environment
Evaluates maturity and features of the development environment typically associated
with the framework, particularly the tool support (IDE, debugger, emulator) and
functionalities like auto-completion or automated testing. The term ease of installa-
tion summarizes the effort for setting up a fully usable development environment for
a framework and a desired platform.
D2 GUI Design
This criterion covers the process of creating the graphical user interface (GUI), es-
pecially its software-support. A separate WYSIWYG editor and the possibility to
develop and test the user interface without having to constantly deploy it to a
device or an emulator are seen as beneficial.
D3 Ease of development
This criterion sums up the quality of documentation and the learning-curve. Therefore,
the quality of the API and documentation is evaluated. This part of the criterion
is well-fulfilled if code examples, links to similar problems, user-comments, etc. are
available. The learning curve describes the subjective progress of a developer during
his first examination of a framework. Intuitive concepts bearing resemblance to already
known paradigms allow for fast success. This can have a significant impact on how fast
new colleagues can be trained and how much additional, framework-specific knowledge
a developer needs to acquire.
D4 Maintainability
The lines of code (LOC) indicator is employed to evaluate maintainability [32, p. 53f.].
The choice of this indicator is based on the assumption that an application is easier to
support when it has less LOC, because e.g. training of new developers will be shorter,
source code is easier to read etc. While more sophisticated approaches could also be
justified as relevant indicators, these are hard to apply, especially in case of complex
frameworks and for apps composed of different programming and markup languages.
D5 Scalability
Scalability is based on how well larger developer teams and projects can be conducted
using the respective framework. Modularization of framework and app are highly
important as this allows increasing the number of concurrent developers and the scope
of the apps functionality.
D6 Opportunities for further development
Determines the reusability of source code across approaches and thereby assesses the
risk of lock-in, which would be increased if a project started with one framework could
not later be transferred to another approach.
D7 Speed and Cost of Development
Evaluates the speed of the development process and factors that hinder a fast and
straightforward development. Costs are not explicitly estimated because they are
taken as being dependent on the speed of development, assuming that one can abstract
from differences in salary of a JavaScript or Java developer.
8 Heitkotter, Hanschke, and Majchrzak
6 Evaluation
We have evaluated the four solutions described in Section 4 according to the
criteria of Section 5. The evaluation draws on an analysis of the solutions in-
formed by own research and experiences as well as opinions from experienced
developers. The experience was mainly gathered by developing a prototypical
task management app employing all four solutions. Typical problems arising
when using these solutions were compiled from observing the respective devel-
oper communities and completed the background information for the evaluation.
In addition to a textual evaluation, we assessed a solutions fulfillment of each
criterion on a scale from 1 to 6, with 1 meaning very good and 6 very poor.
This allows for a quick overview. Due to space restrictions we present the results
in tabular form, with two tables per solution, one for the infrastructure and one
for the development criteria, and summarize the main findings for each solution
in the following subsections. Section 7 draws a comparison between the solutions
and provides decision support.
6.2 PhoneGap
Table 5 and Table 6 present the evaluation of PhoneGap as a hybrid cross-
platform development approach. PhoneGap offers generic access to platform-
specific features on all major mobile platforms. Because it is based on Web
technology, development is only slightly more complicated compared to Web
apps. However, as a consequence, the visual appearance and, to a lesser extent,
the behavior do not reflect a native look and feel but rather that of a Web site.
D1 Development environment 2
There are several development environments for developing with HTML, CSS and
JavaScript. They provide almost all desired functionality such as auto-completion.
Installing the software development kit (SDK) of the desired platform is mandatory
for the use of an emulator, although, for a first impression, a desktop-browser might
be enough. In summary, the maturity of development tools is high. Software support
for debugging and testing is excellent; in most cases tools like Firebug [21] can be
employed in addition to a regular browser.
D2 GUI Design 1
Most tools for Web UI design offer WYSIWYG editors. These need to have special
settings for e.g. display size and resolution to be helpful when developing smartphone
apps. As the Web app can rapidly be reloaded on the target device without having to
recompile it, GUI design is comparably fast.
D3 Ease of development 2
As the quality of documentation (again depending on the framework used) is very
high and as concepts used in HTML, CSS and JavaScript are intuitive, the ease of
development is higher than with any of the other frameworks. Besides having to know
the underlying programming and markup languages (HTML, CSS, and JavaScript),
a programmer does hardly need any further knowledge. He has to be aware of char-
acteristics and limitations of a smartphone (display size, Web storage, limited CPU
and GPU speed [19]) and can then start developing.
D4 Maintainability 1
A good JavaScript framework enables short and elegant code. Functionality like sorting
of data can sometimes be inserted by using a single keyword. The underlying frame-
work will then supply all necessary methods. The LOC indicator for the prototype
application was lowest for the mobile Web application.
D5 Scalability 2
Web apps in general can easily be split into a large number of small files that fit into
the overall design. This might again depend on the framework employed. Projects
using jQuery, for example, tend to become confusing from a certain size [37] while
others support modularization very well.
D6 Opportunities for further development 1
A project started as a Web app can easily be ported to PhoneGap if access to the
native API should become necessary. It might also be packaged with a WebView
control in Titanium Mobile or as a native application, although both would contradict
the native character of these apps and not provide all of the advantages of these
approaches. Altogether, opportunities for further development are excellent.
D7 Speed and Cost of Development 1
In comparison to all other frameworks, developing the prototype as a Web app has
taken the shortest amount of time. Development tools are technically mature, debug-
ging and testing and the design of the user interface can therefore be carried out fast
and cost-efficient.
Cross-Platform Development Approaches 11
D1 Development environment 2
As is the case with Web apps, the developer is not limited in his choice of a develop-
ment environment when using PhoneGap. However, not all IDEs offer auto-completion
for PhoneGaps API. PhoneGap Build is a service that compiles an app for different
platforms in the cloud, so that developers do not have to install the platform SDKs
[47]. After providing the source of a PhoneGap app, apps are compiled and signed for
all chosen platforms and can easily be downloaded.
D2 GUI Design 1
As for Web apps, designing the graphical user interface can largely be done using a
standard browser and WYSIWYG editors like Adobe Dreamweaver.
D3 Ease of development 2
PhoneGaps documentation is clearly structured and comprehensive [41]. It provides
numerous examples in most cases one quick and one full example and in some cases
mentions problems with specific methods on a certain platform. The documentation
of jQuery Mobile is equally good [30]. Almost no further knowledge is required in
addition to these APIs. The last releases of PhoneGap had some stability problems,
which have, however, been fixed by now [50].
D4 Maintainability 1
Except for additional code that accesses the hardware, hybrid apps do not require more
lines of code than comparable Web apps. Implementing our prototype with PhoneGap,
we got the impression that the source code is short and clearly structured, largely due
to the use of jQuery Mobile.
D5 Scalability 2
The evaluation of Web apps with respect to this criterion applies without modification.
D6 Opportunities for further development 2
A project using PhoneGap can, as long as no platform-specific features are used, also
be run as a mobile Web site. This enables a company to reach even those customers
that do not own a smartphone with an operating system supported by PhoneGap or
that do not want to download and install an app.
D7 Speed and Cost of Development 1
This is more or less equal to those of a Web app, with only little additional time
required for implementing access to hardware functionality.
7 Discussion
This section offers a synthesis of the evaluation and provides general advice for
choosing a suitable cross-platform approach. Although native apps benefit from
an optimal integration into the respective mobile operating system and good de-
veloper support, the analysis showed that cross-platform approaches are a viable
alternative. As soon as mobile apps have to be developed for multiple platforms
under tight budgets, with small developer teams, and in a short time frame, a
cross-platform approach is necessary. However, these approaches are more than a
second-best alternative. Developers might prefer using a cross-platform solution
even in the absence of these constraints.
Mobile Web apps constitute an ideal starting point for cross-platform, be-
cause they do not require advanced knowledge and enable developers to start
Cross-Platform Development Approaches 13
implementing the app right away. Web apps are a simple approach benefiting
from good support by mobile browsers on all platforms. Furthermore, they can
be easily ported to other cross-platform approaches.
14 Heitkotter, Hanschke, and Majchrzak
D1 Development environment 3
Titanium Mobile is tightly integrated into Appcelerators IDE Titanium Studio [59],
which is based on Eclipse. As the IDE is especially tailored to Titanium, it offers
auto-completion for the whole Titanium API. Furthermore, it supports deployment to
emulators or devices as well as distribution to app stores. Setting up the development
environment for Titanium is straightforward but the platform SDKs still have to be
installed separately.
D2 GUI Design 4
GUI design is rather cumbersome and time-consuming, as the user interface is created
programmatically via Titaniums JavaScript API. This requires a lot of verbose and
repetitive code. Titanium Studio does not offer a WYSIWYG editor to create the
interface.
D3 Ease of development 3
The quality of Titaniums documentation is good. There are numerous, although
minimalistic code examples [55]. Nevertheless, initial progress and accustomization to
the framework is relatively slow, as a high degree of framework-specific knowledge has
to be acquired.
D4 Maintainability 3
The prototype developed with Titanium has comparatively many lines of code. Any-
how, the app still remains maintainable as Titanium apps can easily be modularized.
D5 Scalability 2
The aforementioned ability to easily modularize a Titanium app also enables better
scalability. Separate files can be included using Ti.include() [54] and it is possible to
have different windows run in completely separate JavaScript contexts, even though
passing data or objects between windows is quite slow.
D6 Opportunities for further development 5
Source code of apps written for Titanium, at most with the exception of an applica-
tions inner logic, can in general not be used with other approaches due to the fact
that a large amount of Titanium-specific functions is used. This creates dependencies
on the future development of Titanium (compare I4).
D7 Speed and Cost of Development 5
Developing with Titanium requires a lot of framework-specific knowledge, and does
therefore demand a lot of experience. Designing the user-interface is only possible
within an emulator or on a device, which slows down development.
Table 9. Evaluation of native apps for Android and iOS Infrastructure perspective.
than PhoneGap. The main disadvantages of Titanium are that it supports only
two platforms albeit the most important ones , its less open business model,
and a more complicated development process. Thus, if there are no hard require-
ments regarding look & feel or if these might be loosened, the evaluation showed
PhoneGap to be the preferable option for cross-platform development.
However, these are only general guidelines that have to be adapted and inter-
preted for each project individually. The results of our evaluation can be used to
support such decisions, for example in semi-formal multi-criteria decision meth-
ods like the weighted sum model [23]. Basic decision support can be obtained by
weighing the criteria according to the requirements of a given project and calcu-
lating a weighted grade. Carefully interpreted and analysed for sensitivity, the
result might yield first insights on which solution best matches the requirements
at hand.
16 Heitkotter, Hanschke, and Majchrzak
Table 10. Evaluation of native apps for Android and iOS Development perspective
D1 Development environment 2
Android apps can be developed with any Java-enabled IDE. Most developers will
probably use Eclipse with the corresponding Android plugins [5]. iOS developers re-
quire Mac OS and Xcode [63]. Both development environments are mature, although
the ease of installation is slightly higher when targeting iOS provided there is access
to Apple hardware, as no separate installation of an SDK or plugin is required.
D2 GUI Design 1
Both Android and iOS come with a WYSIWYG editor, enabling user interface design
without repeatedly having to deploy to an emulator or smartphone. Especially the
iOS editor is very mature, concepts like storyboards offer the possibility to visualize
and create large parts of the application without having to write a singe line of code.
D3 Ease of development 2
As expected, the documentation of both operating systems is very comprehensive and
of high quality. Both provide numerous examples. Getting-started guidelines support
beginners, Google regularly publishes blog posts and developers can additionally re-
sort to the very active community. Programmers that already know the underlying
programming language can progress rapidly although they need to acquire additional
knowledge about the mobile operating system.
D4 Maintainability 3
In terms of LOC, both native prototypes are the most comprehensive. This is due
to the very detailed and object-oriented implementation with Java and ObjectiveC
in contrast to the concise JavaScript code. As they use object-oriented constructs
and separate the code into classes, native apps are (in comparison) easy to maintain,
although they might appear to be more heavyweight than their pendants developed
in scripting languages.
D5 Scalability 1
In both Android and iOS, program logic and GUI can easily be separated from each
other. Furthermore, each view of an app can be developed on its own. This and the
object-oriented concept of classes enable development teams to scale even better than
with the other frameworks.
D6 Opportunities for further development 6
Code written for one native platform can in general not be ported to another platform
due to different programming languages and APIs.
D7 Speed and Cost of Development 5
Developing natively requires the highest degree of specific knowledge and experience.
Particularly as an application has to be repeatedly developed for every platform, costs
of development are much higher than with cross-platform approaches.
Cross-Platform Development Approaches 17
Acknowledgements
This paper has been written in cooperation with viadee Unternehmensberatung
GmbH, Germany. We would like to thank them for continuous support and
fruitful exchange regarding the development of mobile applications.
18 Heitkotter, Hanschke, and Majchrzak
References
25. Goadrich, M.H., Rogers, M.P.: Smart smartphone development: iOS versus An-
droid. In: Proc. SIGCSE 11. pp. 607612. ACM, New York, NY, USA (2011)
26. Google: Android open source project (2012), http://source.android.com/
27. iPhonical (2010), http://code.google.com/p/iphonical/
28. jQuery project license (2012), http://jquery.org/license/
29. jQuery Mobile (2011), http://jquerymobile.com/
30. jQuery Mobile documentation (2012), http://jquerymobile.com/demos/1.1.0/
31. jQuery Mobile graded browser support (2012), http://jquerymobile.com/gbs/
32. Kassinen, O., Harjula, E., Koskela, T., Ylianttila, M.: Guidelines for the imple-
mentation of cross-platform mobile middleware. International Journal of Software
Engineering and Its Applications 4(3) (2010)
33. Koch, P.P.: There is no WebKit on mobile (2009), http://quirksmode.org/blog/
archives/2009/10/there_is_no_web.html
34. Lakshman, T.K., Thuijs, X.: Enhancing enterprise field productivity via cross plat-
form mobile cloud apps. In: Proc. MCS 11. pp. 2732. ACM, New York, NY, USA
(2011)
35. Lin, F., Ye, W.: Operating system battle in the ecosystem of smartphone indus-
try. In: Proc. of the 2009 Int. Symp. on Information Engineering and Electronic
Commerce. pp. 617621. IEEE CS (2009)
36. Lukasavage, T.: Adobe & PhoneGap: Makes sense, mostly (2011), http://
savagelook.com/blog/portfolio/adobe-phonegap-makes-sense-mostly
37. Murphey, R.: On jQuery & large applications (2010), http://rmurphey.com/blog/
2010/08/09/on-jquery-large-applications/
38. Newman, B.: Are cross-platform mobile app frameworks right
for your business? (2011), http://mashable.com/2011/03/21/
cross-platform-mobile-frameworks/
39. Pfeiffer, D.: Which cross-platform framework is right
for me? (2011), http://floatlearning.com/2011/07/
which-cross-platform-framework-is-right-for-me/
40. PhoneGap (2011), http://www.phonegap.com/
41. PhoneGap: API reference (2012), http://docs.phonegap.com/en/1.8.0/index.
html
42. PhoneGap, Cordova, and whats in a name? (2012), http://phonegap.com/2012/
03/19/phonegap-cordova-and-what%E2%80%99s-in-a-name/
43. PhoneGap: FAQ (2012), http://phonegap.com/faq
44. PhoneGap license (2012), http://phonegap.com/about/license/
45. PhoneGap support (2012), http://phonegap.com/support#support-packages
46. PhoneGap: Supported features (2012), http://phonegap.com/about/features/
47. PhoneGap:Build (2012), https://build.phonegap.com
48. Pilgrim, M.: Dive into HTML5: Local storage (2011), http://diveintohtml5.
info/storage.html
49. Rhodes (2012), http://www.motorola.com/Business/US-EN/RhoMobile+Suite/
Rhodes
50. Rolling releases: How Apache Cordova becomes Phone-
Gap and why (2012), http://phonegap.com/2012/04/12/
rolling-releases-how-apache-cordova-becomes-phonegap-and-why/
51. Sencha ext JS (2012), http://www.sencha.com/store/extjs/
52. Sencha Touch (2011), http://www.sencha.com/products/touch/
53. Titanium API (2012), http://docs.appcelerator.com/titanium/2.0/index.
html#!/api
20 Heitkotter, Hanschke, and Majchrzak