COMPARISON OF CROSS-PLATFORM MOBILE DEVELOPMENT TOOLS

Similar documents
Comparison of Cross-Platform Mobile Development Tools

Bridging the Gap: from a Web App to a Mobile Device App

Issues of Hybrid Mobile Application Development with PhoneGap: a Case Study of Insurance Mobile Application

HYBRID APPLICATION DEVELOPMENT IN PHONEGAP USING UI TOOLKITS

SYST35300 Hybrid Mobile Application Development

Cross-Platform Development

Lecture 3 Mobile App Development (Android, ios, BlackBerry, Windows Mobile) <lecturer, date>

Lecture 4 Cross-Platform Development. <lecturer, date>

Article. One for All Apps in HTML5

Analysis of Cross-Platform Development Frameworks for a Smartphone Pediatric Application

Evaluating Cross-Platform Development Approaches (WORA Tools ) for Mobile Applications

ios SDK possibilities & limitations

Rhomobile cross-platfrom

The Suitability of Native Application for University E-Learning Compared to Web-Based Application

Mobile Learning Application Based On Hybrid Mobile Application Technology Running On Android Smartphone and Blackberry

Developing and deploying mobile apps

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

To Study and Design a Cross-Platform Mobile Application for Student Information System using PhoneGap Framework

How To Use Titanium Studio

All About Android WHAT IS ANDROID?

Take full advantage of IBM s IDEs for end- to- end mobile development

Mobile App Infrastructure for Cross-Platform Deployment (N11-38)

How to Choose Right Mobile Development Platform BROWSER, HYBRID, OR NATIVE

ORACLE MOBILE APPLICATION FRAMEWORK DATA SHEET

Mobile Application Development

RhoMobile Suite. Develop applications for the next generation of business mobility

Building Mobile Applications Creating ios applications with jquery Mobile, PhoneGap, and Drupal 7

Navigating the Mobile App Development Landscape

Developing Applications for ios

The open source cross-platform application development frameworks for smart phones

Cross Platform Applications with IBM Worklight

Development of mobile applications for multiple platforms

Dasharatham Bitla (Dash)

Building native mobile apps for Digital Factory

Mobile Phones Operating Systems

Smartphone Application Development using HTML5-based Cross- Platform Framework

Module Title: Software Development A: Mobile Application Development

Enterprise Mobile Application Development: Native or Hybrid?

WEB, HYBRID, NATIVE EXPLAINED CRAIG ISAKSON. June 2013 MOBILE ENGINEERING LEAD / SOFTWARE ENGINEER

Cross-Platform Tools

ORACLE ADF MOBILE DATA SHEET

Mobile Game and App Development the Easy Way

BASIC COMPONENTS. There are 3 basic components in every Apache Cordova project:

Introduction to Oracle Mobile Application Framework Raghu Srinivasan, Director Development Mobile and Cloud Development Tools Oracle

Native, Hybrid or Mobile Web Application Development

Cross-Platform Mobile Application Development

An Analysis of Mobile Application Development Approaches

... Introduction Acknowledgments... 19

POINT-TO-POINT vs. MEAP THE RIGHT APPROACH FOR AN INTEGRATED MOBILITY SOLUTION

CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application

Enabling Cordova (aka PhoneGap) on Tizen. René Pourtier / Luc Yriarte

Choosing a Mobile Application Development Approach

White Paper INTRODUCTION. In mobile development, there are three different types of applications: PRE-SMARTPHONE MOBILITY NATIVE MOBILE APPLICATIONS

ICAPRG409A Develop mobile applications

Considerations Regarding the Cross-Platform Mobile Application Development Process

Cross-Platform Phone Apps & Sites with jquery Mobile

A Study on Android development kits and the Phone Gap Framework

Mobile Development Frameworks Overview. Understand the pros and cons of using different mobile development frameworks for mobile projects.

Keywords Online Aptitude Test, Android, IOS, Cross Platform mobile application Development.

Cross Platform Applications with IBM Worklight

Example of Standard API

