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

Similar documents
Cross-Platform Tools

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

Mobile Application Development. Adopt Based On Fit

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

HYBRID APPLICATION DEVELOPMENT IN PHONEGAP USING UI TOOLKITS

CROSS PLATFORM DEVELOPMENT The HTML5 Way

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

SYST35300 Hybrid Mobile Application Development

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

Developing multidevice-apps using Apache Cordova and HTML5. Guadalajara Java User Group Guillermo Muñoz Java Developer

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

How To Develop A Mobile App With Phonegap

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

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

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

Developing and deploying mobile apps

True Web Application Management: Fixing the Gaps in EMM Solutions

The Decaffeinated Robot

Retool your HTML/JavaScript to go Mobile

Mobile Application Development

A Guide to Mobile App Development Platforms

Building native mobile apps for Digital Factory

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

Enterprise Mobile Application Development: Native or Hybrid?

Rhomobile cross-platfrom

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

Choosing a Mobile Application Development Approach

Porting Existing PhoneGap Apps to Tizen OS - Development Story

UX & Cross-Platform Mobile Application Development Frameworks

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

CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application

research: technical implemenation

CMS, CRM, shopping carts, Web applications

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

Whitepaper. Trans. for Mobile

Mobile Enterprise Application Development - a Cross-Platform Framework

Building cross-platform Modern Apps: the Design perspective. Amit Bahree, Senior Director,

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

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

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

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

QML and JavaScript for Native App Development

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

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

WHITE PAPER on Flex to HTML5 The Migration Challenge. April 2014

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

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

Running Android Applications on BlackBerry 10 developer.blackberry.com/android

CASE STUDY. Enhancing the Patient Experience Harris Mobile Patient Engagement Platform

DEVELOPING NFC APPS for BLACKBERRY

Considerations Regarding the Cross-Platform Mobile Application Development Process

Cross-Platform Phone Apps & Sites with jquery Mobile

HTML5: Separating Fact and Fiction. #wipjam

Cross-Platform Mobile Application Development

RIA DEVELOPMENT OPTIONS - AIR VS. SILVERLIGHT

Cross-Platform Game Development Best practices learned from Marmalade, Unreal, Unity, etc.

... Introduction Acknowledgments... 19

HTML5, The Future of App Development

Introduction to IBM Worklight Mobile Platform

A Study on Android development kits and the Phone Gap Framework

Dave Haseman, Ross. Hightower. Mobile Development for SAP* ^>. Galileo Press. Bonn. Boston

Native, Hybrid or Mobile Web Application Development

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

Comparison of Cross-Platform Mobile Development Tools

Introduction to Oracle Mobile Application Framework Raghu Srinivasan, Director Development Mobile and Cloud Development Tools Oracle

ipad, a revolutionary device - Apple

CASE STUDY. Varian ARIA Offering oncologists better tools to help patients

Mobile Applications Developer. MAIN PURPOSE OF JOB To lead the design, development and maintenance of Android, iphone and ipad applications.

An Introduction to Android Application Development. Serdar Akın, Haluk Tüfekçi

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

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

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

Developing Cross-platform Mobile and Web Apps

Trends in HTML5. Matt Spencer UI & Browser Marketing Manager

Integrating Mobile into Your Cross- Platform Strategy with Qt

Armedia. Drupal and PhoneGap Building Mobile Apps

A Way Out of the Mobile App Development Conundrum

Understanding Evolution's Architecture A Technical Overview

Web 2.0 Technology Overview. Lecture 8 GSL Peru 2014

Cross-Platform Development

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

Keywords Online Aptitude Test, Android, IOS, Cross Platform mobile application Development.

Transcription:

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

Outline Significance of multi-platform support Recommend application architecture Web-based application frameworks Game development frameworks General multi-platform frameworks Cross-compiled languages

Definition: multi-platform application A multi-platform application is a software product a version of which exists for more than 1 platform. Thus, such an application would provide an executable for each supported platform. Multi-platform application does not imply a single code base, cross-platform does

Multi-platform significance More supported platforms imply an increase in the user base, i.e. higher revenue Improved user experience Longer application lifecycle Support of future platforms A mobile application should be efficiently portable to additional platforms.

Mobile applications Main categories Games e.g. social, shooters, racers, puzzles General e.g. shopping, business, communication Many mobile apps serve as front-ends Stand-alone applications vs. web pages

Mobile applications Main categories Games e.g. social, shooters, racers, puzzles General e.g. shopping, business, communication Many mobile apps serve as front-ends Characterized by simplicity and usability Critical factor is the first time usability

Mobile applications Main categories Games e.g. social, shooters, racers, puzzles General e.g. shopping, business, communication Many mobile apps serve as front-ends Characterized by simplicity and usability Critical factor is the first time usability Characterized by specific usage patterns

Recommended architecture Graphics libraries Input libraries Sound libraries Network libraries. Operating system Application code (should never change) Platform-agnostic interfaces Platform-specific libraries, driver (vary per platform)

