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



Similar documents
Cross-platform mobile development

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

Cross-Platform Tools

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

MENDIX FOR MOBILE APP DEVELOPMENT WHITE PAPER

SYST35300 Hybrid Mobile Application Development

HTML5 the new. standard for Interactive Web

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

Enterprise Mobile Application Development: Native or Hybrid?

HTML5 as the Core Technology of the Mobile Enterprise

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

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

Development of mobile applications for multiple platforms

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

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

Native vs. HTML5 Mobile App Development

HYBRID APPLICATION DEVELOPMENT IN PHONEGAP USING UI TOOLKITS

Developing and deploying mobile apps

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

Dealing with the Dilemma: Mobile App Development Approach & Decisions

Mobile Application Development

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

Building native mobile apps for Digital Factory

Accelerating Business Value by

Multi-Platform Mobile Application Development Analysis. Lisandro Delía Nicolás Galdámez Pablo Thomas Leonardo Corbalán Patricia Pesado

BELATRIX SOFTWARE. Why you should be moving to mobile Cross Platform Development? Introduction

Native, web or hybrid mobile-app development

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

ADF Mobile Overview and Frequently Asked Questions

Native, Hybrid or Mobile Web Application Development

An Analysis of Mobile Application Development Approaches

Smartphone Application Development using HTML5-based Cross- Platform Framework

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

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

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

ios SDK possibilities & limitations

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

RapidValue Enabling Mobility. How to Choose the Right Architecture For Your Mobile Application

Introduction to IBM Worklight Mobile Platform

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

Designing for Mobile. Jonathan Wallace

True Web Application Management: Fixing the Gaps in EMM Solutions

HTML5 / NATIVE / HYBRID

MOBILIZING ORACLE APPLICATIONS ERP. An Approach for Building Scalable Mobility Solutions. A RapidValue Solutions Whitepaper

Cross-Platform Development

Choosing a Mobile Application Development Approach

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

How To Develop A Mobile Application On An Android Device

Development of Hybrid Applications with HTML

separate the content technology display or delivery technology

Developing Exceptional Mobile and Multi-Channel Applications using IBM Web Experience Factory IBM Corporation 1

the future of mobile web by startech.ro

Native mobile apps: The wrong choice for business?

CROSS PLATFORM DEVELOPMENT The HTML5 Way

The 8 th International Scientific Conference elearning and software for Education Bucharest, April 26-27, / X

Cross Platform Applications with IBM Worklight

Whitepaper. Trans. for Mobile

ORACLE APPLICATION EXPRESS 5.0

Developing Exceptional Mobile and Multi-Channel Applications using IBM Web Experience Factory

THE BUSINESS CASE FOR HYBRID HTML5 MOBILE APPS

Cross-Platform Mobile Application Development

HTML5 AUTOMOTIVE 2013 White Paper Series

Technical and Business Challenges for Mobile Application Developers. Tony Wasserman Carnegie Mellon Silicon Valley Mobicase 2010

MOBILIZE ME! APPS FOR MOBILE DEVICES OR MOBILE WEB APPS TECHNOLOGIES, TOOLS, ASSESSMENTS

Developing multi-platform mobile applications: doing it right. Mihail Ivanchev

Choosing a Mobile Strategy for Your Business

ipad, a revolutionary device - Apple

Toolkit for Implementing Sites & Apps

Armedia. Drupal and PhoneGap Building Mobile Apps

Mobile Application Design

Mobile Enterprise Application Development - a Cross-Platform Framework

A Way Out of the Mobile App Development Conundrum

Cross-Platform Phone Apps & Sites with jquery Mobile

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

Responsive Web Design. vs. Mobile Web App: What s Best for Your Enterprise? A WhitePaper by RapidValue Solutions

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

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

Development for Mobile Devices Tools from Intel, Platform of Your Choice!

Collaborative Open Market to Place Objects at your Service

Cross-Platform Mobile Apps Solution

Middleware- Driven Mobile Applications

WHITEPAPER. Pros & cons of native vs cross-platform mobile development with Xamarin

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

Viability of developing cross-platform mobile business applications using a HTML5 Mobile Framework