Overview of CS 282 & Android

Developing Cross-platform Mobile and Web Apps

Whitepaper. Trans. for Mobile

Cross-Platform Development: Target More Platforms and Devices with a Minimal Amount of Source Code

Workshop on Android and Applications Development

Dave Haseman, Ross. Hightower. Mobile Development for SAP* ^>. Galileo Press. Bonn. Boston

ADF Mobile Overview and Frequently Asked Questions

Introduction to Android

Lecture 1 Introduction to Android

Develop enterprise mobile applications with IBM Rational software

Middleware- Driven Mobile Applications

Native mobile apps: The wrong choice for business?

A Modular Approach to Teaching Mobile APPS Development

Here s how to choose the right mobile app for you.

BlackBerry Enterprise Service 10. Secure Work Space for ios and Android Version: Security Note

Best practices building multi-platform apps. John Hasthorpe & Josh Venman

ipad, a revolutionary device - Apple

How To Develop A Mobile Application On An Android Device

separate the content technology display or delivery technology

Reminders. Lab opens from today. Many students want to use the extra I/O pins on

Accelerating Business Value by

A little code goes a long way Cross-platform game development with Lua. Ivan Beliy, Software Engineer

Survey, Comparison and Evaluation of Cross Platform Mobile Application Development Tools

Statement of Direction

Technology Services...Ahead of Times. Enterprise Application on ipad

Developing Mapping Applications with ArcGIS Runtime SDK for Windows Mobile. Jay Chen Justin Colville

MOBILE APPLICATION - CROSS DOMAIN DEVELOPMENT AND STUDY OF PHONEGAP

How To Compare Cross Platform Development To Multi Platform Development

CROSS PLATFORM APP A COMPARATIVE STUDY

01. Introduction of Android

Transcription:

COMPARISON OF CROSS-PLATFORM MOBILE DEVELOPMENT TOOLS Inderjeet Singh Mälardalen University Innovation, Development and Technology ish10001@student.mdh.se Manuel Palmieri Mälardalen University Innovation, Development and Technology mpi11001@student.mdh.se ABSTRACT Mobiles are an integral part of daily life. With time, customers are expecting best and very versatile applications in less time. It is big challenge to develop high performance mobile applications in this competitive market that would meet the expectation of customers. Mobile operating systems companies are giving their best available resources for creating application in much convenient way, but the development of similar type of new applications in short period for each mobile operating system is a problem. Mobile application development tools have solved this cross-platform problem to a great extent. These tools provide the development of application in much shorter time than to develop by using specific software development kit of mobile operating systems. The applications created by the tools are cross-platform which avoids developing same type of application separately. So these tools could be really useful for the developers to build applications with a wide scope and less time. Keywords: cross-platform, comparison, platform, tool, rhomobile, rhodes, phonegap, dragonrad, mosync, mobile operating system, smartphone, iphone, android, windows mobile, symbian, blackberry, meego. 1. INTRODUCTION Nowadays mobiles are more a necessity then need. Except making calls, there are many features which are gaining popularity like Camera, Music, Global precipitation system (GPS), Accelerometer etc. These are kind of built-in features are provided by all the major available mobile Operating Sytems OS s such as Android, iphone, Blackberry and Windows phone. All these mentioned mobile OS s are very much popular in the market because of their uniqueness. For example, Android is based on Java and free available, iphone provides best features and quality, Blackberry is the best known in the corporate world. There are some others factors like license, library support and native features etc which are affecting their growth in market [1]. The competition among them is neck and neck, both for adding new features to OS and feasibility to develop. However these OS s are so rich in libraries and builtin features but still feeling the heat of market to match customer s high expectations. The basic architecture and support of programming language of OS s is very different from each other. One built application is not compatible for all other OS s, which forces the developers to build the same application again for other OS s. Cross-platform mobile development tools deliver native application code which can be deployed on all supported mobile OS. These types of tools are gaining popularity in the world. Such tools are mainly depending on web development languages like HyperText Markup Language (HTML5), JavaScript and Cascading Style Sheets (CSS) with some native wrapper code for accessing hardware features like Camera, Contacts, etc. The application development is very easy and time saving in these tools. For example, some are providing only drag and drop features, which require very less programming skills to develop applications [2]. There are plenty of such tools available now in the market, which create confusion among developers on which one to embrace and which one to skip. This paper will try to put some light on four major available tools in the market which are Rhomobile, Mosync, PhoneGab and DragonRad. All of them have cross-platform compatibility and different architecture but mostly based on web services. So the main aim of this paper is to give clear understanding of above mentioned four mobile development tools which could prove to be helpful to everyone and the people who are somehow connected to the development of mobile applications in specific. The popularity of tools demands more research on this field and customers are expecting clear information about the tools before opting for any of it. The information is available at different parts in chunks. Some of the books and papers in the past have provided some information from different sources. One published paper at IEEE named as Tools and Toys has given some information and small comparison among tools [1]. One book by Sarah Allen, Vidal Graupera and Lee Lundrian has given detailed description about Mobile OS and four mobile development tools [3]. In this paper we go a step further and provide collected information about four major tools available in market. In this paper, after introduction, section 2 gives some idea about the mobile OS s and the little information about the market status. Then, section3 explains the limitation of mobile OS which could be overcome by using tools. Section 4, 5, 6 and 7 give little deep information about the specific tool with the help of diagrams, which is followed by comparison i.e. section 8 and then summary and conclusion which is presented in section 9. 2. MOBILE OPERATING SYSTEMS The intensive growth in mobile industry is demanding high performance for mobile OS. So in an industry like this, technology giants like Apple, Microsoft, Nokia, Symbian and Google playing bigger role. Each of them has introduced its product to fit in the market. All the OS are exciting and provide something unique to attract customers. Before, Symbian was very popular and one of the best OS s for the developers, but currently, Symbian s market share is down to 50 percent from an earlier share of 70 percent [2]. The only reason of the loss of market was the introduction of other mobile OS from other market giants. Most of the newly introduced OS s are very rich in feature and convenient for devel-

