Cross pla)orm app development using open source so4ware. Peter Dickten / Marcus Ross dcs-fuerth / zahlenhelfer

Similar documents
Mobile Development June 2015, TEIATH, Greece

Mobile Technologies. Types of Apps

Introduc6on to Android / ios Apps Programming

MOBILE DEVELOPMENT OPTIONS PRATIK PATEL CTO TripLingo

Mobile Programming. Two Scenarios Web sites, like Tuubi where you read/write/download/ upload material

Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Cross-Platform Mobile Application Development

Review of Mobile Web Application Frameworks

Automated UI tests for Mobile Apps. Sedina Oruc

Exploring Cross-platform Tools For Mobile Development: Lessons Learned. mlearning: Tips and Techniques for Development and Implementation

WebSphere Puts Business In Motion. Put People In Motion With Mobile Apps

Min-Yuh Day, Ph.D. Assistant Professor Department of Informa9on Management Tamkang University

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Designing for the Mobile Web Lesson 4: Native Apps

Oracle Utilities Customer Self Service

HTML5 Mobile App Development

Enterprise Architecture Building a Mobile Vision. David Hunt DCH Technology Services Gill Windall University of Greenwich

VS005 - Cordova vs NativeScript

Kony MobileFabric. Release Notes. On-Premises. Release 6.5. Document Relevance and Accuracy

Mobile Computing Meets Research Data

Multi-platform Mobile App. Development with Apache Cordova

PhoneGap. Andrew Lunny, Adobe. Monday, 23 July, 12

Web- Technologies for the desktop with chameria. Daniel Bremer- Tonn akquinet AG

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

HTML5 for mobile development.

CROSS PLATFORM APPLICATION DEVELOPMENT WITH COMPATIBLE GUI SOLUTIONS

Mobile Cross Platform Development. Igor Markov

Case study on PhoneGap / Apache Cordova

Mobile Application Strategy

CSS JavaScript General Implementation Preloading Preloading in the Design Thinking Process Preloading in the Summary View Android UI Design Design

Cross Platform Development (Hybrid vs Native)

Understanding what makes RhoMobile tick

PhoneGap Cross the Gap from HTML5 to Mobile OSCON Paul Beusterien July 19, 2012

Introduction to Worklight Integration IBM Corporation

Copyright

Connect and Transform Your Digital Business with IBM

WebStore9 Services. Web Development Services

Software Architecture Documentation for the JRC MYGEOSS app for Invasive Species project

Preliminary ACTL-SLOW Design in the ACS and OPC-UA context. G. Tos? (19/04/2016)

MOBILE PUBLISHING - TECHNOLOGY OPTIONS AND PRICING

By Stephen Cavell, Kerry Ellwanger, and Jack Livingston

Determining the Best Approach

ITP 140 Mobile Technologies. Build vs. Buy

Supported Devices, OS, and Browsers

Annals of the University of North Carolina Wilmington Master of Science in Computer Science and Information Systems.

KonaKart Shopping Widgets. 3rd January DS Data Systems (UK) Ltd., 9 Little Meadow Loughton, Milton Keynes Bucks MK5 8EH UK

A mobile campus project

Mobile Application Development Concept

Oracle Utilities Customer Self Service

Mobile Development with Visual Studio 2015

Building Native Apps with ArcGIS API for JavaScript Using PhoneGap and jquery. Andy Gup, Lloyd Heberlie

Mobile Application Development

Mobile Applications 2013/2014

Classification and Selection of Cross-Platform Tools. Michiel Willocx 17/06/2015

Developing Applications for ios

The Inflection Point in the Application Ecosystem

Present and Future of the RhoMobile platform. Migrating legacy applications, Node.js on mobile devices right now and more

State of jquery Fall John Resig

Native Mobile Apps in JavaScript

First Results of the Performance Analysis

What Is React Native?

RAD, Rules, and Compatibility: What's Coming in Kuali Rice 2.0

Building and packaging mobile apps in Dreamweaver CC

Managed So*ware Installa1on with Munki

Introduction to Kony Fabric

An overview of mobile and embedded platforms

Mobile Web Appplications Development with HTML5

2015 NALIT Professional Development Seminar September 30, Tools for Mobile App Development

ANDROID APPS (NOW WITH JELLY BEANS!) Jordan Jozwiak November 11, 2012

Force.com Mobile Web with Sencha Touch

Android & iphone. A Comparison. Stefan Tramm JUGS, Jahresevent

Beginner s Guide to Cordova and Mobile Application Development

Getting started with Convertigo Mobilizer

CROSS PLATFORM MOBILE APPLICATION FOR TRAINING AND PLACEMENT USING IONIC FRAMEWORK

Programming The Mobile Web Ebooks Free

Software Platforms. Quiz with Explainations. Hans-Petter Halvorsen, M.Sc.

Build Native-like Experiences in HTML5

Crea?ng Cloud Apps with Oracle Applica?on Builder Cloud Service

How to Evaluate a Next Generation Mobile Platform

Sencha Paris Meetup Switching from Titanium to Sencha Touch: a real life example

