Mobile Apps Development A Framework For Technology Decision Making PROCEEDINGS1
Mobile Apps Development A Framework For Technology Decision Making PROCEEDINGS1
Mobile Apps Development A Framework For Technology Decision Making PROCEEDINGS1
net/publication/236350960
CITATIONS READS
17 11,975
5 authors, including:
Giuseppe Calavaro
IBM
10 PUBLICATIONS 97 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Emiliano Masi on 16 March 2016.
1 Introduction
The basic question that this paper tries to answer is: What is the right technology to use
for the development of a mobile application for given requirements and context?
In order to develop a new Mobile App, in fact, several decisions have to be made.
The first one is the platform on which the application will run. Such decision is usually
made by the marketing management. Very often, more than one platform is chosen,
although versions for the different platforms can be released at different times.
Instances of platforms include, but are not limited to:
iOS platforms,
Android platforms.
D. Uhler, K. Mehta, and J.L. Wong (Eds.): MobiCase 2012, LNICST 110, pp. 64–79, 2013.
© Institute for Computer Sciences, Social Informatics and Telecommunications Engineering 2013
Mobile Apps Development: A Framework for Technology Decision Making 65
As soon as the platforms decision is undertaken, one more very important choice is
required, which matches the aforementioned question: What technologies should be
used to develop the given mobile app? Now, the Technical Leader has the ownership
of such decision. As we will be explaining in the next sections, the most known
examples of such technologies include:
HTML5;
CSS;
JavaScript;
Platform Specific Software Development Kit (SDK), including:
a) Android SDK, and
b) Apple® XCode;
Titanium Mobile, and related supports for Mobile App development;
Adobe®, and related supports for Mobile App development;
PhoneGap;
jQueryMobile;
Sencha Touch;
DojoMobile.
Indeed, even when a single platform is initially targeted to develop an app, few ways
exist to enact the development, which can be classified in three Development
Approaches (DAs):
Native DA: i.e., pure native development, using the platform specific
SDK;
Web DA: i.e., pure web app (HTML 5 allows Apps that are almost as
powerful as native apps);
Hybrid DA: i.e., using a mixed approach, as supported by several different
technologies discussed in the remaining of this paper.
A decision concerning the DA to use has to take into account both functional and non-
functional app requirements, such as the need for different devices on board (GPS,
Camera, etc), as well as constraints placed by the selected target platforms, schedule,
and budget. Therefore, a multi-criteria decision process is required [1][2], and both
tools and frameworks would desirable to support and guide it.
The purpose of this work is exploratory rather than confirmatory [3]; in fact, we do
not aim to give a final answer to the basic research question, but we want to check
whether an approach is feasible and capable to support answering the basic question.
Consequently, in the remaining, no formal goals [4], hypotheses [5] or details
concerning the utilized research objects and processes (case studies, handbooks,
papers, etc.) will be presented.
In general, we do not aim to address the false problem of defining the “absolute
best” technology for mobile software development. Vice versa, we remark that our
expectation is that no single development approach will fit all needs of all customers.
As Fling observed [6], whatever medium we use to address our goals, we have a
number of choices, each with its own pros and cons. Similarly to all other branches of
Software Engineering, we expect some mobile media to be quick to create apps, but
accessible to a few of the customers and/or delivering hard to maintain apps; others
could address a larger market, but far more expensive and complex to use.
However, it is clear that companies are facing an obvious trade-off between user
experience and application functionality on the one hand, and development costs and
time to market on the other hand. Therefore, the challenge is to choose a development
approach and a technology that are capable to balance requirements with the available
budget and time-to-market [7]. At this point, the fundamental question is: “What is the
right choice?”.
In order to help answer such question, this paper aims to provide
(i) a guide to technology decision, and
(ii) a framework to support such decision, which could evolve based on new
technologies that will come out.
Concerning the DT, it is not independent from the selected DA and PC. In this paper,
we take into consideration a limited set of development technologies, among the ones
available on the market. Specifically, we consider those technologies that the largest
software companies commonly adopt worldwide. We have already listed such
technologies in the previous Section 1. In the following, we consider these
technologies and group them by the selected DA.
Web apps: choosing the technology is quite straightforward:
DT1. HTML5, CSS, and JavaScript. Since these technologies fit together, we
consider this set as a single choice.
Native apps: the platform specific development kit can be selected, e.g.:
DT2. Android SDK;
DT3. Apple XCode.
Additionally, the following technologies can support the development of Native
Mobile Apps:
DT4. Appcelerator®’s Titanium Mobile,
DT5. Adobe® Flex, in conjunction with Adobe® Air.
Last two development technologies can create cross-platform apps from the same
source code.
Hybrid apps: PhoneGap can be used, in addition to the following JavaScript
frameworks:
DT6. (PhoneGap ) + jQuery Mobile;
DT7. (PhoneGap ) + Sencha Touch;
DT8. (PhoneGap ) + Dojo Mobile.
A brief review of the listed technologies, including their pros and cons, is provided in
the remaining of this Section.
chosen platform. This contributes to get high development cost and long developing
time. It's important to underline that in the following DT2 and DT3 will be considered
together.
these dimensions, the PC-related ones, are alternative dimensions; the same holds for
the three DA-related dimensions (this could be used to merge them in two dimensions
and downsize the space to 36 dimensions). The twelve NFD-related dimensions are
independent one another, and the same holds for the fifteen DF-related dimensions;
however, DF dimensions can depend on NFD, DA, and PC dimensions, even though
we might still be unable to express, a priori and formally, such dependencies.
Additionally, an application is required to meet many needs, a device feature can serve
many needs, and each development technology can offer different features, depending
on the platform it is used for. In other words, we are not coping with a system that we
can immediately and easily model via mathematical functions, assuming it is feasible.
To manage the complexity, our decision was to proceed by abstraction and
classification, and we eventually consolidated those dimensions in five macro-
dimensions. This led to constructing a five-macro-dimension space of: Needs, Device
Features, Development Technologies, Platforms, and Development Approaches. The
domain of each macro-dimension includes the items listed in the previous sections for
PC, DA, DT, NFR, and DF. Since we see no interest in sorting those items, in their
domains, they are listed in arbitrary order, so obtaining a Nominal scale [5], [17], [18]
for each dimension.
This discrete space of five macro-dimensions can be easily and automatically
generated and updated whenever new platforms or development technologies/
approaches appear on the market or are removed, for any reasons, from the set of
accepted candidate technologies/approaches.
Our next step is to represent: (i) each technological stack as a point in this space,
according to its capability to meet some requirements (e.g. support for a given device);
and (ii) the app to develop as a point in the same space, according to the importance
that each requirement has with respect to the app context (e.g. importance of the
presence of a given device).
This way, a proximity measure could be created to quantify the distance between
the point representing the app and each point representing a technological stack. The
technological stack which minimizes the distance from the app is the first candidate to
be the best fit to the considered app context. The feasibility of mapping technological
stacks and app requirements as points in the previously defined space can follow the
impact vector model [19]; in particular, the app requirements can be modeled as a
“goal impact vector” (i.e. the expected result of the development), while technological
stacks can be modeled as “strategy impact vectors” (i.e. the possible combinations of
languages, approaches, platforms and tools that can be used for the development) [19].
For brevity, we omit the details on how to map the app and the technological stacks to
points in the space. However, a proximity measure still has to be defined, so that a
Tech Expert can apply our model in a real context; a definition of such proximity
measure and an example of use of our model are provided in section 8.
the mathematics that can bee applied when looking for optimal solutions under defiined
constraints. Concerning thee last, our decision was to start by using a simple uuser
interface; in fact, the focuss of this paper is on (i) exploring the mobile developm ment
technology modeling for deecision-making; and (ii) empirically verifying models in lab
and on the field. This is thee reason why we did not put much effort on building upp an
advanced user interface for our tool prototype. In particular, the prototype is based oon a
table (see Table 1) which im mplements the space defined in section 5. In order to moodel
the five dimensions in a flaat surface – which allows an easy use of the model, – the
item type of such table (i.ee. a point in the space) represents more than one piecee of
information; specifically, eaach item of the table is itself multi-dimensional, so creatting
a topological space similar to a manifold [20]. Each elementary item of the table ((i.e.
each dimension of a given point) expresses a measure in a four-value Ordinal sccale,
which are graphically rep presented by the symbols , , , and , wheree
denotes the null value, i.e., “Not
“ supported”.
In practice, the table rep
presents a complex but homogeneous abstract entity, i.e. a
5-dimensional hypercube, whose
w elements are symbols of the given ordinal scale.
Table 1 is structured in two quadrants. These realize two guides for selecting the
technology to use accordin ng to: a) the needs, and b) the device-specific hardw ware
features that the particular teechnology offers, respectively.
The first quadrant impllements the subspace (DT, NFD, DA, PC); the abscissa
reports the development tecchnologies, the ordinate represents the needs. The typee of
development approach, as leveraged
l by the corresponding development technologyy, is
represented by different collumns and different background colors: (i) Web in the ffirst
column (Orange); Native in n the subsequent triple of columns (Blue); and Hybrid in the
last triple of columns (Greeen). Each item shows a value in the given Ordinal sccale.
Since the values reported do d not depend on the platforms specificities for each giiven
development technology, su uch platforms are not represented explicitly. In practice, this
quadrant represents a cube with colored slices; each element of the cube includess as
many times the ordinal measure,
m shown in the first quadrant, as the numberr of
platforms.
The last quadrant shares the abscissa (DT) with the first quadrant, while the ordinnate
represents the device feattures. Many items in this quadrant represent arrayss of
platforms (rather than any platform as in the first quadrant). The reason is that eeach
technology can offer differeent features depending on the platform on which it is ussed,
and a measure is expected for f each of those platforms. Again, the actual platforms that
are considered separately area iOS and Android, whereas the remaining platforms are
grouped into the category “O Others”.
The scale elements assum me a slightly different meaning in the two quadrants. In the
first quadrant, the semantic of the scale is {Null, Insufficient, Sufficient, Excellent}}; in
fact, the symbols indicatee the extent to which, for the considered developm ment
approach, that specific tech hnology satisfies the corresponding need: insufficienntly,
sufficiently, and exccellently. In the last quadrant, instead, the semantic of the
scale is {Null, Rough, Meedium, Well}; in fact, those symbols indicate whether the
specific technology providees APIs for using the corresponding device feature, and thheir
level of support: “Well”, i.e., supported for all the different versions of the saame
platform, “Medium”, i.e., supported
s for some but not all the different versions of the
same platform”, or “Rough h”, i.e. lightly supported. In the first quadrant we can ffind
72 E. Masi et al.
only one symbol per table item, whereas in the last quadrant, as already mentioned, an
item is an array of symbols (i.e. a 4-dimension point), and can also include all symbols
together (one per point dimension).
We filled out the dimensions of the matrix discussed above by collecting
information from various scientific papers, personal experiences (first quadrant), and
technical online documentation (last quadrant). Table 1 also synthesizes on the results
from this work.
not herein detailed. Nevertheless, practical evidence of the model validation and a case
study are reported in the remaining sections, while the definition of a formal model is
deferred to a shortly coming future work.
8 Case Study
As an example of using Table 1 for decision making, let us consider a synthetic version
of a case study we conducted.
Let us suppose that a Tech Leader is requested to develop an application with the
requirements shown in the Table 2, row 1.
Ten features are explicitly stated as significant for this application, as shown and
numbered from 1 to 10 in Table 2, row 2. Let the Tech Leader assign the same weight
to all general requirements (GRs), and assuming N=1000, to distribute the remaining
750 points on each specific feature (SRs) in the following way:
1. 100 points, 2. 30 points, 3. 10 points, 4. 60 points, 5. 150 points,
6. 30 points, 7. 80 points, 8. 70 points, 9. 70 points, 10. 150 points.
Additionally, in order to have manageable results, let the Tech Leader map the given
Ordinal scale into a Real scale, as explained in the previous section, by using the
following map: Excellent: 2.0 points. Sufficient: 1.0 point. Insufficient: 0.5 points. Not
Supported: -1.0 point. This gives a Real scale in the range from -500.0 (worst case, i.e.
Not supported in every dimension) up to 2000.0 (ideal technology for the given
requirements, i.e. excellent in every dimension.)
The Tech Leader can now enter Table 1, and obtain an ordinal score for each
technology. Subsequently, he/she can enter the map and translate the ordinal symbols
found into Real numbers; eventually the results shown in Table 3 will be obtained.
As we can see, the two technologies with the highest scores are:
1. Platform Specific Development Kit with 1675.9 points.
2. Adobe Flex Mobile + Air with 1491.05 points.
For the given context, the more meaningful definition of proximity measure is the
vector distance from the optimal vector (i.e. the resulting difference vector). The
optimal point is the one with maximum achievable score, i.e. 2000 points, which
exactly matches the required characteristics of our app. In practice, for our context,
minimizing such distance is equivalent to pick the maximum among the computed
technology scores. Based on the scores shown in the Table 3, the best technological
choice for this application should be the native approach with the Platform Specific
SDK. A good choice would be also the Adobe Flex Mobile + Air, in fact, if there are
heavy constraints on the time to market and there is not enough in-house skills for each
platform (which is a characteristic not represented in our model), such technology
could be the only feasible way.
In both cases, however, developers are given all the information required to make an
informed choice on what technology best fits the application to develop in the given
context.
74 E. Masi et al.
10 Previous Works
A basic book concerning Mobile was authored by Brian Fling and published on 2009
by O'Reilly Media [6]. This book includes the fundamental concepts and techniques
for creating mobile sites and apps.
On market side, in the year 2010, the Vision Mobile web site examined the latest
insights in the mobile market, provided views about the winners and losers of the
platform and handset race for 2011, and discussed the challenges facing mobile
network operators in their quest to stay relevant to mobile application developers [8].
On the Software Engineering side, in 2010, Tony Wasserman analyzed the issues
for mobile development, and provided a view about mobile development environments
[9]; moreover, Jeff Rowberg proposed a comparison between different approaches to,
and technologies for, mobile development [10].
Subsequently, a comparison between native, web, and hybrid mobile app
development approaches was provided by WorkLight Webinar Series [7].
Many other previous studies are concerned with specific platforms, platforms vs.
technologies, and development approaches, including: HTML5 versus Android: apps
or web [11], Dojo 1.6 [12], PhoneGap to build native apps [13], Appcelerator vs.
PhoneGap vs. Adobe Air [14], PhoneGap vs. Flex vs. Appcelerator vs. Corona [15].
Some other studies are concerned with how to correctly exploit technologies, e.g. how
to use PhoneGap and the Dojo Toolkit for developing hybrid mobile applications [14].
This paper tried, in its turn, to put together competencies from academic research
and a world major company for doing a step ahead in the support of decision making in
the mobile apps domain.
requirements. The proposed model takes into account non-functional requirements, app
features, and available development technologies, platforms and approaches. The
model is not exhaustive with respect to the technology dimensions and needs;
however, it is very simple to utilize, augment and improve by adding new items and
attributes. The twelve needs taken into account in this paper are the ones we deem
mandatory to consider when making decisions, but their enrichment could boost both
quality and type of results.
The method has been empirically tested and further developed by four case studies
at the IBM Italy Rome Smart Solutions Lab. These case studies were concerned with
different problems to address and covered a wide range of possibilities. However, the
number and types of case studies that we utilized to gain experience and eventually
populate our base of knowledge (i.e., a simple table) are still limited. Consequently, the
items presented in Ordinal scale by Table 1 should not be intended as conclusive
values.
Next steps of this study include the development of a larger mix of case-studies, and
the study of dependences, if any, of the model on the application domain. One more
study we aim to conduct is a deep sensitivity analysis to assess the model robustness
with respect to different features and inputs.
Moreover, an extension of the model is planned, which takes in account the value
and risk of technologies and processes, as well as the in-house skills and experience.
Furthermore, a theoretical investigation aimed to fully formalize our multi-
dimensional space and its mathematical foundation is in our plan for the future.
Last but not least, we aim to create a web site, to be available to the community,
where practitioners can share their usage experiences with our framework. This way, it
will be possible to gather relevant information from a high number of cases, contexts,
and developers. Such information will be used to improve the proposed model and
could lead to a new proposal of development process in the domain of the mobile apps.
References
1. Keeney, R.L., Raiffa, H.: Decision with Multiple Objectives: Preferences and Value
Tradeoffs. University of Cambridge (1976)
2. Falessi, D., Cantone, G., Kazman, R., Krutchen: Decision-making Techniques for
Software Architecture Design: A Comparative Survey. ACM Computing Surveys 43(4)
(2011)
3. Zelkowitz, M.V., Wallace, D.R.: Experimental Models for Validating Technology. IEEE
Computer 31(5) (1998)
4. Basili, V.R., Weiss, D.: A methodology for collecting valid software engineering data.
IEEE Transactions on Software Engineering 10(6) (1984)
5. Wohlin, C., Runeson, P., Horst, M., Ohlson, M.C., Regnel, B., Wesslen, A.:
Experimentation in Software Engineering. An introduction. Kluwer Academic Publishers
(2000)
6. Fling, B.: Mobile Design and Development: Practical Concepts and Techniques for
Creating Mobile Sites and Web Apps, pp. 13–27. O’Reilly Media (2009) ISBN 978-0-596-
15544-5
7. WorkLight Webinar Series: Native Web or Hybrid Mobile App Development (2011),
http://www.worklight.com/assets/files/Native-Web-Hybrid-
Mobile-App-Dev-Webinar.pdf (accessed on September 10, 2011)
Mobile Apps Development: A Framework for Technology Decision Making 77
Table 1. The graphical view of an instance of our model for some actual needs, device featuures,
tecnologies, and platforms
Mobile Apps Development: A Framework for Technology Decision Making 79
Description The app is required to allow an user to chat with other people connected to
network by the same application. Moreover, the app is required to provide the user
with the ability of filing and sending recorded audio clips and video messages.
Furthermore, the app is required to allow an user to extend her/his contact list by
specifying the telephone number of the person s/he wants to include; her/his
mobile phone list of contacts is expected to be allowed as a source for such a
phone number.