Development of mobile applications for multiple platforms



Similar documents
SYST35300 Hybrid Mobile Application Development

Cross-Platform Mobile Apps Solution

Rhomobile cross-platfrom

CROSS PLATFORM DEVELOPMENT The HTML5 Way

HYBRID APPLICATION DEVELOPMENT IN PHONEGAP USING UI TOOLKITS

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

Mobile Application Development

Dasharatham Bitla (Dash)

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

Etanova Enterprise Solutions

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

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

Making Mobile a Reality

Cross-Platform Tools

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

Article. One for All Apps in HTML5

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

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

MENDIX FOR MOBILE APP DEVELOPMENT WHITE PAPER

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

Leveraging Partners and Open Source Technology in your Mobility Strategy. emids webinar Thursday, August 11, :00 pm 2:00 pm EDT

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

Retool your HTML/JavaScript to go Mobile

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

CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application

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

Whitepaper. Trans. for Mobile

Platform Independent Mobile Application Development

The Bootstrapper's Guide to the Mobile Web by Deltina Hay. Mobile App Strategy Worksheet. I. Target Market, App Category, Platforms

Constantly monitoring the technology landscape, we select and adopt for you the best solutions available.

Developing and deploying mobile apps

Cross-Platform Phone Apps & Sites with jquery Mobile

Smartphone Application Development using HTML5-based Cross- Platform Framework

Enterprise Mobile Application Development: Native or Hybrid?

Building native mobile apps for Digital Factory

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

WHITE PAPER. Cross Platform Mobile Development

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

An Analysis of Mobile Application Development Approaches

Mobile Learning Basics + (Free) Mobile Learning Guide. Jason Haag and Marcus Birtwhistle

ios SDK possibilities & limitations

Value Added Services (VAS) - Mobile Applications Business Cases

How to pick the right development model for your next mobile project

Middleware- Driven Mobile Applications

ArcGIS Web Mapping. Sam Berg, esri

Accelerating Business Value by

A Review of Different Comparative Studies on Mobile Operating System

Lee Barnes, CTO Utopia Solutions. Utopia Solutions

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

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

The approach Microsoft has taken with its Windows Phone 7 platform is

Statement of Direction

Software Development Interactief Centrum voor gerichte Training en Studie Edisonweg 14c, 1821 BN Alkmaar T:

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

Cross-Platform Mobile Application Development

Best Practices in Enterprise Smartphone Development

Cross Platform Mobility

place/business fetch details, removefromfavorite () function, 189 search button handler bind, B BlackBerry build environment

CSS CORP SMART MOBILITY SERVICES

the future of mobile web by startech.ro

Mobile Application Platform

Mobile Device Management and Security Glossary

Basic Trends of Modern Software Development

INTERACTIVE SERVICES CAPABILITIES PRESENTATION

,... Innovative Software in its Simplicity! Windows Linux Mac OS X ios

HTML5. Turn this page to see Quick Guide of CTTC

Quick Start Guide Mobile Entrée 4

Mobile Solutions in ArcGIS. Justin Fan

OpenEdge and Mobile Applications

SA Series SSL VPN Virtual Appliances

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

Microsoft SQL Server Review

INFORMATION TECHNOLOGY STANDARD

Mobile web apps: The best option for business? A whitepaper from mrc

research: technical implemenation

NO PLACE FOR ERRORS. Looking for top quality Custom Software Development Services? We are here for you.

Native, Hybrid or Mobile Web Application Development

HTML5 & Digital Signage

HTML5 the new. standard for Interactive Web

BogDan Vatra and Andy Gryc. Qt on Android: Is it right for you?

How To Develop An Html5 Based Mobile App

About Me. Cross-platform Mobile Development Challenges, Best Practices and more.

Cross-Platform Development

Microsoft Training and Certification Guide. Current as of December 31, 2013

Enterprise Mobile App Management Essentials. Presented by Ryan Hope and John Nielsen

CiviMobile & CiviSync Mobile. Peter McAndrew Rohit Thakral

Where are Organizations Today? The Cloud. The Current and Future State of IT When, Where, and How To Leverage the Cloud. The Cloud and the Players

CSC WORLD AN ARTICLE FROM FOCUS ON MOBILITY. Defining Your Mobile Strategy: A Guide to Developing Apps

ni.com Remote Connectivity with LabVIEW

Navigating the Mobile App Development Landscape

Please contact Cyber and Technology Training at for registration and pricing information.

IT Quick Reference Guides How to Find Your MAC Address

Developing Apps for Business

Comparison of Cross-Platform Mobile Development Tools

Making the Most of Existing Public Web Development Frameworks WEB04

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

Mobile Application Development of the Erhvervsstyrelsen Frekvensregistret Service Challenges and Implementation

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

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

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

Transcription:

Harwell Innovation Centre Building 173 Curie Avenue Harwell Oxford Didcot Oxfordshire, OX11 0QG +44 1235 838 531 www.redskiessoftware.com Development of mobile applications for multiple platforms By Darren Oliveiro-Priestnall, Executive Technical Director Date: 14 th October 2011 Version 2.1

Contents Introduction 2 Problem Statement 2 Separate platform applications approach 3 Shared code base approach through MonoTouch and MonoDroid 3 Shared code base through application WebView approach 4 Extending all three approaches to include non-mobile applications 5 Conclusions 6 Introduction In 2010, over 300,000 applications were downloaded over 10.9 billion times, a figure predicted to rise to 76.9 billion downloads in 2014, generating US$35 billion in revenue (IDC), up on $7.3 billion in 2011 (Canalys). As the mobile application market continues to grow, so does the need to support the widest number of platforms to ensure applications reach the widest possible audience while giving the maximum return on investment to application owners. This is not an easy challenge to meet, especially since the mobile application market is still relatively new and is subject to rapid changes between the popularity of platforms. Gartner predicting that by the end of 2012, Android mobile devices will account for 49.2% of the market share, largely replacing the current Apple iphone user base. Other sources suggest a dramatic increase in Windows Mobile devices with the launch of Windows 8, thanks to the tight integration with Microsoft cloud technologies, office applications and enterprise level software such as SharePoint and Dynamics. At the same time Apple is continuing to innovate, Blackberry is rethinking its own offerings and as of yet new platforms will likely surface as the revenue potential from this new market continues to be demonstrated. Problem Statement With so many new platforms, where does this leave the application developer who wishes to support the largest number of available platforms? Developing software to run across multiple platforms can be a complex and costly affair, both in terms of initial development costs as well as in the long term