opers to create and deploy new applications. The major advantage in these OS s is the built-in features, such as Wi-fi, Gallery, Bluetooth and Contact etc., then evelopers need not to develop these from scratch which is a big relief and is timesaving. Although all new OS are very efficient, they still need a lot of time and investment to develop new applications. Beside these issues, platforms have other limitations as well. The Intensive competition does not give much space for companies to be slow in launching new application. So all these OS s has definitely made developer life comparatively easy but simultaneously has arose many challenges to be competent in the market [4]. 3. LIMITATION IN MOBILE OPERATING SYSTEM Mobile OS s have many advantages and made market very competitive as discussed in section 2. Besides all of these advantages, it has some major limitations that could be overcome by some tools. Mobile application development tools are developed to make application development easier. It simplifies the development to greater extent with other advantages. There are some advantages of mobile tools to overcome mobile operating system limitations. Developed application would be platform independent. Application could be deploy on any mobile OS; Development requires very less coding and is timesaving; Deployment of application becomes lot easier than in Mobile OS. enterprise fields [6]. Figure 1. Model-view-controller concept. Solid lines represents a direct association, the dashed an indirect association [7]. Rhodes development files are compiled into a native executable that can be executed on a real device or a virtual device, indeed this framework offer a desktop simulator where is possible with whom is possible interact via command line tools or web interface. The applications can be compiled into Java bytecode for BlackBarry platform to be executed natively or into Rudy 1.9 bytecode to be executed on all other platforms [5]. 4. RHODES RhoMobile is a set of products, which provides a framework for cross-platform Smartphone applications. It is developed by Rho- Mobile that offers an open source Ruby-based mobile development environment, which aims in managing enterprise application and data. Rhomobile composed of many products, like Rhodes (Develop), RhoConnect (Integrate), Rhohub (Deploy) and RhoGallery (Manage). RhoMobile tools and framewoks can be used across Linux, Mac and Windows OS. The main scope of RhoMobiles Rhodes framework is to provide a high level of productivity and portability of web programming. Creation and maintenance of applications are developed on single code-base across all major mobile platforms, like iphone, Android, Windows Mobile and BlackBerry; Web experience is necessary to make mobile application, whereas is not needed to learn Software Development Kit (SDK) or native languages of each mobile platform [5]. Many native applications of the platforms are provided to improve the end-user experience, which work with synchronized local data and take advantage of device capabilities such as Barcode, Bluetooth, Calendar, Camera, Contacts, Global Positioning System (GPS), Menu, Near Field Communication (NFC), Screen Rotation and Signature Capture. Rhodes is the only framework that uses Model View Controller (MVC) pattern. The Views are used to do applications and they are written with HTML, CSS and JavaScript. Controllers are written in Ruby programming language for backend support. The business logic of views and controller with native applications is generated by app generator. App generator is a feature that creates initial app based on the model of the developers application. This kind of approach also provides a professional experience in Figure 2. Rhodes Architecture, showing interfacing between Smartphone device and Rhodes components [8]. RhoMobile provides an Integrated Developed Environment (IDE) called RhoStudio which is an innovative solution dedicated to users that want to develop application through a hosted IDE. This solution is called RhoHub (3.0 version) and it allow developers to create applications in HTML and Ruby via browser. Alternatively it is possible to write Rhodes applications with any editor or IDE which supports HTML and Ruby. The most popular editors are Eclipse, Visual Studio, Netbeans, IntelliJ, Textemate and other [9]. 5. PHONEGAP PhoneGap is an open-source mobile development framework developed by Nitobi Software under Massachusetts Institute of Technology (MIT) license. That means developers and companies can create free, commercial and open-source applications; in more it possible to combine the licenses. The development environment is cross-platforms and permits the creation of applications for the OS s iphone, Android, webos, Windows Mobile, Symbian and BlackBerry.