Transcription:

Mobile App Infrastructure for Cross-Platform Deployment (N11-38) Contents Introduction... 2 Background... 2 Goals and objectives... 3 Technical approaches and frameworks... 4 Key outcomes... 5 Project narrative and deliverables... 6 Conclusion... 9 Page 1 of 10

Introduction Developing effective learning solutions for mobile delivery involves multiple disciplines and a wide range of technologies. Learning applications should be engaging, deliver a consistently meaningful user experience across different devices and work seamlessly both online and offline. This may sound simple in theory, but is in fact highly complex, technically, due to a range of factors such as the highly fragmented mobile technology landscape, rapidly evolving standards, limitations imposed by the mobile device itself (screen size, input methods, display capabilities, etc) and also constraints of the mobile network such as high latency and low bandwidth. Background Cross Platform research examined novel technical approaches for cross-platform mobile development, looking for ways of building, deploying and maintaining mobile applications which ran with little or no modification on all major mobile phone platforms, including ios, Android, BlackBerry, Windows Phone, Symbian and Palm. Page 2 of 10

Goals and objectives This NICOP built on an earlier research project: Medical Mobile Development Project (N10-39), which investigated the state of readiness of the global mobile infrastructure as well as the current best-of-breed cross platform development approaches. In particular, this NICOP utilized the following deliverables: 1 Technical design of an extensible mobile architecture 2 Prototype development of a mobile MSO app. Tribal developed a working technical solution that can be readily extended and deployed by others to create medical mobile and learning apps, building on earlier research work to cover a wider spectrum of the mobile content ecosystem (creation, deployment, extensibility) to allow both technical developers and content authors to create, and share new mobile content and tools. This included: Tools to build apps (Mobile Learning Framework): The mobile app layer of this framework was moved from an early prototype into a functioning, shareable toolkit. This technical framework was tested by building apps required by MoLE CWP, and shared with the developer community as an open source tool. Extensibility: The framework was also designed to support new module / activity types, developed by Tribal or other technical partners. Content catalogue: An online catalogue was developed to facilitate sharing and tracking of mobile content across multiple devices. Page 3 of 10

Technical approaches and frameworks Developing effective learning solutions for mobile delivery involves multiple disciplines and a wide range of technologies. Learning applications should be engaging, deliver a consistently meaningful user experience across different devices and work seamlessly both online and offline. This may sound simple in theory, but is in fact highly complex, technically, due to a range of factors such as the highly fragmented mobile technology landscape, rapidly evolving standards, limitations imposed by the mobile device itself (screen size, input methods, display capabilities, etc) and also constraints of the mobile network such as high latency and low bandwidth. In the early stages of the project, the team did significant research into the different technical approaches to cross platform app development. This divided conveniently into two tiers: 1) ways to develop mobile apps once, that will work on lots of devices (cross platform) 2) ways to create CONTENT once, so that is can be viewed on lots of devices (open formats). This separation between tiers proved critical in the latter stages of the project, where specific apps were developed to target the majority smart phones (Apple iphones, ipod Touch, ipadios 3&4 and as many Android suppliers as possible on Android 2.2, 2.3), but the content standards and guidelines were platform independent, and able to run on a far wider range of platforms. Key features of the approach were: 1 cross platform: Development of a software framework that takes advantage of the mobile browser on all smart phones to support hybrid apps, where some features of the apps are developed natively, for that device, which others are developed using web standards (html, javascript, css) so that they can be downloaded, and played on a wide range of different devices. During multiple iterations, the project team was able to define the optimum blend of these two approaches, enabling a richly interactive app, with as much re-use of content as possible 2 open formats: The research team worked with partners to define a mobile-optimized packaging format, to allow other content developers to create content modules that would work in the same app framework. These are based on the web standards mentioned above, with specific extra features unique to sharing, downloading and using mobile content (like local data storage, tracking, packaging, metadata etc) These items are explained further in the project narrative, and the specific techniques developed, have been shared with the wider community as part of our transition strategy. Page 4 of 10