maintenance of so many separate applications. This problem isn t only constrained to mobile applications but also extends to all interfaces to the business whether that s the company website, its Intranet and Extranet or any specialized desktop software or distributed widgets As mobile application usage continues to grow and desktop software sales continue to decline, the importance of managing the development, branding and distribution of company applications will increase. This white paper covers three approaches to mobile application development which address these challenges in different ways. All three approaches are used daily on projects by Red Skies Limited, applied depending on the nature of the application being developed. Separate platform applications approach The most common approach to supporting multiple platforms is to develop independent applications for each platform. This is a practical approach when an organization intends to target just one or two platforms or when an organization needs to optimize an application for a device, making the most use of specific devices API s. Gaming is a good example when every last clock cycle needs to be used on a phone to make a game run smoothly. However, frameworks such as Unity3D (http://unity3d.com/unity) are even making cross platform development of games a more cost effective approach while still maximizing the benefits from a device s graphics API s. Unity3D allows stunning 3D games to be developed quickly and deployed across ios and Android devices as well as PC, Mac, Nintendo Wii, Sony Playstation, Microsoft Xbox and the web using a single shared.net code base. With this approach it is still sometimes possible to share a subset of code between a mobile application and other non-mobile applications. For example, assembles written for Windows Mobile can be used in other.net applications such as a company website, WFC web service, a Silverlight application or even desktop WPF application. With careful consideration up front it is still possible to make some gains through code reuse even when writing separate applications for each mobile platform. Shared code base approach through MonoTouch and MonoDroid Red Skies Limited started out as a.net specialist, working as a Microsoft partner providing solutions across all Microsoft platforms including the web, desktop, mobile and embedded. Building on the cross platform strengths of.net, we have gradually extended out to include an increasing number of non- Microsoft platforms into our field of expertise while maintaining code reuse across all supported platforms. How does a.net company share code with Android, ios and Windows Mobile when all three platforms use different languages? When a high level of processing is required on the handset but a company wishes to use

a shared code base, we provide solutions developed around the MonoTouch (http://ios.xamarin.com) and MonoDroid (http://android.xamarin.com) frameworks. These frameworks allow code to be developed in.net but rather than compile them into assemblies, they are compiled into the code required for the individual handset. This is architected by designing the software to move as much logic as possible into a shared class library which can be deployed across all three platforms as well as any nonmobile applications that could use the code. Mobile specific content is then moved into separate thin classes, greatly reducing the amount of platform specific code. The UI is still designed separately for each platform giving the overall result of a true mobile specific application while backing onto a common code base. This achieves our goals of reusing code between platforms, reducing development and maintenance costs and giving access to three primary mobile platforms. Where an application is needed to run on multiple handsets even when there s no connection to the Internet, this approach provides a very cost effective, attractive and engineered approach to mobile application development. New features can often be implemented once in the shared code base and picked up across all applications. Shared code base through application WebView approach Every mobile platform OS supports an embedded webview control for viewing web content from within an application, making it possible to develop applications that can be shared between all mobile devices including non-smartphone devices. By developing skeleton applications for each platform containing an embedded WebView control set to run full screen, the UI and much of the logic can exist on a company server with additional logic running in Javascript on the handset. To add new functionality or content, this approach makes it possible to make updates to a shared web server with all applications automatically picking up the changes as they run. Of course, moving processing to remote servers adds a dependency on web connectivity and a fast connection from the mobile device. If a reliable connection exists then then approach can be a very fast way to develop and maintain mobile applications across different mobile platforms. Software such as iwebkit and BlackBerry HTML UI allows web interfaces to be styled to match the phone s native applications while software such as jqtouch and Sencha

Touch provide dynamic JQuery effects for such mobile applications. A number of frameworks now exist to extend this concept by providing additional processing, storage, synchronization and presentation features on the device using web technologies including HTML, CSS and Javascript while simplifying access to local mobile data and hardware features. The result can often be greatly reduced development and maintenance costs since future updates often don t require any modification to the applications themselves. Rhodes is a cross-platform smartphone application framework from Rhomboile (www.rhomobile.com) which supports iphone, RIM, Android, Windows Mobile and Symbian. Mobile software is written in HTML, CSS, Javascript and Ruby and allows a single application and interface to be developed and deployed across multiple platforms. Rhodes utilizes and MVC style pattern similar to Ruby on Rails and includes a local Object Relational Manager (ORM) called Rhom for local data storage as well as RhoSync for synchronizing data with remote servers including remote web services. PhoneGap (http://phonegap.com) is an open source framework which supports iphone, Android, BlackBerry, Palm webos and Symbian WRT (Nokia). Software is written in HTML, CSS and Javascript and is ideally suited to expert Javascript developers. There is no direct support for synchronizing with remote servers or for local data storage so data storage is restricted to support provided by Webkit s Web Storage feautes. PhoneGap also takes advantage of HTML5 to provide rich interfaces but requires a high level of Javascript knowledge to work with effectively. Titanium Mobile (www.appcelerator.com) allows applications to be developed in Javascript and subsequently compiled down to native code and components using the toolkits compiler. However, this approach does rely on a reasonable Internet connection to pull pages from the server and does not make optimized use of mobile hardware. For applications that depend on live data such as blogging, forum, newsfeed, live news and other such apps then this becomes a very attractive option reaching the largest audience with the smallest overhead. Care also needs to be taken to ensure the platforms usage policies are not breached by this approach. What content can be displayed in a web view can often be regulated in a platforms terms and conditions and so it is vital to check on any content regulations for a specific platform. Extending all three approaches to include non-mobile applications Regardless of which mobile development approach is adopted, it is often useful to integrate an application with other remote services across the Internet. One example might be to share web content between a company website and company mobile applications.

Another example might be feeding live Microsoft Dynamics or SharePoint content out to and back into company mobile devices. Yet another example might be authenticating users through secure web services or using tracking data to locate salesmen in the field. The diagram below demonstrates one configuration which uses a MonoTouch and MonoDroid solution backed onto a shared code base which manages a secure connection to an Azure cloud service which in turn manages communication with a company Intranet and/or Extranet. Conclusions While developing individual applications for each platform is still a viable approach to application development, the increased range of platforms is making cross platform frameworks increasingly important to reduce development and maintenance costs while maximizing an applications target audience. Quicker Development Time Sharing code across multiple platforms allows core functionality to be written once rather than re-written for each platform. This not only leads to a more rapid development process but also greatly reduces the development time for future applications which can reuse the shared libraries. Improved maintainability The software development lifecycle rarely ends when software is deployed, with new features and extensions often being required to be developed over time. By applying one of our cross platform development approaches, new core features can be written and picked up across all platforms. Of course cloud services could be replaced by WCF services running on a Windows Server box or virtual instance or any other web service, the cloud database could be a SQL Server or other database and the Intranet/Extranet link could be any third party system of use to the mobile application. If using the MonoTouch or MonoDroid approach to development, code developed can be used across non-mobile MS platforms whether for the web, desktop or even embedded platforms. It is also anticipated that the Mono family will be extended beyond ios and Android to include other platforms, further increasing the shared code base opportunities. Where code is shared, testing schedules become shorter, both for any initial development and for future applications. Since MonoTouch uses.net then it becomes possible to integrate unit testing and run Test Driven Development over the whole system.

Benefitting from the enterprise level.net platform through Mono Core to this approach is the.net platform, an enterprise level framework installed into Windows and used across industry from embedded systems to banking transaction software..net allows software to be written in tens of languages and used across tens of platforms and is trusted in every industry. Grow with your business needs Our shared code base approaches provide a highly scalable and flexible approach to development, allowing a software family to be developed gradually as the needs of a business grows. A single mobile device application or a single web application could be developed to begin with and launched as a highly effective product. At a later date, code developed for the initial application and held within the core library can be re-used in other products, reducing development time and providing a level of consistency and trust in the code which would already be in daily use. While some development companies may specialize in a single platform, only we are able to provide a true cross platform experience from enterprise server side services and secure interaction with a corporate network through to hand held devices such as Android, iphone/ipad, Windows Mobile and BlackBerry.