additional overhead in creating an app for several
platforms, the quality of native apps is usually very
high. They are fast, reliable and powerful (Smutny,
2012). Native approach allows apps to use all the
features or components of the device as programs
written for the device’s native runtime environment
have rich APIs (Smutny, 2012). Native apps provide
higher level of ‘user experience’ (Xinogalos, 2013).
However, the development of several mobile
platforms has created fragmentation of mobile
platforms with differences in their architecture,
supported programming languages, SDKs,
frameworks or APIs, feature support and other
technologies.
Most software companies have some common
functions gathered together in a core library. If each
mobile platform has a distinct client application,
then there is a probability that either the common
code will be duplicated per platform, or, if shared
libraries are used, each client (depending on the
platform SDKs and features) may use different parts
of the shared code base. This may have serious
ramifications later on when bug fixes and updates to
the mobile application is required - and will have to
be carried out on a per platform basis.
The cross-platform mobile application
development approach has emerged as a solution for
this problem. Over the past years, many cross-
platform mobile application development tools have
been introduced so as to assist developers in quick
and easy development of mobile applications that
supports multiple platforms. Each of these tools has
certain benefits and limitations as compared to
others. Several techniques are being followed for
developing cross-platform mobile apps. These will
be discussed in the following sections.
3.1.2 Hybrid Apps
The hybrid approach is the combination of native
and web approaches, where apps are developed
using web technologies and are executed inside a
thin native container of the device (Raj & Tolety,
2012). The same source code is used to build various
platform installation files. Hybrid approach takes
advantage of browser engine and the device
capabilities to build more mobile friendly apps (Raj
& Tolety, 2012). Hybrid apps are distributed through
app stores and these apps, as pointed out by (Raj &
Tolety, 2012), are downloaded and installed into the
mobile devices just like native apps. They can
perform as standalone applications or as server
based applications (Raj & Tolety, 2012). A couple
of popular examples of developing mobile apps with
hybrid approach are Phonegap/Cordova and Sencha.
By taking an approach such as Phonegap, the
developer is allowed to access certain device
features which would not be accessible from a
standard web page, an example of this is access to
local storage on the device. The developer is not
solely limited to the features already provided since
there is a whole range of 3rd party plugins available
that add features (such as the Google AdMob plugin
for phonegap) which allows control of any
advertising banners.
3.1.3 Web based Apps
The web approach allows development of cross-
platform mobile apps which can be viewed using the
web browser of mobile devices. Web apps are
similar to traditional web pages used in computers
but are specifically designed for mobile devices or in
other words they are web pages that are optimized
for viewing on mobile devices. These apps are
developed using HTML, CSS, JavaScript and other
web programming languages. The web apps do not
require any installation onto the mobile device.
Thus, it can be accessed on any mobile device that
has a web browser and an internet connection. The
data and application are hosted from server, so there
is no need for updating the web apps (Raj & Tolety,
2012). However, although recent advances in
HTML5 have improved access to services such as
storage (via web storage) and location (via the
geolocation API), there is still limited access to the
device’s hardware and other native features
(Xinogalos, 2013). This confines the services that
can be offered to the users.
3.1.4 Mapping to Native
A similar method for developing mobile applications
utilises a tool that creates a native app from an SDK
other than what is used for the native platform.
Examples are:
a. Xamarin Studio
b. Appcelerator Titanium
c. Embarcardero FireMonkey
These tools use their own GUI components with
the result that the app has the same look and feel on
either platform, but the result is that it does not have
the native look and feel on either platform. Some of
these solutions use native components wherever
possible and then use emulated components for
those which are not available on a particular
platform. This may result in a user experience where
things work mostly like the native controls, but with
mPOW-MobileSupportforHealthCareStudentsonWorkPlacements
83