Cross-Platform Mobile Development: a Study on Apps with Animations
Total Page:16
File Type:pdf, Size:1020Kb
Cross-Platform Mobile Development: A Study on Apps with Animations Matteo Ciman, Ombretta Gaggi, Nicola Gonzo Department of Mathematics University of Padua via Trieste 63, 35121 Padua, Italy {mciman,gaggi}@math.unipd.it ABSTRACT of each approach, concluding that it does not exist a pre- The paper presents a comparison between different frame- ferred solution for each kind of application, but the decision works for cross-platform mobile development, MoSync, Ti- about which framework to use should be made considering tanium, jQuery Mobile and Phonegap, with particular at- the features of the application to be developed. tention to development of applications with animations. We All the addressed works make a critical analysis of the define a set of criteria for the evaluation and we develop the chosen frameworks according to criteria which do not al- same game as case study app, with the aim to provide an ways require to develop any application. They study the unbias judgement. frameworks, the supported operating systems and sensors, Our analysis recommends Titanium as the best framework the provided APIs, etc, but they do not try to implement a to develop mobile applications with animations. case study application to understand the real performances of the frameworks. Sometimes they interview different devel- opers, which have different experiences and skills. Therefore Categories and Subject Descriptors these evaluations may suffer of the bias due to the different D.2.3 [SOFTWARE ENGINEERING]: Coding Tools and situations in which each developer has used the discussed Techniques frameworks, i. e., a particular framework may be well suited for a specific application. Moreover, they usually consider business applications which do not include animations and Keywords transition effects (or they have very poor ones). mobile applications, cross-platform development In this paper, we try to compare and evaluate perfor- mances of different cross-platform frameworks using the same case study, a serious game which aims to help children to 1. INTRODUCTION learn letters. The fishes Nemo and Dory race along a path A mobile application may require to be developed several and the child has to move the Nemo fish to avoid obstacles. times, one for each supported platform, thus dramatically This game requires to implement a lot of animations to move increasing the required time and skills for developers, and the two fishes, Nemo between four positions, the obstacles finally, the cost of production. A solution is represented by and an octopus. Moreover, to realized the illusion of the hor- framework for cross-platform development. izontal movement of Nemo, the background is moved during Some authors [1] [2] [3] try to highlight a set of criteria all the play, changing its speed depending on the result of to be met by frameworks of high quality. Heitk¨otter et al. the choices of the player. [1], compare jQuery Mobile, Sencha Touch, The-M-Project and Google Web Toolkit+mgwt according to a particular set of criteria, which includes license and costs, documentation 2. ANALYSIS GUIDELINES and support, learning success, user interface elements, etc. An impartial comparison between different frameworks for Palmieri et al. [2], evaluate Rhodes, PhoneGap, dragonRAD cross-platform development is a challenging goal since eval- and MoSync with particular attention to the programming uations are often biased by programmers' background skills, environment and the APIs they provide. Raj and Tolety [3] framework learning time, specific application, etc. For this analyze and classify a set of frameworks for cross-platform reason, our evaluation assumes that developers, that were development in four approaches: web, hybrid, interpreted asked to realize the application, already know the program- and cross compiled. They highlight strength and weakness ming language used by each framework and have to learn only how to use the framework tools (SDK, APIs, etc). For each framework, we consider many factors, i. e., li- censes and their costs, the variety and quality of APIs avail- Permission to make digital or hard copies of all or part of this work for able, the presence of tutorials and the size of the commu- personal or classroom use is granted without fee provided that copies are nity, the complexity of the code needed to implement the not made or distributed for profit or commercial advantage and that copies case study application, the usability of the IDE, the list bear this notice and the full citation on the first page. To copy otherwise, to of supported mobile devices, the support to create appli- republish, to post on servers or to redistribute to lists, requires prior specific cations with a native user interface and the basic knowledge permission and/or a fee. SAC’14 March 24-28, 2014, Gyeongju, Korea. in term of programming skills and technologies required by Copyright 2014 ACM 978-1-4503-2469-4/14/03 ...$15.00. each framework. A comparison between frameworks is reported in Table 1. tunately, the available APIs are not complete, have a low All frameworks are graded with a number between 0 and 5. level of support and are sometimes not well documented. 3. MOSYNC 4. TITANIUM MoSync is a framework developed from MoSync Inc. since Titanium is a cross platform framework developed since 2004. It supports several mobile platforms, and it is partic- 2006 by Appcelerator. It provides the possibility to develop ularly interesting since it produces a real native application mobile applications (in particular for iOS and Android) us- as final product. ing JavaScript. Titanium produces a native application, so The developer can develop a web-app, using HTML, CSS performances are very good, even if the deployed applica- and JavaScript, or can use C++ or C. The possibility to tion contains essentially a bridge between JavaScript calls choose the preferred solution drastically reduces the basic and native APIs of the target device. knowledge required to developers. Titanium requires to developers to know only JavaScript. The IDE provided for MoSync allows to test the appli- All the APIs of this framework can be called simply using cation with the integrated simulator in all the supported this language, that is a mandatory prerequisite. The Tita- platforms, to easily build the final application file and to nium Studio IDE provides several tools for developing and select which are the necessary requirements, i.e. sensors, of debugging, but requires several native tools, e.g., the An- the application. Unfortunately, the IDE suffers of a long droid DDMS to access to the log of the application, to fully start-up time and lacks of a complete integration with other support the developer. tools, e. g., a user interface designer. An high number of APIs are available for this framework. The debugger is really poor for the C++ implementation, They are even well documented, containing a description of while it gives much more functionalities using the JavaScript every method, its input and output parameters and, some- and web-view development, like step-by-step analysis. times, an usage example. They cover transactions, rotations Although the total amount of supported APIs is really and scaling, and the possibility to combine them together. high, they are not developed for recent versions of the plat- They do not allow to know the exact position of a moving forms: iOS is supported till version 4.3, Android till version object. The use of a timer to change the position of the 4, Blackberry is in beta till version 6 and Windows Phone object decreases the fluidity of the application. till version 7.5. But, also for supported versions, not all the Considering the main platforms supported by Titanium, provided functionalities are available through the APIs, e. the same application can have completely different User In- g., Bluetooth for iOS and Google Maps for Android. More- terface if deployed on an iOS or Android device. over, the programming language chosen for the development The platforms supported by this framework are iOS (from affects the set of available APIs. 5.01), Android (from 2.3.32), Blackberry, Tizen and Web MoSync does not provide any API for animations. For this Mobile, but the APIs almost cover Android and iOS. reason, it is necessary to build them manually, redrawing the Compared to the MoSync framework, the application built objects every frame. It is really easy to include other APIs with Titanium required much less time and lines of code. in the JavaScript implementation, while using C++ it is The total lines of code were 37% less, i. e., more than one essentially impossible to add new libraries. quarter less of total amount of time. This clearly show a The documentation is complete only for the JavaScript simplicity of the framework that decreases the amount of implementation, while for C++ is extremely elementary and time necessary to develop an application. sometimes with big misses, i.e. the developer needs to look From our experience, Titanium has shown several really into the code of the library to understand the class that good aspects, e. g., the high number of APIs and its doc- provides image scalability. umentation, that simplify the development an application. The creation of a \native like" application is very easy us- Therefore, Titanium must be considered when developing a ing several JavaScript functions that build at run-time the cross platform application, even for the frequent updates of right GUI. It is even possible to use third party APIs and the platform and APIs. features that improve support to native interfaces. Two li- The negative aspect of this framework relies on the sup- braries NativeUI (native User Interface only for iOS and An- port essentially limited on iOS and Android. droid) and MAUI (single UI for every platform and device) allow the creation of native GUI in C and C++ applications.