Installation Guide - Mac

We are IntechOpen, the world s leading publisher of Open Access books Built by scientists, for scientists. International authors and editors

ArcGIS Runtime: Building Cross-Platform Apps. Rex Hansen Mark Baird Michael Tims Morten Nielsen

Kaseya Fundamentals Workshop DAY FOUR. Developed by Kaseya University. Powered by IT Scholars

Kony MobileFabric Engagement Services QuickStart Guide

Unifying the Flash and HTML5 Video Experience

Strategies for Running Oracle Forms from Mobile Devices and Tablets.

How to Choose the Right Architecture For Your Mobile Application

The C-Suite Guide to Mobile Technologies for mhealth Development. Medical Web ExpertsTM

Migrating traditional Java EE applications to mobile

Mobile Internet Devices and the Cloud

CMPE 131 Software Engineering. Ruby on Rails Introduction

ITU-FAO-DOA-TRCSL Training on Innovation and application Development for e-agriculture. ICT enabled mobile applications

Introduction to Mobile Application and Development

Hybrid mobile apps with Ionic and AngularJS. Jeremy Wilken. FOREWORD BY Adam Bradley MANNING

Installation Guide - Windows

Luckily, our enterprise had most of the back-end (services, middleware, business logic) already.

Oracle VM Workshop Applica>on Driven Virtualiza>on

Beginning PhoneGap. Mobile Web Framework for JavaScript and HTML5. Rohit Ghatol Yogesh Patel

Ajax or AJAX? The acronym AJAX has changed to the term Ajax, which does not represent specific technologies

Transcription:

Cross pla)orm app development using open source so4ware Peter Dickten / Marcus Ross dcs-fuerth / zahlenhelfer

Cross pla)orm app development Support for mul3ple pla)orms is essen3al for both enterprise and end users Relevant pla)orms: Apple ios Google Android RIM Blackberry MicrosoC Windows Phone 7 (?)

4 strategies to address mul3ple pla)orms Na3ve development for every pla)orm flexibility => M Cross- pla)orm tools WebView wrappers MEAPs (mobile enterprise applica3on pla)orm) Speed of develop- ment

Strategy 1: Na3ve Development good (+) maximum flexibility (+) mature development tools (e.g. Xcode) (+) apps have the pla)orm specific look & feel

Strategy 1: Na3ve Development bad (- ) which pla)orms should I support? (- ) high cost for the development of mul3ple clients (no code reuse) (- ) very few developers with knowledge of more than one pla)orm are available (- ) adding one more pla)orm is costly

Strategy 1: Na3ve Development summary / conclusion deep pockets and lots of development 3me needed (even if client development is done in parallel => server side could be a development bo[leneck) => no solu3on for our customers (market research and event management) => P

Strategy 2: Cross- pla)orm tools What s that? Development of a single source code in one language (e.g. JavaScript) Cross compiling/transla3on/embedding to several na3ve source codes (e.g. Obj.C/Java) Usage of the na3ve controls on every pla)orm Appcelerator Titanium, Rhomobile Rhodes

Strategy 2: Cross- pla)orm tools good (+) very flexible (+) one source code (with some duplica3on) (+) one language and one toolset for all pla)orms (+) good look & feel

Strategy 2: Cross- pla)orm tools bad (- ) case dis3nc3on needed for nice pla)orm specific user interfaces (many resolu3ons/ aspect ra3os) (- ) tool limits the number of supported pla)orms (- ) performance lower than purely na3ve apps (not a good choice for 3d shooter games)

Strategy 2: Cross- pla)orm tools summary / conclusion If the pla)orms supported by the tool match the desired pla)orms and the apps consist of more that graphics this could be a solu3on. Our customers wanted business apps for ios and Android => good match. => M

Strategy 3: Webview wrappers What s that? Development of a pure web applica3on using HTML and JavaScript Frameworks could use styling to match the na3ve controls Tools like Cordova encapsulate the result in a smartphone app running the web app in the browser of the smartphone example: jquery mobile (GUI) / Cordova (Pkg)

Strategy 3: Webview wrappers good (+) pre[y flexible (+) lots of pla)orms supported (+) one source code (+) one language and one toolset for all pla)orms

Strategy 3: Webview wrappers bad (- ) the result doesn t always feel right on all pla)orms (- ) slower performance, especially with large datasets (- ) we found very few examples of complex business applica3ons

Strategy 3: Webview wrappers summary / conclusion Looks like a good solu3on if you need to support many pla)orms and the dataset is limited and the users are not too strict about adherence to the pla)orm standards. Support of Symbian, older Blackberry and WP7 makes this a good alterna3ve. => P

What s that? Strategy 4: MEAPs Mobile enterprise applica3on pla)orm Server side infrastructure delivers app logic and data to a generic client app Mostly for enterprise internal apps (e.g. support app for sales people) Server side components have interface to enterprise socware (SAP, Siebel, RDBMS ) Sybase Unwired Pla)orm, Kony, Verivo, Syclo

Strategy 4: MEAPs good (+) very fast app development configura3on (+) lots of pla)orms supported (+) works nicely with enterprise socware