Phonegap is a useful solution for building cross-platform mobile applications using modern web technologies, like HTML, CSS and JavaScript using the functionality of the SDKs. Essentially is a wrapper that allow to developers to enclose applications written in known languages into native applications and as each valid open-source software it is composed by many components and extensions. The results of the use of PhoneGap are hybrid applications because they are not purely native or web-based. The meaning of not purely native comes from the layout rendering that is done via web-view instead of the native language of the platform, whereas not purely web-based comes from the missed support HTML of some functions [10]. The first (top) layer is called Web Application and represents the environment where the developer creates the application using the IDE. In this layer the source-code of the project is collected. The second layer is composed from Javascript Application Programming Interfaces (API) PhoneGap and native APIs. This layer is responsible of the interfacing between the Javascrip API used in the source-code (Web Application) and the native API used from the mobile OS s. The effort put in this layer is to maintain the compatibility and relations between Javascript APIs and native APIs of each mobile OS. PhoneGap provides JavaScript APIs to developers that allow access to advanced functionality of devices, such as Accelerometer, Barcode, Bluetooth, Calendar, Camera, Compass, Contacts, File System, GPS, Media, Menu, NFC, Network, Notification, Screen Rotation, Signature Capture and Storage [12]. 6. DRAGONRAD Figure 3. PhoneGap Architecture represents different components use for development [11]. The realization of applications is very fast because developers have to write once the code and it will be run anywhere or on any mobile OS. Unfortunately, PhoneGap does not provide a unique IDE to develop applications on all mobile OS, but developers have to execute the source-code on different IDEs (i.e. Eclipse for Android and XCode for iphone). OS s supported by Phonegap are Mac, Linux and Windows but the development depends on the IDEs used. 5.1. Phonegab architecture The PhoneGap s Architecture is composed mainly of 3 layers. DragonRad is a cross-platform mobile application development platform that allows developer to develop, manage and deploy the mobile applications. The cross-platform property of tool allows support to many mobile OS such as iphone, Android, Black- Berry and Windows Mobile [13]. The tool focuses on database driven mobile enterprise applications with easy and wide range of databases support. It provides the drag and drop environment which help developers to save time of programming and to create logics. DragonRad facilitates the integration and synchronization of database system with native functions of above defined mobile OS like Contacts, Calendar, Payments, Location Based Services, Maps, Camera and Native Devices Keys. The Architecture of DragonRad mainly composed of three major components [14]: DragonRad Designer; DragonRad Host; DragonRad Client. 6.1. DragonRad Designer It is drag and drop visual environment or GUI for developer to design, develop and pushing mobile application. The feature of drag and drop is not only helps developer to design very powerful application but also reduce the efforts for maintenance and coding [14]. 6.2. DragonRad Host Figure 4. Showing layered Interfacing of Phonegap architecture [11]. DragonRad host component could be run on either Linux or windows server which fill the gap between database of enterprise and mobile applications. It helps to maintain the communication with mobile device, which also includes query of transaction during network unavailability. It also has role in establishing problem free connection with database access and updates with synchronization. Some summarize feature of DragonRad host are as follows [14]: Taking data query from the device; Running data query on specific target; Sending data back to device based on request; Handling data updates from the devices and updating databases; Compression and data checking of data packets.

