Mobiles are an integral part of daily life. With time, customers are expecting best and versatile applications in very less time. It is indeed a huge 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 still a problem. Mobile application development tools have solved this cross-platform problem to a great extent. These tools provide the development of application in a much shorter time than it would take to develop 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. Hence, these tools could be really useful for the developers to build applications with a wide scope and less time.
Nowadays mobiles are more of a necessity than a need. Except for making calls, there are many other features that are gaining popularity like Camera, Music, Global precipitation system (GPS), Accelerometer etc. These are a kind of built-in features provided by all the majorly available mobile Operating Systems OS's such as Android, iPhone, Blackberry and Windows phone. All of these mentioned mobile OS's are very much popular in the market because of their uniqueness. For example, Android is based on Java and is freely avail-able, iPhone provides the best features and quality, Blackberry is the best known in the corporate world. There are some other factors like license, library support, native features etc. that affect their growth in market . The competition among them is neck and neck, both for adding new features to OS and the feasibility to develop. Although these OS's are so rich in libraries and built-in features, however they are still feeling the heat of market to match customer's high expectations. The basic architecture and support of programming language of OS's is way too 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 promise to 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 mostly dependent on the web development languages like
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 . One book by Sarah Allen, Vidal Graupera and Lee Lundrian has given a detailed description on the Mobile OS and four mobile development tools . 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 also a little information about the market status. Section 3 explains the limitation of mobile OS which could be overcome by using tools. Section 4, 5, 6 and 7 gives a deeper information about the specific tool with the help of diagrams, which is followed by a comparison i.e. section 8 and followed by summary and conclusion in section 9.
2. MOBILE OPERATING SYSTEMS
The intensive growth in mobile industry is demanding a very high performance for mobile OS. So in an industry like this, The technology giants like Apple, Microsoft, Nokia, Symbian and Google playing a bigger role. Each of them have introduced their product to fit in the market. All the OS's are exciting and provide something unique to attract customers. Earlier, Symbian was very popular and one of the best OS's for the developers, but currently, Symbian's market share is down to 50 per cent from an earlier share of 70 per cent . The only reason for the loss of market was the introduction of other mobile OS from other market giants. Most of the newly introduced OS's are rich in feature and convenient for developersTo create and deploy new applications. The major advantage in these OS's are their built-in features, such as Wi-Fi, Gallery, Blue-tooth and Contact etc., then developer's need not 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 applications. Thus, all these OS's has definitely made a developer life comparatively easy. Simultaneously, it also has arisen many challenges to be competent in the market .
3. LIMITATION IN MOBILE OPERATING SYSTEM
Mobile OS's had many advantages and has 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 a 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 deployed on any mobile OS;
Development requires very less coding and is timesaving;
Deployment of application becomes a lot easier than in Mobile OS.
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 is composed of many products, like Rhodes (Develop), RhoConnect (Integrate), Rhohub (Deploy) and RhoGallery (Manage). RhoMobile tools and frameworks 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 plat-form . Many native applications of the platforms are provided to improve the end-user experience, which work with synchronized local data and take advantage of the device capabilities such as Bar-code, Bluetooth, Calendar, Camera, Contacts, Global Positioning System (GPS), Menu, Near Field Communication (NFC), Screen Rotation and Signature Capture.
Enterprise fields .
Figure 1. Model-view-controller concept. Solid lines represents a direct association, the dashed an indirect association .
Rhodes development files are compiled into a native executable that can be executed on a real device or a virtual device, indeed this framework offers a desktop simulator where it is possible with whom is possible to interact via command line tools or web interface. The applications can be compiled into Java byte code for BlackBerry platform to be executed natively or into Rudy 1.9 byte code to be executed on all other platforms .
Figure 2. Rhodes Architecture, showing interfacing between Smartphone device and Rhodes components .
RhoMobile provides an Integrated Developed Environment (IDE) called RhoStudio which is an innovative solution dedicated to users who want to develop application through a hosted IDE. This solution is called RhoHub (3.0 version) and it allows developers to create applications in HTML and Ruby via browser. Alter-natively 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, Net beans, IntelliJ, Textemate and others .
Phone Gap is an open-source mobile development framework developed by Niobic Software under Massachusetts Institute of Technology (MIT) license. That means developers and companies can create free, commercial and open-source applications; in more it is 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.
Figure 3. Phone Gap Architecture represents different components use for development .
The realization of applications is very fast because developers have to write the code once and it can be run anywhere or on any mobile OS. Unfortunately, Phone Gap 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 An-droid and XCode for iPhone). OS's supported by Phonegap are Mac, Linux and Windows but the development depends on the IDEs used.
5.1. Phonegap architecture
The Phone Gap's Architecture is composed mainly of 3 layers.
Figure 4. Showing layered Interfacing of Phonegap architecture .
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 . 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 :
DragonRad Designer; DragonRad Host;
It is drag and drop visual environment or GUI for developer to design, develop and pushing mobile application. The feature of drag and drop not only helps developer to design very powerful application but also reduce the efforts for maintenance and coding .
6.2. DragonRad Host
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 net-work unavailability. It also has a role in establishing problem free connection with database access and updates with synchronization. Some summarized features of DragonRad host are as follows :
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.
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's started. It would also help in updating the project when required. One advanced function provided by the DragonRad Company is to compile the application online .
Figure 5. Architecture DragonRad with the connectivity of different components in it .
In Figure 5, the area containing your network provides all back-end support like custom data connector that could fit for any web service available, while tomcat/MapDataServer is for support to the database. Whole of 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 comprising of only three steps, which is connect, build and de-ploy .
Mosync is an open source solution developed by Swedish company targeted to mobile market. It has fully fledged SDK which
Helps developer to build and package all type of applications. Applications 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 is very isolated way from other mobile operating code. They application in Mosync is build, targeting a device pro-file 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 is then fed in to pipe-tool. Such that, pipe-tool behaves as the bridge between the 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 .
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 .
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 .
7.1.2. Application framework
This component is responsible for runtime entry point. This component primarily manages platform specific events like event management, initialization and destruction. The size and level of the responsibilities varies across multiple platforms .
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 interpret Mosync resource files and supports some like event management, initialization and destructions .
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 .
7.1.5. Internal Extensions
Its design and configuration of each platform is specific. All plat-forms 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 .
This module core is solely 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 .
7.1.7. Virtual Machine Core
VM is now a universal abbreviation which stands for virtual ma-chine, so it will act like a virtual machine with the support of loads, interprets and run Moysync byte code directly. The execution is taken care by a single; small function that allows efficient Just in time (JIT) optimization. The whole structure is very similar to the core of Java Mobile Edition (Java ME) .
7.1.8. Recompiler Core
It works as the compiler that loads mosync byte code and re-compiles 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 that of windows mobile and Symbian .
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 byte code. This type of core is like an 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 codes at runtime. This property has been proved to be very useful for many applications. Re-compiler core is more efficient but has less debugging support and its dynamic behaviour also help in fast recompilation of some code. At last generated core has zero overhead for low end devices which are not able to load code at run time .
8. COMPARISION OF TOOLS
This section will help the 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 the best and bad tool, but we want to help the 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 be 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  .
Table 1. Comparison on mobile platforms compatibility and development environments OS's support.
From Table 1, it is easy to understand that Phone Gap offers more compatibility for development on different mobile OS, whereas IDEs hosted in Personal Computer (PC) is the same for each platform.
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 the 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 possibility to use alternative IDEs, such as Eclipse, Visual Studio, Net beans, IntelliJ, Textem-ate, etc.
Mosync offers an Eclipse based IDE, whereas DragonRad offers an owner IDE solution. Phone Gap is the only platform that has different approach between tools; also, 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
** others alternative IDEs, such as Eclipse, Visual Studio, Net beans, IntelliJ, Textemate, etc.
Table 2. Comparison on development features.
The license of tools is another helpful parameter for the com-parison. As shown in Table 3, the licenses used and 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 who 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 .
Table 3. Comparison of general features
9. SUMMURY AND CONCLUSIONS
This paper explained comparison between four types of cross-platform approaches to develop applications on different mobile operating system. Currently, these kinds of approaches are much in use which helps the companies to create applications 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 plat-forms 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.
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 the 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 in 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 always be oriented on the comparison between development platforms.