Comparative Analysis of Cross-Platform MAD Frameworks

Mobile Application Development is getting to be additionally difficult with differing stages and their product improvement packs. Lately, mobile computing has been having truly a revolution. Anyways one of the difficulties that has been conceived due to this revolution is technology and device fragmentation leaving developers stupefied. Platform developers, device manufacturers accompany such a variety of gimmicks and functionalities that it has been hard to give developers a less demanding method for creating applications and running the application on every cell phone with expense and time compelling measures. To lessen the expense of development and connectivity with maximum users across a plethora of platforms, developers are relocating to cross-platform application development tools. In this paper, we give a few choice criteria past the portability concerns toward picking suitable cross-platform solution for application development. Nonetheless, we discovered that cross-platform solutions might be suggested by and large, yet they are still constrained if high prerequisites apply with respect to execution, convenience or native user experience.


INTRODUCTION
The scene of mobile platforms has seen real development in recent past. While BBOS, Symbian, Bada withered and failed to gain any traction, iOS & Android have stunning market and mind share. Additionally Microsoft's Windows Phone may not have high piece of the pie however it still has solidified its third place in the race. In the time of cell phones and tablets, mobile applications are tremendously increasing the value of a few businesses including transport, travel, retail, ecommerce, etc.
The expanding interest for mobile applications in numerous zones presents designers and organizations with a few issues: implementing an application for multiple mobile platforms like Android and iOS, may require high exertion in terms of development time, assets, support and conceivably licenses, tools and deployment. One impacting element is the fragmentation of the market of mobile platforms, i.e. cell phones and tablets. Also the diversity of mobile platforms and the assortment of SDKs and different devices pose extraordinary difficulties. That incorporates decision of SDK, UI and UX of application, stability of framework, ease of upgrading, expense of development for multiple platforms and time to market an application.
Most of the developers might want to have their applications on all major platforms, with a consistent UX over all platforms. At the same time creating native experience for each platform obliges profound learning of every single platform and their SDKs. This methodology likewise raises the expense of development, time to market the application, effort in updating and maintenance of the application. This is where the cross-platform development solutions come into picture.

Pure web application frameworks
It ought to be noted that few frameworks exist which basically depend on HTML for client interface designing and in this way could be joined together with pure web application tools. For instance, JQuery Mobile gives a structural architecture to web applications, including predefined user interface segments, page loading and transitions. Other frameworks even contain custom styles for mobile platforms, e.g. components that seem to be like iOS/WP native user interface components.

Partially based on web technology
Frameworks that primary utilize HTML and related languages to display the user interface, however also offer an API for calling device specific functionality, fit in with this classification. Existing systems utilize JavaScript to permit access to native functions, connecting JavaScript function calls and local APIs (e.g. functions of the vendor-provided SDK for the underlying platform). Then again, there are systems that help calling native functions but don't provide the means to execute native user interfaces. Case in point, PhoneGap offers numerous native functions however just utilizes the platform's web view component with a specific end goal to show client interfacesno UI functionality is incorporated. Such frameworks might be joined together with UI-centred frameworks, for instance SenchaTouch etc.

Compiled or interpreted code
Unlike the previous category, frameworks of this sort don't chiefly utilize web technologies, yet typically fuse an alternate sort of client interface API and a solitary programming language which is then utilized over all supported platforms. For example, the Titanium Appcelerator framework packages applications with a standalone JavaScript interpreter. Webrelated APIs like DOM (Document Object Model) manipulation are excluded and rather, Titanium offers its own API for producing a UI from code, and for other functions like network, device and file access. Since these frameworks often support native UI components, contrasts between the platforms' typical UI design must be considered. In this manner, distinctive framework architectures might be found. Titanium offers a abstract interface for common components like buttons, yet specific APIs for platform-specific ones (e.g. iOS toolbar, WP appbar etc.). Other frameworks just offer a programming language for platform-independent code, while requiring UI to be produced independently for every single platform.

Other types
Various existing cross-platform solutions use approaches that contrast from the above classifications. For example, the XMLVM venture has the objective of making an interpretation of programming languages into one another. One illustration use is the cross-compilation of an Android application to a native iPhone application by translating its source code and including a compatibility layer that impersonates the Android APIs on the iOS platform.

REQUIREMENTS OF A CROSS-PLATFORM FRAMEWORK
We have identified the desirable requirements of any cross-platform framework as stated below:

Multiple mobile platform support
The framework must support several mobile platforms. Support for Android and iOS are very essential since they have the largest share in the application markets. Windows Phone and Blackberry 10 are also major platforms in many parts of the world, supporting these would also be a major plus point for the framework. Most of the Cross-Platform frameworks does support all of the four OSes given above.

Rich user interface
As of now numerous cross platform tools provide sub-standard user interface (UI). Since the success of an application relies very much on the user experience of the interface, rich UI development ought to be incorporated. Support for modern graphics, animations, multimedia are vital.

Security
Applications developed by cross platform tools are not highly secure. Proper research needs to be carried out to secure the tools and applications. Many HTML based frameworks have security issues as they rely on the browser component to access the application data. These security loopholes can be fixed by updating the security paradigm of the browser itself.