Recommended architecture (contd.) [action key] [hit sound] [attack] [attack sound] [reduce hp] [update sprite] Application code (should never change) Platform-agnostic interfaces Platform-specific libraries, driver (vary per platform)

Multiple code-bases problems The application is bound to 1 platform Porting requires a reimplementation Porting requires structural changes Porting might require a complete re-design Porting requires an expert for the target platform Maintenance becomes a significant burden You create different applications and your users will notice! Application code (written in Java/ Obj-C / Lua etc.)

Common language Some of the available choices C / C++ supported everywhere Lua supported everywhere JavaScript supported practically everywhere Eqela, Haxe supported everywhere Your decision should be based on the tool support and the performance requirements

Platform-agnostic interfaces Design custom interfaces and provide driver implementations Use existing frameworks Often require a specific programming language Often require a specific environment In general hard to extend with platform-specific code

Multi-platform frameworks Web-based application frameworks PhoneGap, MoSync, iui, QuickConnectFamily Game development frameworks Lua-based, Haxe / NME, Marmalade, Unity 3D General AIR, Appcelerator, DragonRAD, TotalCross

Web-based application frameworks The application is a standard web page accessed locally by a browser component HTML / CSS / JS webpage WebView UIWebView BrowserField

Web-based application frameworks (contd.) Advantages Require little to none platform-specific knowledge Provide clean separation of logic and visuals Allow the usage of all web development tools Allow the usage of all JavaScript libraries Provide a flexible extension mechanism Allow easy debugging

Web-based application frameworks (contd.) Disadvantages Perform slightly worse than native applications Often have longer loading times Cannot easily provide the native look & feel These frameworks allow for very rapid application development, because of the mature environment.

PhoneGap Developed by Adobe Many plugins available Facebook connector Payment providers Camera utilities and barcode scanners Dedicated developer team and community Many successful commercial applications

Mobile look & feel libraries The native look and feel is a critical aspect of usability, but it s hard to implement The alternative is to employ mobile look & feel Sencha Touch Kendo UI JQTouch JQuery Mobile

Mobile look & feel libraries (contd.) JQuery Mobile Support Customization Performance Development Cycle JQTouch Sencha Touch iui Kendo UI Source: own experience & http://www.golen.net/blog/choosing-a-mobile-web-framework

Game development frameworks Lua-based frameworks The application is coded in Lua which run on all mobile platforms The graphics back-end is OpenGL ES Most frameworks are hard to extend Most frameworks provide only simple APIs and just few libraries Examples: Corona SDK, MOAI, Gideros Mobile

Game development frameworks (contd.) Haxe / NME Provides a fully native implementation of the ActionScript API, the heart of Flash Provides a fully automated build process Supports a vast number of libraries and tools Fully free, open source and community-driven Dedicated development team and community Many successful commercial applications

Haxe / NME build process (Android) Stage I (translate to C++) (compile) NME-based Haxe code C++ code Native library Stage II Generate a boilerplate Java project referencing the generated application code over JNI Haxe APK package NDK Android SDK

Game development frameworks (contd.) Other choices Marmalade SDK fully native; integration with other technologies Unity 3D native; tool chain and a game engine; well suited for rapid development of 3D games LibGDX game development middleware Monkey cross-compiled language with a small game development API; easy for beginners, but unsuitable for large-scale projects

General multi-platform frameworks Adobe Integrated Runtime (AIR) wrapped Flash player with extended API Appcelerator JavaScript interpreter and a large API to interact with native components DragonRAD tool chain for building enterprise database-driven applications TotalCross a virtual machine along with a software development SDK

Adobe Integrated Runtime (AIR) Portable Flash player with extended AS3 API allowing interaction with the OS The performance is nearly native due to JIT Permits the usage of all Flash technologies No native look & feel, but quite well suited for multimedia applications and games

Cross-compiled languages Support semantically equivalent syntactical conversion to a set of other languages Source code in a crosscompiled language Requirements Adequate tool support & automation Code quality & performance Easy debugging & testability Easy usage of existing software Obj- C Java C# JS

Haxe an introduction Created by Nicolas Canasse in 2005 Fully open source; ECMA-style syntax Supports C++, PHP, JS, AS3, C#, Java and Neko Multi-paradigm functional and OO Good documentation and many tutorials Tool-supported: FlashDevelop, FDT, Sublime

Haxe library environment Haxe manages the most of its libraries under a common repository haxelib haxelib install flixel haxelib install awe6 haxelib remove hsl-1 haxelib upgrade It already features everything you ll need Game and web development Network communications Algorithms and data structures Multimedia libraries Data format support

Haxe using existing software Provides easy mechanisms to interact with existing software for the target language Externs describe the used library types extern class CustomerAccountManager { public function add(customeraccount acc); public function delete(customeraccount acc); public function issuecreditcard( CustomerAccount acc, CreditCardData dat ); }

Haxe using existing software Provides easy mechanisms to interact with existing software for the target language Externs describe the types of the used library Embedded code use code of the target language if (dlg!= null) { untyped js ("dhtmlx.modalbox.hide(dlg);"); untyped js ("navigator.app.exitapp();"); }

Out of slides Thanks! See y all next year!