Review of Cross-platforms for Mobile Learning Application Development

—Mobile learning management systems are very important for training purpose. But considering the present scenario, the learners are equipped with a number of mobile devices that run by different operating systems with diverse device features. Therefore, developing a mobile application for different platforms is a cumbersome task if appropriate tools and techniques are not practiced. There are three categories of mobile application namely native, web based and hybrid. For mobile learning system, hybrid is an appropriate choice. In order to avoid re-implementation of the same hybrid application for different platform separately, several tools are proposed for example: PhoneGap, Adobe Air, Sencha Touch and QT, each with their own strength. With proper use of the strength of individual framework or the combination of frameworks, more compatible and more stable, cross-platform mobile learning application specifically for quizzes and assignments can be developed.


I. INTRODUCTION
In the present era of proliferating computer networks, and electronic devices (mobiles, tablets, PCs) every individual and organization is trying to get access to information and use these devices for their advancement and improved performance.Electronic information is accessible to a huge population in the world.Mobiles have become so much common that we have started to use it in every sphere of life.Whether it is entertainment or education, we can see a very intense use of mobiles and we can consider them as a new personal computer.It doesn't mean that desktop computers are now useless, but the mobile devices market is growing fast.They are cheap, convenient because of their portability, and due to geo location often more useful than PC.
Desktop applications are now commonly communication based and application developers develop a single application in cross-platform that can easily run on different desktop platforms e.g.Mac or Windows.There is an increasing demand of mobile applications to use mobile devices, but an application development for mobile devices is not so simple and it's a big challenge.These mobiles have different operating system and unlike PC OS, mobile OS decides the type of programming language required for applications running on it.So we need to design the mobile application according to its platform.There are various categories of app development for mobiles broadly categorized into three, namely, native apps, mobile web apps and hybrid apps and according to the app categories and platforms, we have different choices in programming languages and framework for mobile application development.For running an application on multiple platforms, a cross-platform framework is required.Cross-platform frameworks for PC app are not adaptable to mobile app, so vendors provide cross-platform framework for mobile apps (some of them are discussed in section V).With this advancement of technology maybe third party cross-platform emerges that supports both PC app and mobile app irrespective of platform.
In our studies, we explore cross-platform strategies that would be helpful for providing solution to barriers in an app developed for mobile learning systems in a heterogeneous device environment.The mobile learning is defined as "Any sort of learning that happens when the learner is not at a fixed, predetermined location, or learning that happens when the learner takes advantage of the learning opportunities offered by mobile technologies" according to [1].In a university environment incorporating mobile learning for quizzes and assignments requires learning system tools [1] specifically course search, file exchange, report generation, content creation, administration, off-line work, calendar and indeed many others.
With the diversity in devices (like Android, iPhone, Blackberry, Nokia Symbian, Laptops, Windows Mobile Phone), in order to provide above mentioned tools of learning system to its end user, an application suitable for the heterogeneous platform environment is required.We have discussed the different platforms in section II, categories of mobile apps in section III, app development languages and frameworks suitable for heterogeneous platform mobile apps are discussed in section IV and section V respectively.In section VI we discuss cross-platform strategies suitable for online or off-line quizzes and web based assignments and in section VII we conclude the studies.

II. MOBILE PLATFORMS
There are different operating systems that are used in the mobile market: Symbian, Blackberry, iOS, Andriod, Windows phone and Plam's webOS.Application development in a few of them discussed in detail in [14].

A. iOS
To develop for iPhone, iPod, Intel based Mac computer running OS X or later is required.iPhone SDK provided by Apple includes Xcode IDE, iPhone simulator and a suite of www.ijacsa.thesai.orgadditional tools for app developement.App Store provides user facility to search and download app developed by iOS SDK.