6.3. DragonRad Client This component behaves like native application on device which helps to run and interpret code of the created application by designer. DragonRad has the emulator to run and debug the application. This component also has the feature to customize application like change icon, application name, dragonrad project and link for installation of DragonRad host. By changing the link for dragonrad host, the application automatically connects to this host when it started. It would also help in updating the project when required. One advance function provided by the DragonRad company to compile the application online [13]. helps developer to build and package all type of applications. Application of all kind like simple application, advanced and complex will share the same code base. Mosync SDK is proving to be very powerful tool with many components tightly coupled together like Libraries, Runtimes, Device Profile Database and Compilers and so on. It provides the full fledge Eclipse- based IDE and the use of standard c/c++, easy to use well documented APIs. The idea involved to support multiple mobile OS s is different from other tools and also in very isolated way from other mobile operating code. They application in Mosync is build, targeting a device profile by using GNU Compiler Collection (gcc) and pipe-tool. After writing the application, pipe-tool is used to compile the resources present in the application. Then GCC backend is called and path to target device profile passed to it. GCC uses it to produce Mosync intermediate language, which then fed in to pipe-tool. So, pipetool behaves as the bridge between mosync applications to target device profile. The profile database helps the application in ensuring that it has adapted correctly to the device. The runtimes are libraries which are bound to provide support related to all like regarding graphics, audio, communications, input, uniform interface to low level system APIs and other device features [16]. 7.1. Mosync Architecture Mosync has mainly two architectures specific two each language C++ and java. The idea and most of the components are same except few. Architecture mainly consists of eight components as shown in the Figure 6. Figure 6. Mosync Runtime Architecture, Showing the layered structured concept use in it [17]. Figure 5. Architecture DragonRad with the connectivity of different components in it [14]. In Figure 5, the area containing your network provides all backend support like custom data connector that could fit for any web service available, while tomcat/mapdataserver is for support to the database. Whole this network is connected to mobile phone having different OS through Wi-Fi. The other sub-part BlackBerry Enterprise Server (BES) is specifically for BlackBerry product like playbooks. This tool allows creating application in very easy manner with having only three step, which are connect, build and deploy [14]. 7. MOSYNC Mosync is an open source solution developed by Swedish company targeted to mobile market. It has fully fledged SDK which 7.1.1. Service layer A runtime responsible for service layer, supports many functions like file I/O, threading, networking, memory management and many more functions [17]. 7.1.2. Application framework This component is responsible for runtime entry point. This component is primarily to manage platform specific events like event management, initialization and destruction. The size and level of responsibilities varies across multiple platforms [17]. 7.1.3. Syscalls This module has implementation of all the built in native features like camera, contact, images, audio and networking etc which is specific to multiple platform. It is also responsible to interprets Mosync resource files and supports some like event management, initialization and destructions [17].

