Decision Framework for Mobile Development Methods

Recently, the mobile applications have emerged with the uprising smartphone trend. Now-a-days, a huge number of mobile operating systems require more developments, in order to achieve that, Open source cross-platform mobile frameworks came up, in order to allow importing the same code on various operating systems. In this paper, the focus is made on commonly used mobile development methods, and a process that selects the most suitable solution for a particular need is proposed. Eventually, a new framework that helps to choose the appropriate approach and tool respectively is suggested, according to a convenient survey based on binary questions, in addition to certain criteria. Keywords—Mobile development approaches; Mobile development tools; Cross-platform mobile; Mobile OS


INTRODUCTION
Mobile devices, applications and associated services are being radically reshaped by user's behavior and corporate organizations as well, either business models, or business strategies and also the way employees work.
Since the release of the first iPhone in 2007, smart mobile devices occupied an important role in the world economy, so we talk more often about digital economy.
Worldwide mobile phones sales reached nearly 478 million units during the third quarter of 2015, so an increase of 3.7 percent compared to the same period in 2014.The figures and the trends presented in the following study confirm these facts [1].This evolution is due to the growth the smartphone market, as those consumers abandon more and more -dumb‖ or -less smart‖ phones [1].The following figure shows the evolution of smartphone sales compared to classic mobiles sales.Fig. 2. Sales of smartphones vs classic mobiles [2] Between 2011 and 2013, the share of smartphone sales increased by 37%.Now-a-days, about 71% of mobiles in markets are smartphones.
The market of tablets and smartphones is dominated by Android [1].The choice of Android is justified by its constantly innovative technology, open and less expensive compared to iOS.Fig. 3. Worldwide smartphone sales to end users by OS [1] Each platform indeed requires different development tools.If we want to deploy an application on different platforms, it seems necessary to consume as much time as the sum of the time needed for each application; But there are some solutions to not allow the development of the application once, and then deploy it on other platforms.The aim of this article is, on one www.ijacsa.thesai.orghand, to present these solutions and then to make a comparison between them, each one has its advantages and drawbacks; on the other hand, to provide afterwards an ideal approach for deciding which solution should be adopted for a given case.This paper is structured as follows: the first section presents the mobile development methods, followed by a comparative study of mobile development approaches.The second section shows an ideal approach for deciding which solution should be adopted for a given case.The last section concludes the paper and presents some future works and perspectives.

II. RELATED WORKS
Several studies have been carried out on mobile development methods, in which researchers presented the advantages and drawbacks of each approach.In [3] the authors presented a comparative study of multi-platform mobile development tools (PhoneGap, Titanium, Sencha Touch and jQuery Mobile).While the paper [4], has shown the advantages and drawbacks of various methods of mobile development and proposed technologies for each case, based on qualitative properties.However, Charland and Leroux [5] present an indepth comparison of Native apps and Web apps development.Heitkotter et al. [6] present a comparative study between some cross-platform mobile tools based on several qualitative factors such as licensing costs, look-and-feel, supported platforms, development environments, maintainability and scalability.In this approach, the cross-platform perspective is not taken into account.
Veldhuis [8] present a comparative analysis about the performance of various mobile development tools, based on a simple numerical calculation.
In [9] the authors formulate a method to evaluate and select the best cross-platform development tools for a developer and also evaluate cross platform tools using time, technology, maturity, and cost aspects of mobile apps development.In contrast, this work is focused on the cross-platform development tools and doesn't present a process to assess the appropriate development method to adopt (native, hybrid or web).
In this paper we presented the architecture and features of each method, and an approach that could be adopted to choose an appropriate method and tool is proposed, in order to develop a mobile application.
Our framework focuses on the improvement of decision making in the mobile applications domain, taking into account several qualitative factors such as development rate, documentation, look and feel, popularity, learning curve and graphical tool for GUI.The mentioned framework can be divided into two stages; the first one allows deducing the mobile development method while the second one allows selecting the right tool for each method whose precision exceeds 50%.

III. MOBILE DEVELOPMENT METHODS
The cross platform mobile applications are widely meant to provide mobile apps developers with means for writing once, and deploying everywhere.Currently, the market is full of dizzying array of cross-platform development tools [4].
Several studies on approaches to build cross-platform mobile applications are produced [4], [9], [12], [13].Conclusively, a classification of these approaches into three categories is made: These types will be explained in the following sub-sections.

A. Native Approach
The Native applications have the highest performance, native look and feel, has full access to the device capabilities, they use the most updated hardware resources, in order to improve performance.The applications are built in languages that the platform supports, as a consequence it has access to IDEs, which provides the best tools for development, as well as a fast debugging of the project.Android apps can be built in Java on Android Studio, and iOS apps can be built in objective C on XCode, which have all the tools either to debug, or to design the interfaces, and then check the performance using instruments.Yet, the development of the native App needs initial time to learn the languages and tools provided by the platform-specific vendor, then develops the App.Also, the App will run on only one specific-platform [4], [9], [10].The figure below shows native apps architecture:

B. Web Approach
The mobile web Apps are developed using standard web technologies-typically HTML5, JavaScript and CSS.These apps are easy to develop, although cannot use device-specific hardware features such as camera or GPS sensor, and the lack look and feel of the native App [11].www.ijacsa.thesai.org

C. Hybrid Approach
The mobile hybrid apps combine between the web App and the native App.This type does not perform as well as the other programs that are based on native languages.Even though they are packaged natively, they are not native applications, they are executed on the platforms web engine, Webkit in case of Android and iOS, which is another layer between the user and the application, and so the performance can't match with the native apps [3], [12].
The below diagram depicts the high level of hybrid mobile application architecture:  According to this study, native application turned out to be more improved, in terms of performance compared to other mobile application types (i.e., web and hybrid).Native applications are developed using a platform specific API compiled to run on the platform rather than an interpreted language code, such as, JavaScript.But the problem is that these native apps are more expensive to implement, limited to a particular mobile platform, require a collection of knowledge and languages to be realized.
The figure below shows the trend for native to cross platform development cost and time factors.We have shown that the three solutions have advantages and inconveniences.The question now that arises is: which are the approaches that can be adopted to develop a mobile crossplatform application?And what tool can be used to implement the solution?
To answer these questions, a tool to provide answers based on the nature of the application to develop is proposed.The architecture of this tool is presented below (See Figure 9 for more details).1) The first step : consists of filling a survey, then sending the answers to the decision engine.
2) In the second step : the decision engine analyzes the responses and transmits the appropriate mobile development method to the customer, and also determines the percentage of completion of each method.
3) In the third step : according to the received method, the customer must complete a survey, then forward it to the decision tool engine.
4) In the last step : the decision tool engine analyzes the responses and sends the right tool to be used in the implementation of the solution to the customer.In the hybrid case the tools are classified according to the features desired in the application to develop.
The next subsections show how each block is implemented.

A. Decision Method Engine
For this, we propose a set of questions in order to single out the correct approach to develop a very specific mobile application.

Q 1 :
Should it be published on the main AppStore?Q 2 : Does it operate in offline mode?Q 3 : Do you want to sell it?Q 4 : Is it a simple application?
Will it be frequently used by the user?Q 6 : Is there an immediate need to deliver the app to the market?Q 7 : Do you have separate budget for developers in each OS? Q 8 : Do you need a lot of native features in the Mobile App? Q 9 : Is app security a high priority?Q 10 : Should it be very fluid?Q 11 : Do you want a lot of animations?Q 12 : Are we building application that needs a lot of algorithmic computation?Q 13 : Do you want to be always up to date with the latest versions of OS? Q 14 : Do you want to have the best user experience?
The table below gives the answers to these questions for each mobile development approach (native, hybrid and web).
In this perspective, we present the selection criterion established in a decision tree represented in the figure 10 below.

B. Decision Method Engine implementation
The decision tree shown in Figure above is used to determine the mobile development approach to be taken within a given situation.The decision method engine will also determine the percentage of completion of each method.To do this, we have adopted the following approach.
We have assigned, a decision factor, to each question, according to its importance.The selected intervals clarify these points:  8 : Very important  6 : Important www.ijacsa.thesai.orgThe rationale for choosing various weights of factors is provided below:  Question 1 is essential, to decide between web approach and the two other approaches.Question 7 is very important for choosing between native approach and the hybrid one, which explains the factor 8 as a decision factor.
 Question 2, actually is less important, especially with the web approach which allows saving data through offline mode according to the HTML 5 innovations.
 Question 3 depends on question 1; a mobile application for sale, must be published in the APPSTORE, thus, we have provided the decision factor 6.
 Question 4 not all important, a simple application can be developed even with all approaches.
 Question 5 not all important, a simple application developed with the web approach, without recourse to the native APIs, can also be used frequently by users.
 Question 6 is important, to decide between native and web approach.If the company has skilled human resources to develop the application within the deadlines set, will be interesting to adopt the native approach, which explains the factor 6 as a decision factor.
 Question 8 can make the difference between native and hybrid approaches.In order to implement an application, an access to several native APIs is required, so it is better to use native approach.
 Question 9 is important, if security is a priority, then it would be better to adopt native approach.Consequently, we assigned 6 as a decision factor for this question.
 Questions 10 and 11 are less important, according to the hybrid approach evolution that supports the implementation of some animations and fluidity depending on the JavaScript Framework evolution, therefore, for both questions, we have assigned the factor 4.
 Whenever the application requires a lot of algorithmic computation, then it is better to use native language for taking advantage of the methods already developed.That explains 6 as a decision factor for a question 12.
 Question 13 is important, if a mobile application has several native features it should benefit from the latest updates of the operating system, which explains the factor 6 as a decision factor.