B. Android
It is released by apache license and built on linux.Android app can be built using windows, Mac, or linux and java is primary language of Android.Java classes recompiled in Dalvik byte code and run on Dalvik virtual machine.Android does not support J2ME, and its most commonly used editor is Eclipse.Developers may create native libraries in C or C++.The Google play store is the official site and portal for Android app.

C. Blackberry
Blackberry smartphone platform support web development with HTML, CSS and javascript, java application development using MIDP, CLDC and RIM proprietary APIs.32 bit windows OS support development of Blackberry app in Java.

D. Windows Mobile
It provides more desktop like user experience.In addition to C++ and C#, Silverlight and XNA are used for application and game development.For windows mobile development visual studio.Net framework, windows mobile SDK and developer toolkit are required.

Symbian
Symbian OS is used by Nokia, Sony Ericsson, Siemens and Samsung [1].Language supported by Symbian OS is python makes use of Symbian C++ APIs.Python can also run on Mac, Windows and Linux [13].

III. CATEGORIES OF MOBILE APPLICATIONS
Irrespective of the type of mobile platform there are three main categories of mobile apps as in which normally we designed the applications.Depending upon the application requirement, we decide the category suitable to our requirements.First of all, let us discuss about all of them briefly.

A. Native apps
These applications are specific to the mobile operating system environment, take full advantage of its particular features and can be developed with the cross platform approach with a single code base for all devices [3].Native apps get a performance gain by using the generated native code [2].As one project maintained for each OS this leads to an increment in the development team, costs, and time and challenge for developers are the new ones that continually appear in market [3].Native apps works without the connectivity of the internet.If you are working in an environment where there is no connectivity, native app is the way to go.Since native apps work with the device's built-in features, they are easier to work with and also perform faster on the device.Application build in this category are platform dependent.So whatever language you will use, you will have the full access to IDEs which provide better tools to develop and debug the project faster.Examples of native apps are Angry Birds, Shazam 1 .
With all these benefits of native apps, they have a few disadvantages also.Maintenance of the Native app is complicated task both for the users and developers.Developers have to program it according to different platforms and users have to update it regularly.The development cost of this app is more if you are making application for different platforms.Sometimes it becomes very difficult for the developer to give maintain and offer support as users of different mobile may be using different versions of the apps.

B. Web Apps
Web apps work with the devices that have browser therefore they can work on desktop computers as well on mobiles.In responsive web application, design decided by the server and applied at client level renders according to device features [3].Whereas mobile web app that provides better usability as compare to responsive web, its content, provided merely for mobile devices consequently there is a need to maintain different sites for each device [3].Users need not to go to mobile app store to update or download the application.Whenever the users will log in, they will get the updated version.Developers also need not to bother about the mobile platform.There will be the single universal version which can be used by any mobile platform.Hence, the maintenance cost of the web app is low.Eaxmple of Safari and Chrome web apps giben in mobiloud webiste.
On the other hand, web app has some shortcomings also.Internet connection is a must in web apps.Web apps are not compatible with smartphone features like camera, GPs, phone dialing, etc. Web apps are not even listed in play store.Users have to search it on the web to use.Performance of web apps is slower as compared to native apps.They are also more difficult to build a regular user-base, unless they save it as a bookmark.Users won't have the app's icon on their devices as it is a web link which can be open as required.As a developer or publisher you can't send them notifications to bring them back to your content.

C. Hybrid apps
Hybrid apps combine technologies from native and mobile Web apps to gain the benefits of each.They behave like a native app because they are installed from a web store and have access to device specific features as in native app but developed using web app tools [3].The tools for hybrid app can modify pre-packaged HTML pages, can change user interface according to device platform and allow both offline and online usage [2].Hybrid mobile apps can be released on multiple platforms when using certain web technologies like HTML5, CSS3 and JavaScript.It will save the overhead time and cost used to prepare softwares for each platform.The Netflix app is one example of a hybrid app which runs the same code base on all platforms.Facebook, TuneIn Radio, LinkedIn are some of the examples of hybrid apps.
There are a few disadvantages of using hybrid app development.Hybrid apps are not executed natively; the www.ijacsa.thesai.orgHTML5 and JavaScript portion of the app is rendered and executed by the platform's Web engine, which adds another layer between the user and the app.This can make the execution of the application slower.This is a new technique as compared to other two, so there are less tools available for the development of hybrid apps.Sometime, performance issues for certain types of apps are there in hybrid apps like on complex native functionality or heavy transitions, such as 3D games.