7.1.4. Resource System As name signifies, this component is for managing the resource object, such as images, sound and data blobs with the support of dynamic creation and destruction of resources [17]. 7.1.5. Internal Extensions It design and configuration of each platform is specific. All platforms do not contain same type of features except few mandatory. So the missing feature are implemented through single Syscall and known as numbered functions. When function is not found by Syscall it throws one error related to feature, which makes developer life little easy to determine a non universal API is accessible in runtime [17]. 7.1.6. Core This module core is sole responsible for the execution of Mosync programs by interoperating with Syscall and resource system, Mosync offers mainly three different types of core, which all share same common interface [17]. 7.1.7. Virtual Machine Core VM is now universal abbreviation which stands for virtual machine, so it will act like virtual machine with the support of loads, interprets and run Moysync byte code directly. The execution is taken care by single; small function that allow efficient Just in time (JIT) optimization. The whole structure is very similar to the core of Java Mobile Edition (Java ME) [17]. 7.1.8. Recompiler Core It is works as the compiler that loads mosync bytecode and recompiles it on the specific platform or typically Advanced Risc Machine (ARM) machine. After this recompilation, the generated code is executed. This core has many similarities with windows mobile and symbian [17]. 7.1.9. Generated core This core is responsible for the exhibiting interface with the generated native code. At this level it does not have any connection with the bytecode. The type of core is like iphone core. So the reason for having three different types of core in mosync has versatile advantages. For example VM core is best for debugging and its dynamic approach makes it possible to load new code at runtime. This property proved to be very useful for many applications. Recompiler core is more efficient but less debugging support and its dynamic behavior also help in fast recompilation of some code. At last generated core have zero overhead for low end devices which are not able to load code at run time [17]. 8. COMPARISION OF TOOLS This section will help reader to understand the differences among tools on the basis of some concrete points, like the Platforms Support, Available Languages, Applications Output, Licenses and etc. The comparison is not to declare best and bad tool, but we want to help reader to understand and evaluate the best development tool according to his/her requirements. The selection of four tools was done by considering frameworks that would able to generate applications on main mobile OS, such as iphone, Android, Windows Mobile, etc. Table 1 shows different kind of mobile operating system supported by each tool. Furthermore, on the right side of the Table 1 are shown OS supported by IDE [17][18]. Tool Name Mobile OS Support OS Support RhoMobile iphone, Windows Mobile, Linux, Mac, BlackBerry,Android Windows PhoneGap iphone, Windows Mobile, Linux, Mac, BlackBerry, Android Windows Symbian, WebOS DragonRad iphone, Windows Mobile, Linux, Mac, Blackberry,Android Windows MoSync iphone, Windows Mobile, Linux, Mac, BlackBerry,Android Windows, JavaME, Symbian Table 1. Comparison on mobile platforms compatibility and development environments OS s support. From Table 1, it is easy to understand that PhoneGap offers more compatibility for development on different mobile OS, whereas IDEs hosted in Personal Computer (PC) is the same for each platform. An important comparison among tools about platform differences which provides good overview to reader is presented in table 2. Starts from Language field that explains support of development languages offered by each platform to develop applications. Many kinds of development languages are available, such as HTML, CSS, Javascript, Ruby, C, C++ and (DragonRad) D And D; same languages are suitable to create web applications and others native applications. A macro-difference between tools is on the type of output that each platform is able to produce. DragonRad is the only platform that offers the possibility to produce both types of applications, whereas other platforms have an only one type of output. Currently, support to native applications could be considered as best point for performance results, while maintaining a low charge of performance hardware. On the other hand web applications are considered to be best to maintain a great congruency In Table 2 is also showing IDEs that each platforms support. RhoMobile is the company that offers two useful ways to develop applications; in fact it provides some different solutions as RhoStudio IDE to develop in locale and RhoHub IDE to develop via remote connection. Furthermore, RhoMobile provides the possilibity to use alternative IDEs, such as Eclipse, Visual Studio, Netbeans, IntelliJ, Textemate, etc. Mosync offers an Eclipse based IDE, whereas DragonRad offers an owner IDE solution. PhoneGap is the only platform that has different approach between tools, indeed it offers an extension (plugin) that could be applied on all native IDEs. Some examples of native IDEs are XCode for iphone, Eclipse for Android, etc. This kind of solution seems to work very well because in general a native IDE offers developer a good development environment, unlike other solutions that development of an application has to be done on different IDEs. A careful reader will ask, what are the advantages of this approach if the developer has to create applications on different IDEs? So the answer to this question is just