The feedback is a strong point for this we assigned 6 as a decision factor for a question 14.
An extract of the used class diagram for implementing is shown below: The precision is given by the following ratio: Where: ∑ ( ) : is the sum of the factors of the performed questions.

∑
( ) : is the sum of the factors of the expected questions.
With: ( ) are the performed questions and ( ) are the expected questions (according to TABLE II).

C. Decision Tools Engine
Once the development approach is selected, the next step will be to define the tools to use during the implementation phase.In order to achieve this, we evaluate the needs of the solution to develop towards some sensors and features available in the mobile phone.
The following features and sensors are integrated in many of the major smartphone devices: Also, here are some criteria which may be useful in the selection process: The following sub-section describes and evaluates the mobile development tools, towards the different aspects identified above.These tools are classified in three categories: the platform specific development kit, the Cross-platform mobile development and the web tools.

D. Decision Tools Engine implementation
In the case of the web approach, the tools are defined namely HTML5, CSS and JavaScript.
In the native approach, according to the target platforms, tools to be used for each platform can be defined; therefore, the choice will be unique in this case.
In the case of the hybrid approach the decision tools engine must provide a score that will be calculated, based on the number of features and sensors required in the application that are supported by the tool.Now, to choose the right tool for implementing a mobile software application, we have defined the following scale: www.ijacsa.thesai.orgRating API or Sensor needs:  4: Well Supported.The aim of this project is to develop a location-based app, this latter allows to locate the position of contacts in the phone book located within a given radius, using a Map, it also provides the ability to communicate with other people connected to the network with the same application, by exchanging text messages and media files (e.g.photo, video), and finally it gives the possibility to take pictures and transmit them via the application to other contacts.

B. Requirements:
 Available on Android and iOS.
 Access to the network.
 Notification Alert and Vibration.
 Access to Camera and video.
 Low costs development.
 Deployable on app stores.
 Access to media.
 Access to Smartphone GPS.
 Access to contacts list.
 Access to telephony.56.75% of requirements can be implemented with the hybrid approach.
18.18% of needs can be developed with the web approach.
 Tools decision: For this case-study, the platform specific development kits are among the best, Titanium Appcelerator in the middle followed by PhoneGap with Ionic framework and Sencha Touch, and Flex among the lowest-ranking.

VI. CONCLUSIONS AND FUTURE WORKS
This work, presents a framework allowing to select the best technology to use for the development of a specified mobile application in a given context.This framework consists of two main stages, the first one determines the mobile development method (native, hybrid or web) with a completion percentage called precision, based on a set of relevant questions, the second one determines the appropriate tool for the implementation based on a set of relevant criteria.
In an ideal world of technology, without time constraints and money, it would be obviously more interesting to move to a native solution.The result has advantages in terms of ergonomics, performance and integrity.
This study allowed us to understand in which case it is interesting to turn to the web and hybrid solutions.A timely simple and unconstrained performance gain has to be a hybrid or web approach.
Consequently, so as to remedy to native approach's shortcomings, we suggest setting up a solution based on the Model-driven Engineering, allowing developers to generate native applications from the UML diagrams or by using DSL [14], [15].

Fig. 1 .
Fig. 1.Worldwide mobile phone sales to end users by vendor in 2015

Fig. 7 .
Fig. 7. Logical architecture of a typical hybrid applicationD.A comparison of the three approachesA comparison of the three approaches is structured in the following table.

Fig. 9 .
Fig. 9. Framework architecture In more detail, this architecture consists of four key steps:

Fig. 10 .
Fig. 10.Decision Tree for adopting the appropriate development method  4 : Not so important  2 : Not at all importantThe chart below illustrates these assigned weights:

Fig. 11 .
Fig. 11.Extract of class diagram of method engine

 1 : 2 :
Less popular (Medium).Well supported. 1: Supported. 0: Not supported.An extract of the used class diagram for implementing is shown in Figure 12 below:

Fig. 12 .
Fig. 12. Extract of class diagram tools engine V. CASE-STUDY A. Description:The aim of this project is to develop a location-based app, this latter allows to locate the position of contacts in the phone book located within a given radius, using a Map, it also provides the ability to communicate with other people connected to the network with the same application, by exchanging text messages and media files (e.g.photo, video), and finally it gives the possibility to take pictures and transmit them via the application to other contacts.

CFig. 13 .
Fig.13.Rate of attainment of each approach 62.16% of requirements need to adopt the native approach.

TABLE I .
MOBILE APPS DEVELOPMENT APPROACHES COMPARISON

TABLE II .
MOBILE DEVELOPMENT METHODS DECISION FRAMEWORK

TABLE III .
FACTORS ATTRIBUTED TO QUESTIONS

TABLE IV .
SMARTPHONE DEVICE STANDARD FEATURES

TABLE VI .
SELECTION CRITERIA