IV. APPLICATION DEVELOPMENT LANGUAGES
Choosing the right development tool is very crucial and important decision.A new technology's successful adoption often depends on its development tools.Good tools help new developers more easily get started and make experienced developers more productive.For instance, the success of Microsoft's programming environment is closely associated with the success of its Visual Studio tools.This topic summarizes the major app development languages available for different platform that we discussed in section II with their relevance to cross platform mobile apps.

A. Objective-C
Objective-C with Xcode IDE, primary programing language offered by Apple only for iOS [4] provides object oriented capabilities, requires dynamic runtime and runs merely on MAC operating system 2 .It is used to build native apps that run directly on iOS [1].Xcode suits include interface builder and instrument.In the MVC design pattern for iPhone application development Objective-C class required for view controller and web view can also be included in native iPhone application [14].

B. Java
Java 3 is a very popular programming language when it comes to mobile application programming.Many developers are using this language as it easy to use and many online tutorials are available to get the help while development process.One of the popular development tools of Java is Android SDK.It includes many standard Java libraries like data structure libraries, math libraries, graphics libraries, networking libraries as well as special Android libraries that will help programmers to develop best Android applications.Moreover, Java can be used to program native apps, mobile web apps and hybrid apps.It is an object oriented programming environment that is used for platform independent application.The application running on battery driven devices built by J2ME java family, it provides networking support and has API JSRO82 for Bluetooth technology [13].Java with Eclipse IDE provided app running on Android and support web view [14].For blackberry app both J2ME and Eclipse IDE are suitable.Java CLDC Emulation required for windows phone and J2ME for Symbian [17].Considered as a major app development language in [14] along with HTML and CSS is important for Mobile Web Application and almost all framework support JavaScript.JavaScript supported by all platforms, Android and iPhone have full featured browser while the browser on Blackberry support JavaScript 1.0, 1.1, 1.2, and 1.3.Therefore HTML and CSS code based on platform specific browser features of one device cannot be used on another device with different browser features.

D. HTML 5
It is considered by many developers and companies as a standard for web development and even hybrid can be used with HTML 5 framework [3].Due to HTML 5 difference in native and hybrid has reduced significantly, moreover an app in HTML and JavaScript deployed on local system can provide a similar structure as native apps [5].It provides information regarding error handling and also support offline storage, network connectivity, multimedia, sockets and threads, drawing animation and advanced form controls [12].A very prominent feature of HTML 5 is client side storage and up to 5 MB data can be stored by the user of the web application [12].iPhone and Android support web application developed using HTML 5.

E. C#
It is used for Microsoft mobile and a web or desktop application implemented in Java can be translated to C# for windows mobile platform [5].It targets the .Net CLI and take advantage of .Net framework.In C# developer can take advantage of web libraries, database connectivity, and socket programming [13].

F. PHP
In mobile web apps server side applications can be built using PHP, Node.js and ASP.Net [6].PHP IDE provides a framework to create robust mobile PHP applications 4 .With PHP [15] we can access the user agent string for detecting device, attain information about browser, check device capabilities and image rendering with PHP WURFL API.Open source PHP is required for Android.