to remember that PhoneGap is a tool that supports HTML, CSS and JavaScript languages, since these languages are not native the source code will be equal for all platform. The only effort that PhoneGap requires from developer is to develop the application on an IDE and perform a simple porting of the source code in other IDEs [17][19]. Name Language Access IDE Output Code App RhoMoblie Ruby, Yes * RhoStudio Web HTML, (Ext.) RhoHub, ** Javascript CSS Phonegab HTML, Yes * IDE native of Web Javascript, (Ext.) the Mobile OS CSS (i.e. Eclipse, Xcode) Dragonrad D And D Yes DragonRad Native Designer Mosync C, Yes Based on Native C++ Eclipse * the native code is accessible through Javascript APIs that interface with native APIs. ** others alternative IDEs, such as Eclipse, Visual Studio, Netbeans, IntelliJ, Textemate, etc. Table 2. Comparison on development features. The license of tools is another helpful parameter for the comparison. As shown in Table 3, the licenses used available for these tools are MIT, GNU General Public License 2 (GPL2) and Commercial. The first two licenses are free and moreover they offer an open-source support. This kind of approach is much important for all developers that would develop applications and wants to provide a support to the development platform without having commercial restriction. On the other hand, commercial licenses could be useful for companies that want to receive the support directly from the manufacturer. Different from other frameworks, Rhodes is the only framework with MVC support. Rhodes MVC framework provides support to native Smartphone apps, the ability to write real business logic on local native app. This explains the reason of so many robust enterprise apps written with it [17][20]. Name Licence Open source Archit. MVC Rhomobile MIT Yes Local, Yes Web PhoneGap MIT Yes Local, No Web DragonRad GPL2, No Translate No Commer. MoSync Commer. Yes Local, No Web Table 3. Comparison of general features. Rhomobile and PhoneGap are the only two platforms that provide architecture of interfacing between JavaScript APIs Layer and Native APIs Layer. These platforms use a native language of mobile OS to access to hardware and software resources with the purpose to add basic functionalities to the JavaScript Engine and make it easy to use for the application as traditional library methods. In based to mobile OS with which the platform will do interfacing, the user-code will be converted in native-code, such as ObjectiveC for iphone, Java for Android, etc. Some important APIs that represent hardware and software functions are listed in Table 4. The list provides the developer more details to well-understand if the platform you want to use is compatible with the requirements of the application [20]. JavaScript API RhoMobile PhoneGap Accelerometer Barcode Calender Camera Compass Contacts File System GPS Media Menu NFC Network Notification Screen Rotation Stroage Table 4. Comparison on main Javascript APIs. 9. SUMMURY AND CONCLUSIONS This paper explained comparison between four types of crossplatform approaches to develop applications on different mobile operating system. Currently, these kinds of approaches are much in use which help companies to create application designated to be sold on different market places, such as Apple Store, Android Market, etc. To maintain a logical thread on the comparison, we have chosen some points of view that could be helpful to the reader to understand which framework would be appropriate to the requests. So the challenge is to select tool that support major mobile platforms that has revolutionized the market (i.e. iphone, Android and Windows Phone) and with the compatibility of framework on most OS s, like Linux, Mac and Windows. Two different classes represent these tools because of the type of application output; web application and native application. The first class, or rather frameworks that work with web code offer a very fast way to develop applications for many different mobile OS. The development is based on web languages that use JavaScript APIs to interface with native APIs of the application. Although JavaScript performance has increased by 100 times, but the performance difference between web-based applications and native applications is still high. Nowadays, it is not very convenient to develop applications that implement background services (i.e. DropBox) or with very complex business functionality, because it affects the performance and increases high demand of hardware resources. The second class which is inverse to first, it represents tools that produce product with native applications. This kind of approach is useful to developers that want to create complex application, like games, benchmark, etc [21].