Support for app-extensions
It is required to install app extensions on top of existing applications like in-app purchase/billing capability. The frameworks need to let developers add extra functionality such as advertising and billing for every platform.

Accessing built-in features
The tools must be able to access the built-in features of a smart device. Use of camera, sensors, geo-localization and more features helps to provide better user experience. Many apps require hardware access for some features to work, so the cross-platform framework should allow for apps to access the hardware.

Fig 2: General architechture of cross-platform frameworks
The application developer implements the business rationale or the application functionalities utilizing web technologies or any another backed by the framework. The cross-platform framework permits implementing user interface and access filesystem and device features (sensors, camera, contacts etc.) which interfaces with the framework API (normally JS). The API will thusly interact with the native API of a mobile platform. The application is then compiled independently to produce the executables for mobile platforms. The APIs for the mobile platforms allow generating the respective application. Subsequently the created application might be deployed to corresponding mobile phone.

FRAMEWORK COMPARISON CRITERIA
Level of platform support S e p t e m b e r 2 3 , 2 0 1 4 This will help a company identify a tool that will help it reach the maximum target audience through the number of platforms a tool supports. A company or a developer that wants to reach Android users should consider or rate a tool that has the best support for Android and similarly for others.

Level of device feature set support
Once a tool is selected or primed to be selected, the next evaluation will be the level of native feature the tool provides f or the platform it supports and how good it supports them. Or considering some unique feature one tool provides others can't such as cloud data syncing, social network integration.

Programming language the framework uses
Learning a new programming language can make a developer less productive and as a result could potentially be a cost to a company sponsoring the developer or the development, plus learning a new language from the ground up might probably require a lot of effort and time. Developers must take into account the development language of the tools.

Framework performance in developing
Framework 1 is better than Framework 2 if it uses less code to build the same application. UI Rendering is also very important. We don"t want an application to stuck in "Uncanny Valley". UI translation can lead to fatal compromises in UX.
Most of the users prefer the UX of their native platform, so frameworks must provide tools to at least mimic the native UI. Also the perceived speed of the running application is very important. The build file size should also be less as compared to other frameworks.

Extensibility of the framework
Any framework, no matter how mature can still need extensions to support new features which are not usually provided. A framework needs to provide basic extensibility features for the developers like Maps, In-app billing, UI controls etc.

Licensing
No one would argue that getting anything free or cheap feels good. But paying a reasonable licence fee for a robust product should also not be a problem. But deploying exorbitant licensing fees would be a huge drawback of any framework.

Security structure
Nowadays most of the user"s sensitive data is stored on their smartphones. Any lapse in the security of the application can cause data breach, possible cyber-attacks, theft of sensitive information etc. The security structure of any framework must be robust enough to prevent loss of information and security breach.

SAMPLE APPLICATION
In this simple experiment, the tools will be investigated to show how they implement the same functionality. Number of code lines, how a tool implements user interfaces, application size, compilation speed, how user controls such as buttons are constructed, the symmetry between simulation and actual device implementation of the applications, testing on simulation and running on actual devices should not cause misplacement of the user controls.
The sample application for this case study is a pizza cross platform mobile application. The applications provide facilities to users for selecting pizza type, selecting toppings type, filling delivery address and finally sending the order to a pizza shop.
The application will have four windows:

Pizza selection
This is where a user selects a pizza bread. The pizza bread choices are Hand Made, Natural, Pan Crust, Stuffed Crust, Thin and Crispy Crust and they will be arranged in a horizontally scrollable gallery. S e p t e m b e r 2 3 , 2 0 1 4

Toppings selection
After pizza selection, the application will navigate to this page so users can select the toppings of their preference. The available choices for topping are Bacon, Beef, Italian Sausage and Grilled Chicken.

Address Filling
Having selected the pizza bread and the toppings, a user can proceed and fill the delivery address. The address is composed of name of ordering user, street, house no, zip code or any other preferred addressing system. The addressing window has four textbox bars.

Order submission
This is the last window in the application where a user gets to send the order via SMS to a pizza shop using the address embedded in the application. S e p t e m b e r 2 3 , 2 0 1 4

PERFORMANCE EVALUATION ON BASIS OF TEST APPLICATION
First we evaluate the frameworks used on the basis of the test application we created. We assess all the necessary criteria which can be used to compare all the frameworks and understand the performance of all the frameworks. The values obtained from CPU "snapshot" methodology are processed when the application is doing much calculation and is in this manner represented by very high values. Likewise it is to be noted that these values may differ a considerable measure from a millisecond to another since they are snapshot at CPU utilization for short measure of time.
The values acquired from "top" result shows shifting CPU uses. The min value is constantly 0 as -once the application fetches the requested page, the application does not utilize any CPU processing. The average value is figured utilizing the aggregate elapsed time. It is clear that the first application uses less CPU yet the client experience is not exceptionally sophisticated. At the point when Sencha Touch is utilized alongside PhoneGap, the CPU utilization is all the more yet the client experience is altogether better.

COMPARISON OF FRAMEWORKS ON UNIVERSAL SCALE
After evaluating for our test application the next step would be to assess the frameworks on a broader scope. Here the frameworks will be compared and weighed against numerous criteria which will affect all the developers. The requirements and weights are given below :