G. C\C++
For Microsoft windows phone C++ use within XAML app and in games.Windows phone runtime native API are built in C++ and can be projected in C# or VB.Net [1].Android native libraries written in C\C++ [16].Symbian C++ [13] provides full access to device features and improved speed, that is an edge for symbian C++ over python and java and eclipse based carbide C++ is preferred IDE for Symbian and Nokia.Open C [13] provides cross-platform development, a set of middleware libraries for the smartphone platform and TCP /IP socket programming.
H. Python www.ijacsa.thesai.orgPython with a rich and standard library of modules is defined in [13].It provides a scripting solution using Symbian C++API.Used for Symbian particularly Nokia's platform.It can run on Windows, MAC OS, Linux and Symbian OS.It supports a rich set of smartphone features such as sending and receiving SMS / MMS, camera, bluetoooth, network access, sound recording and playing, text to speech and 2D / 3D graphics.It supports different dialogs e.g.pop-up notes, query, pop-up menu, select list.By combining with the web services through JSON, REST new type of applications and services can be created.Bluetooth protocol use for Bluetooth connectivity between devices and gsm_ module for location awareness.
The native development languages of different smartphone operating system are mentioned in [14].Table 1 summerizes mobile platform support for the set of app development languages with IDE according to what it is stated in section II and IV.
To conclude this discussion we have come up with that there are various languages used for cross-platform application development.According to report of developereconomics-q3-2014 research only 15% of mobile developers are targeting browser while 42 % are using HTML, CSS, and Java Script.Whereas Java, C / C++, Objective C and C# are also very popular among developers.According to statistics mentioned in that research we provide the percentage of primary languages share in mobile app development in fig 1.

V. FRAMEWORKS FOR CROSS PLATFORM MOBILE APPPLICATIONS
In the previous section we have discussed different programming languages used for development of mobile applications.Percentage of usage of these languages depends upon the mobile app category and device platform supported by the target language.Although an application can be built without a framework, but with the framework we get a cross platform app with an easy development and deployment process [3].The given table 2 summarizes some of the frameworks used for mobile apps.Information of XMLVM, PhoneGap, DragonRad and Rhodes based on [4]  With this outline about different frameworks mentioned in table 2, we can make a comparison of their usage across operating systems (mobile platforms) and can provide a layout of the development process according to app category.Since with cross-platform mobile frameworks it is inevitable that developers select software that provide a common development approach across different platforms.In this topic we discuss briefly on some of the popular cross-platform frameworks selected from table 2, focusing on app development process.

A. PhoneGap
PhoneGap is a free and open source framework that allows you to create mobile apps using standardized web APIs for the platforms.To develop for iPhone, we need a Mac OS X computer.PhoneGapLib is a static library that enables users to include PhoneGap in their iPhone application projects.We can also create new PhoneGap-based iPhone application projects through an Xcode project template.Xcode is Apple's development environment for Mac OS X and iPhone that includes the iPhone SDK capabilities of the framework.In case of Android, a developer needs to install the Android SDK and Eclipse plus the Android Development Tools development plug-in for the Eclipse.ADT extends the capabilities of Eclipse to let you build Android projects and APKs in order to distribute applications.Development for Blackberry device needs Eclipse 3.4 or 3.4.1.Along with this developer has to install BlackBerry JDE Plug-in for Eclipse, and the Eclipse Software Update for the BlackBerry JDE v4.6.1ComponentPack.

B. Sencha Touch
Sencha touch is the best environment for cross-platform development based on HTML5 and CSS3.It enables developers to build powerful applications that work on iOS, Android, BlackBerry, Windows Phone, and more.The Sencha Touch API is pure JavaScript.Developers need to be fairly experienced at JavaScript to take advantage of the Sencha Touch framework.Sencha Touch apps can not only be accessed via browsers, but can also be deployed as hybrid apps using native wrappers.Sencha Touch is not dependent on jQuery, so is compatible with both the iPhone and Android.It uses XML and HTML to create interface design and procedural code for creating a UI object.The latest version of it supports Apache Cordova APIs for camera, capture, connection, events, geolocation, media, notification, splash www.ijacsa.thesai.orgscreen and storage.These are few features available to native apps that are essential to app developers.