Strategy 4: MEAPs bad (- ) very limited func3onality (- ) server side infrastructure very complex and expensive (- ) client app user interfaces are ocen disgus3ng (- ) no solu3on for end users (- ) not open source

Strategy 4: MEAPs summary / conclusion If you have extremely deep pockets and want to push data from your exis3ng SAP/Siebel/ infrastructure to 10.000 sales people around the world, this could be a solu3on. No match for our use cases.

Summary of solu3ons Na3ve development for every pla)orm Cross- pla4orm tools WebView wrappers MEAPs (mobile enterprise applica3on pla)orm) => M

The evalua3on project Build a sample app connec3ng to a server side applica3on Reading and crea3ng data GPS access Op3onal: push no3fica3on, ads ( )

We are Germans. This is our chancellor And yes we drink a lot of alcohol. Not only beer, but also cocktails.

Idea: Mar3niApp ( yelp for mar3nis ) User can create reviews of cocktail bars serving mar3ni cocktails User can search for reviews based on their loca3on Lots of ideas for revenue genera3on Happy hour catalogue Coupons Ability to buy someone a cocktail through the app Dear VCs: Please contact us ;- ) => M

Components of the project server side: (Ruby on Rails- based) server implemen3ng API to read and write reviews client side: Smartphone app One created with Appcelerator Titanium Another created with jquery Mobile / Apache Cordova

Apache Cordova overview Development in pure HTML / JavaScript Target pla)orms: ios (iphone, ipad, ipod touch,...) Android Blackberry 5/6/7 webos Symbian Windows Phone 7

Apache Cordova: concept Write once, compile every3me One source (HTML5/CSS3/JS) Package to na3ve through a WebView Separate tool chains for each pla)orm (Na3ve SDK of pla)orm)

Apache Cordova API The Cordova SDK delivers a JavaScriptAPI to access smartphone features Accelerometer Camera Capture Compass Connec3on Contacts Device Events File Geoloca3on Media No3fica3on Storage +Plugins

Apache Cordova 101 // load Cordova <script src= cordova.js"></script>! // wait for Cordova to init document.addeventlistener("devicer eady", ondeviceready, false);!

Apache Cordova example function ondeviceready() {!!alert( Name: + device.name);!alert( Platform: +device.platform);! }!

jquerymobile: concept - declara3ve UI (HTML5 data- a[r.) - target to touch devices - progressive enhancement (A, B and C grade Browsers)

jquerymobile 101 // load jqm <link rel="stylesheet href= jquery.mobile-1.0.1.min.css" />!! <script src= jquery-1.6.4.min.js">! </script>!! <script src= jquery.mobile-1.0.1.min.js">! </script>!

jquerymobile example // show a List <div data- role="page" id= home"> <div data- role="content"> <ul> <li>sessions</li> <li>speaker</li> </ul> </div> </div> => P

Demo 3me!

Appcelerator Titanium overview Development in pure JavaScript (*), compila3on/ embedding to/in na3ve languages (ObjC/Java) Target pla)orms: ios (iphone, ipad, ipod touch,...) Android Mobile Web (HTML5) beta: Blackberry (*) you can write/use pla)orm- specific addons in ObjC/Java

Appcelerator Titanium: concept Write once, run adapt everywhere One source code, but case dis3nc3ons for UI: If android... then... else... Rela3ve/percentage posi3oning JSS (similar to CSS) for each pla)orm/resolu3on Separate image folders for each pla)orm/ resolu3on

Appcelerator Titanium API The appcelerator SDK delivers a javascript API to access smartphone features like Accelerometer, Analy.cs, No.fica.ons, Contacts, Database, Facebook, Filesystem, Geoloca.on, Gestures, GUI, Locales, Maps, Media, Networking, SeCngs, XML, Yahoo- APIs (...) Some APIs are pla)orm specific APIs are appstore- safe.

Titanium UI example UI is build completely in code: No HTML/GUI designer (*) var btnlogin = Titanium.UI.createBu[on({ 3tle : 'login', top : 160, lec : 10, right : 10, height : 40}); btnlogin.addeventlistener('click', func3on() { } // do something (*) but there s at least one 3rd party tool

Titanium API example var db= Titanium.Database.open( mar3nidb'); DML- Kommando: db.execute( 'INSERT INTO cocktails(beverage) VALUES(?)', 'dry mar3ni');

Demo 3me!

Some extras: => M+P You can extend applica3ons by na3ve modules (wri[en in ObjC / Java) a very ac3ve marketplace for 3 rd - party- extensions ( modules ) Commercial support/training/cer3fica3on is provided by Appcelerator Appcelerator offers cloud- based services (e.g. push no3fica3ons) as op3onal services Codestrong: Conference in October in SF

Final Winner? Cordova+jQueryMobile Freedom of HTML5 many supported pla)orms (6) JavaScript knowledge not required Titanium Mobile fast & na3ve UI of the target pla)orm more APIs commercial support (SLA)

Q&A

Thank you! Peter Dickten (@Pe_D) and Marcus Ross (@zahlenhelfer)