Another consideration that has been done is relative to the license of tools. We have chosen two tools that have a free license, one that has commercial license and one that has both licenses, just to provide an idea about the kind of support that each development platform offers. Future work will extend our analysis providing more details on architectures and in particular as layers interact with each other starting from the code written by the developer to the native code. The purpose of the future work will be always oriented on the comparison between development platforms. 10. REFERENCES [1] Daniel Dern, Tools and Toys: IEEE Spectrum, June, 2010. [2] Andreas Jakl, FH Hagenberg - Mobile Computing, Mobile Operating System: is it PC?,April, 2009 [3] Sarah Allen, Vidal Graupera and Lee Lundrigan, ProSmartphone Cross-PlatformDevelopment, Apress, 978-1-4302-2869-1, 2010. [4] Dotcom Infoway, White Paper on Mobile OS and efforts towards open standards. [5] Sarah Allen, Vidal Graupera and Lee Lundrigan, ProSmartphone Cross-PlatformDevelopment, Apress, 978-1-4302-2869-1, 2010, 83-86. [6] RhoMobile, What is so special about the Rhodes smartphone app framework?, March, 2010, http://rhomobile.com/blog/whats-so-special-about-therhodes-smartphone-app-framework. [7] Tabacu Iuli, Maria and Horia Ciocarlie, Best Practices in iphone programming: Model View Controller archtecture - Carousel Component development, IEEE, April, 2011 [8] Leckylao,Rhodes framework: Agile mobile web development, June, 2010, http://leckylao.com/2010/06/12/rhodesframework-agile-mobile-web-development. [9] RhoMobile, Build Rhodes Application, http://docs.rhomobile.com/rhodes/build. [10] Sarah Allen, Vidal Graupera and Lee Lundrigan, ProSmartphone Cross-PlatformDevelopment, Apress, 978-1-4302-2869-1, 2010, 131-133. [11] MokaByte, Applicazioni mobili negli scenari Enterprise, Mar, 2010, www2.mokabyte.it/cms/article.run?articleid=o5r-r6l- HN8-8R8 7f000001 18359738 2ff5bd55. [12] PhoneGap, API Reference, http://docs.phonegap.com/en/1.1.0/index.html. [13] Colin Best, Seregon Solutions announces support for blackberry playbook, January, 2011, http://www.prweb.com/releases/dragonrad/playbook/ prweb4960674.htm. [14] DragonRAD, What is DragonRad, March, 2011, http://dragonrad.com/foswiki/bin/view/help/introduction. [15] MoSync AB, What is Mosync, 2011, http://www.mosync.com/content/mosync-cross-platformmobile-development-made-easy. [16] Patrick Broman, The runtime architecture, june, 2010, http://www.mosync.com/documentation/manualpages/runtimearchitecture. [17] Jeff Rowberg, Comparison: App Inventor, DroidDraw, Rhomobile, PhoneGap, Appcelerator, WebView, and AML, July, 2010, http://www.amlcode.com/2010/07/16/comparisonappinventor-rhomobile-phonegap-appcelerator-webviewand-aml. [18] RhoMobile, Rhodes, http://rhomobile.com/products/rhodes. [19] Mobile Apps cross-platform development challenge: Phone- Gap vs. Titanium vs. Rhodes, Mauro Dalu, Jan, 2010, http://surgeworks.com/blog/lab-mobile/iphone/mobileapps-cross-platform-development-challenge-phonegap-vstitanium-vs-rhodes. [20] Timo Paananen, Smartphone Cross-Platform Frameworks, Bachelor s Thesis, Jamk University of Applied Sciences,Apr, 2011. [21] PhoneGap, PhoneGap Plugins, Aug, 2011, http://wiki.phonegap.com/w/page/36752779/phonegap