C. IWebKit
The iWebKit is a framework focused on being fast, lightweight, and specifically for developing web applications and websites for Apple's devices.It can easily be integrated into iPhone application developed in Objective-C and applications developed using Rhodes and PhoneGap frameworks.Developers familiar with HTML and CSS framework can easily use iWebKit.The iWebKit framework includes a comprehensive set of style sheets, icons, JavaScript, and a test index page that serves as a basic template for any views you may need to add to your application.

D. Titanium
Titanium is mainly used for native application development for mobile environment.It consists of an SDK that provides the necessary tools, compilers, and APIs for building for the target platform, and a visual environment for managing development.It utilizes web technologies that are both trendy and powerful, including AJAX, HTML5, CSS3, and jQuery.Titanium is available for Mac, Linux and Windows.Developing for the Android requires the Android SDK and can be done using Mac, Windows, or Linux.The Titanium framework comes with a platform-independent API that can make applications feature-rich because it can access advanced features such as touchscreens, cameras, GPS, navigation, contacts, storage, and much more.Titanium also supports augmented reality features like Screenshot, Shake and Record Video.

E. Rhodes
It supports cross-platform web application development in HTML, CSS, JavaScript and Ruby.Its tool can be used across Mac, Windows, and Linux.The user interface of app is created using HTML and CSS.It requires Apple SDK for iPhone or iPad with Mac OS for development of app.For android Mac, Windows or Linux can be used.The Android native development environment is required, but no need of Eclipse IDE.Blackberry is java based with windows to run its tools and no need for eclipse.Rhodes support windows mobile 6 but not 7. MS Visual studio not used with Rhodes.Device capabilities supported by Rhodes in different platform are geoloaction, contacts, camera, date\time picker, audio\video capture, Bluetooth, SMS, Landscape orientation, and native maps.

F. RhoSync
Mobile user can access information even in offline mode on device due to synchronization servers.It is a sync server framework that provides web services to Rhodes based app running on smartphones.It is data stores that stores information as an object, attributes values and works as a middle tier between web services and mobile app.In RhoSync ruby support query based information retrieval, data submission, creation, deletion, updating and user authentication.

G. JQTouch
It supports HTML pages that look like a native iPhone app animated transition, swipe detection and themes for HTML based web app are aided by jQTouch.It can influence crossplatform such as PhoneGap and Rhodes.It is a source code lib that includes JavaScript and CSS.Creating a new app is jQTouch is being simple, but the modification is difficult.

H. Adobe Air
It uses the same technology to build web application for different platforms but this framework is not suitable for an app that requires high computation resources.Irrespective of operating and browser get access to the services of the same site, app portability, and rich user interaction.JSON used for data transfer between web server and mobile app.It provides a rich internet application with desktop software and network capabilities and complete control over app by the user.It is a runtime program with no specific language and heavyweight solution.It supports flash, flex, JavaScript, AJAX and HTML.

I. Processing
It is popular for artist, designers and from the edge of productivity, supporting different platforms.It is Java based.Ketai provides Android hardware features in processing.It provides a simple, straight forward, wide range of libraries and tools for highly interactive app.It is available for Windows, Mac, Linux, and support Open GL.It does not support some of the advance features of Eclipse IDE.