Key outcomes In the early stages of the project, the team did significant research into the different technical approaches to cross platform app development. This divided conveniently into two tiers: 1 ways to develop mobile apps once, that will work on lots of devices (cross platform) 2 ways to create CONTENT once, so that is can be viewed on lots of devices (open formats). This separation between tiers proved critical in the latter stages of the project, where specific apps were developed to target the majority smart phones (Apple iphones, ipod Touch, ipadios 3&4 and as many Android suppliers as possible on Android 2.2, 2.3), but the content standards and guidelines were platform independent, and able to run on a far wider range of platforms. Page 5 of 10

Project narrative and deliverables Development techniques The current state of cross-platform development techniques falls into two broad approaches, cross-compilation and mobile web applications. Cross-compilation is the technique where a common source language is used to build the application, which is later compiled to the different required target platforms. The m-learning app in this scenario runs as a native app on the mobile device. The mobile web approach involved the use of common web technologies including HTML, JavaScript and CSS to build the application which is then presented to the user using a mobile browser, either standalone or embedded into a native wrapper application. The m- learning app in this scenario looks and behaves like a native app even though it is powered by the mobile browser. We explored a few popular open source frameworks, including Rhodes Mobile, Phonegap and Appcelerator Titanium which provide support for mobile development using either approachwith a detailed analysis of their capabilities, strengths and weaknesses. Finally we analyzed how the different types of m-learning requirements could potentially influence the technical architecture decisions. Open Apps: Approaches to Cross Platform Application Development Despite many technology enthusiasts engaging in this area, there remains no perfect answer to the question of how to develop a mobile application once that will work on all phones. Despite significant work from players including the W3C Core Mobile group (http://www.w3.org/community/coremob) and the Open Mobile Alliance (http://www.openmobilealliance.org) to promote best practices and mobile standards, there remains no simple solution to cross platform development, and no consistent guidelines or frameworks to address common problems like the delivery of cross-platform content that works seamlessly on any device. As each vendor implements its own application development stack, achieving cross-platform and cross-device consistency is a non-trivial task. Fortunately as the web becomes ubiquitous and its technologies evolve, with more and more mobile browsers implementing new standards like HTML 5, CSS 3 and JavaScript, web applications are rapidly becoming an attractive and cost-efficient way of developing mobile applications, that can rival native apps in terms of rich user experience and access to advanced capabilities like storage and geo-location. Fortunately, mobile learning enthusiasts are not the only people looking at this challenge, and a range of tools and frameworks to support cross-platform development have flourished and evolved over the last couple of years. The main approaches that are currently available are outlined below (Hartmann &Stead, 2011). Page 6 of 10

Cross Compilation (code once, generate native apps) A cross-compiler separates the build environment from the target environment, effectively decoupling a source from its target. The mobile app developer codes in a third language (like JavaScript, Ruby or Java), using a special API (Application Programming Interface) to build the mobile application, including the user interface, data persistence and business logic. The code is then processed by a cross-compiler that transforms it into platform-specific native apps for the different platforms that the application will run on. The software artefact generated from this process can be deployed and executed natively on the device. The advantages of this technique are: performance, as the application is running natively on the device; improved user experience, since the app behaves like a regular app on the user s ecosystem; and full native access to a range of device specific capabilities like integrated camera, sensors, etc. The big disadvantage is complexity, since cross-compilers can be difficult to write and need to be kept consistent with the fragmented mobile platforms and operating systems available. High profile platforms offering this approach include: Appcelerator Titanium; Rhodes (rhomobile) Mobile Web Apps (run in the mobile browser) Another increasingly popular approach is to build the app as a mobile web application that will run on the user s mobile browser. This involves using standard web technologies like HTML, CSS and JavaScript to build the application and make it look and behave like a native app. This is possible due to the advanced capabilities of HTML 5 and CSS 3, including embedded SQL databases, local storage, animations, canvas, web sockets and video playback. Although HTML 5 is still a young technology (the standard is yet to be finalised) and mobile browsers may implement it differently, its increasing popularity in rendering engines like the WebKit (which powers the iphone and Android mobile browsers) allow web apps to look and behave more and more like native apps. For certain classes of application this approach is appealing, as it is quick to develop and potentially covers a wide range of platforms with minimal changes. This includes common business applications like news readers, e-books, mobile banking, social interaction and e- mail. However it is less suited for highly interactive, CPU-intensive and visually rich applications like games, augmented reality browsers and videoconferencing. Web apps would typically run in a standalone mobile web browser (pure web). The web approach brings some advantages, like simplified deployment and immediate availability, since most modern phones come with a browser installed and to run the app the user just needs the URL and an active data connection to get started. The big drawback would be a poorer user experience (the browser is never as interactive as the native phone), and restricted access to advanced device capabilities like contacts, storage and sensors. Page 7 of 10

Hybrid Mobile Web Apps (Web-style content embedded in a native app) A variation of the above is to have a native app that embeds a browser inside it, allowing for some of the advantages of a natively built app, together with the benefits of portability that come with web-based content (hybrid web). In this hybrid model, the web app runs inside a thin wrapper style native app which provides a bridge to the device s operational system and services. The web application is cached locally on the device on installation, removing the need for an active data connection and improving its speed and responsiveness. The communication between the web app and the native app normally happens over JavaScript via custom built APIs. This technique combines the best of both worlds into one single integrated solution: flexibility of web apps with speed and feature richness of native apps. This approach can offer wider support over many devices, without needing to redevelop the content itself. It also allows developers to compensate for failings in mobile browsers on specific devices by adding extra native features where the mobile browser cannot cope. A high profile framework offering this approach is PhoneGap (http://phonegap.com/), recently acquired by Adobe. Mobile Widgets Finally, leveraging web technologies, vendors have created another way for mobile web sites to run like native installed applications. The approach has many different names, but is normally referred to as mobile widgets. The widget concept was introduced long before the mobile app and app store revolution and can be seen as a first stab at delivering small nuggets of functionality in a lightweight and intuitive way to the end user. Popular mobile widget platforms include: Symbian/Nokia Web RunTime engine, Sony Ericsson s Xperia widget engine, BlackBerry s Widget SDK and Samsung s TouchWiz widgets. A widget is an interactive tool that provides a single-purpose service to the user, such as showing the latest news, current weather, date and time, calendar, dictionary, map, calculator or even a language translator [Wikipedia]. On mobile phones, widgets normally appear on the home screen or virtual desktop. Mobile widgets are small apps normally written using standard HTML, JavaScript and CSS. The use of web technologies is invisible to the user, and the application can work just like any other software installed on the device. The platforms normally provide JavaScript APIs, so widgets can access device capabilities such as the camera, contacts and storage, like a regular native app. This is very similar to the hybrid approach described earlier, the only difference being the packaging and access to phone capabilities, since normally widget API s are richer than bespoke cross-platform libraries based on HTML 5. Although standards were created to help promote and standardise the widget landscape, they are still not widely adopted by vendors, creating a similar fragmentation to that in the mobile app development world. Fortunately, since most widget engines leverage JavaScript, it is possible to reuse almost all the code, creating a multi-platform widget engine. Page 8 of 10

Conclusion The project team did a detailed analysis of the aforementioned different approaches, building several prototypes, testing performance, and ended up selecting a blend of several approaches: For our own apps, we now use the hybrid model, keeping all mobile content in HTML format, but hand-coding native app code to provide any system level functionality. We use the open source PhoneGap framework as the basic building block, but then create custom native extensions to add learning-specific functionality. This allows us the performance benefit of native app features, without sacrificing content portability. For our mobile content/learning objects, we used the formats defined in Web Apps, or Widgets allowing the same content to play in multiple apps, on many different mobile platforms. Figure 1: Final app architecture mapped against a real page from GlobalMedAid Page 9 of 10

As part of this nicop deliverable and to compliment the information contained in this document, a number of online resources have been made available. These are: https://github.com/tribal-mlearning - Central GitHub repository containing source code for the cross platform mobile apps (Android and ios) and links to further online technical documentation. http://omlet.m-learning.net/docs - Direct link to further online technical documentation. http://omlet.m-learning.net/login - Access to an example online content repository (i.e. the course catalogue). A number of sample courses have been uploaded which demonstrate specific mobile app functionality. Page 10 of 10