VI. DISCUSSION
Well-known operating system and rich set of software development tools are used to drive mobile devices such as cell phones, smartphones and tablet.Each operating system and applications running on that OS works in a different way, e.g.Android applications developed by using Java and run in its own process, while iOS application built by using Objective-C run directly on iOS.Since there is proliferating diversity in devices used by the students, therefore development language and framework should meet the requirements of the heterogeneous device environment.In this section we discuss possible solution for implementation of on-line \ off-line quizzes and web based assignments in mobile learning system to enhance traditional learning practices under a given scenario.
There is a need of framework that is platform independent and creates an app that not depends on particular device requirements.With the discussion in section III and conferring to requirements of learning tools, we consider hybrid app category is suitable for on-line \ off-line quizzes and for web based assignments in the mobile learning system specifically for the one we proposed in [18].Because they provide web based interface with offline working capacities and access to some of the device features.Hybrid app support highest number of cross-platform [9].
PhoneGap [6] for mobile learning system development support forum, assignment, chat, resources, file upload and download.www.ijacsa.thesai.orgLikewise an open platform LMS [1] with middleware based architecture and rich client application using PhoneGap, HTML5 and JavaScript for user interface also support many different student role functionalities on heterogeneous client devices.Mobile voice agent [9] integrated IBM Worklight and PhoneGap with speech platform for audio query and audio summary of query results.Application development with Adobe Air [8] is browser based rich internet application that can be accessed at any location on any device.Sencha Touch use to develop presentation layer and reasonable graphical user interface for mobile app [10], is hardware independent and can run on different devices.
From the literature review given in the last paragraph and online information 6 and many others, we conclude our discussion on the effectiveness of hybrid app cross platforms for online \offline quizzes and web based assignments.The choice of platform depends upon requirements, for example, if the requirement is a simple hybrid mobile app with web interface Phone Gap is a better choice but for rich application with animation, videos, etc. Adobe AIR gives better performance and application support.PhoneGap is suitable for a complete app rather than just user interface of a browser based app as in Sencha touch, jQTouch and iWebKit.Rhodes suitable for cross-platform, but provide a single code base that has compiled in target platform language and load app in the simulator.Most of the primary app development languages are not supported by Rhodes.Processing is also suitable for rich sensor based app; it is lightweight and easily installable but it is defined for Android in detail.How it will actually work in a cross-platform environment that is not explicitly defined.

Quiz and Assignment Tool
Since quizzes and assignments include many features such as creation of quiz \ assignment content, sending assignment to students on due date, assignment submission within the due date, conducting quiz online or offline in class, result generation, display of result and answer key etc. as mentioned in fig 2. Therefore a client server based mobile app for these tasks could be differentiated as web based assignment tool and offline\ online mode quiz tool supporting different end users on their heterogeneous devices.One of the most important features that are data transfer between devices in offline mode with Bluetooth technology is not discussed in mobile learning systems [1][6][7].During the development, in order to fulfill requirements of our system we will explore cross-platform frameworks specifically PhoneGap, Adobe Air, Sencha Touch, Processing and aCME (for web based assignment) further as most of them are Java based, Java is compatible development language to almost all mobile platforms as shown in table 1 and has API for Bluetooth technology.Other than that, except for Processing all other frameworks support many varied mobile platforms.Either we will use them individually or use a combination of frameworks for implementation of the application in a heterogeneous device environment.In this paper, we discussed cross-platform mobile learning development with special focus on quizzes and assignments.Through the comparison and contrast we have proposed that adopting a hybrid app technique is most suitable for such mobile app developers.From this study, we have learned that there are several frameworks that are feasible for hybrid crossplatform mobile app with each of them having some pros and cons.In order to avoid re-implementation of the same applications for different platform separately, it is vital to compare and make use of the strength of individual framework or the combination of frameworks, so that a better, more compatible and more stable cross-platform application can be developed.Studies also show that there are many existing learning systems that are not being explored fully and will probably have a bright future if some more functionalities are considered and proper implementation is carried out.Therefore, in our future work we will still continue the studying of the latest cross-platform framework, device features accessible by these frameworks, and implement a learning system incorporating new features.Hence, this study is important for a cross-platform mobile learning application development.

Fig. 1 .
Fig. 1.Primary Languages share in Mobile App Development

Fig. 2 .
Fig. 2. Basic Tasks in Quiz and Assignment Tool VII.CONCLUSION

TABLE I .
MOBILE PLATFORM SUPPORT FOR DEVELOPMENT LANGUAGES -www.ijacsa.thesai.org