Cross Platform Mobile Applications

Slides:



Advertisements
Similar presentations
Cross Platform UI testing using Sikuli
Advertisements

Developing downloadable mobile apps using HTML5 and PhoneGap Apache Callback Ron Perry, CTO, Worklight Inc.
Cross Platform Mobile Applications
©2011 Improving Enterprises, Inc. Breaking down the Epic User Story.
Mobile App Development Using: Presented by Tyler Richey Images from
So. . . According to the Global Developer Survey ’13 conducted by Telerik, over 5000 developers said that they developed apps using HTML5 in 2012 and 90%
Mobile Development: HTML5 Vs Native By Rohit Ghatol Director of Engineering,Synerzip Author- Beginning PhoneGap 1.
DESIGNING FOR MOBILE NIKHIL J DESHPANDE. Nikhil Deshpande Digital Strategy Director, GeorgiaGov
Cross Platform Mobile application development HTML5 and JavaScript Chris Connor.
USING ANGULARJS WITH SITEFINITY
Platform Independent Frameworks Contents Mobile App Developer’s challenges Platform Independent solutions – Mobile Web Based Apps – Cross.
Cross Platform Mobile Applications By Rohit Ghatol Contact me –
Native vs hybrid vs web mobile Application
The PhoneGap History Doncho Minkov Telerik Academy academy.telerik.com Technical Trainer
Is Agile Any Better? Damon Poole 2009 Scrum and Kanban Like Chocolate and Peanut Butter Damon Poole – CTO, AccuRev.
Intelligent Tutoring System Mobile Communication Team Drew Boatwright Nakul Dureja Richard Liou.
Social Media Apps Programming Min-Yuh Day, Ph.D. Assistant Professor Department of Information Management Tamkang University
Mobile Web Applications
Responsive Web Design Nikhil J Deshpande Webinar – May 14, 2014 Sponsored by.
Lightning Talk Fred Rodriguez Nguyen Do CPSC 473 May 6, 2012.
Title slide to be used at the start of a module. Developing Mobile Apps Roland Guijt
Analysis in Agile: It’s More Than Just User Stories Kent Webinar Series 2015.
Data Virtualization & Information As A Service (IaaS) By Anil Allewar Senior Solutions Architect - Synerzip 1.
Introduction CIS 136 Building Mobile Apps 1. What is a mobile app? 2  Computer program  Designed for small devices  Smartphones  Tablets  Other handhelds.
Todd Little Sr. Development Manager Landmark Graphics Context Driven Agile Leadership One Size Doesn’t Fit All.
Java Mobile Apps with GWT & PhoneGap Josh Marinacci, webOS Developer Advocate.
Valtivity Panning for User Story Gold.
©2011 Improving Enterprises, Inc. Epics and Agile Planning.
Mobile web Sebastian Lopienski IT Technical Forum 29 June 2012.
Social Media Apps Programming Min-Yuh Day, Ph.D. Assistant Professor Department of Information Management Tamkang University
Using Agile Approach with Fixed Budget Projects April 15, 2009.
Trunica Inc. 500 East Kennedy Blvd #300 Tampa, FL Cross Platform Mobile Apps With Cordova and Visual Studio 2015 © Copyright 2015.
The way of hybrid mobile development Hybrid Mobile Applications Telerik Software Academy
© 2015 Webinar Series 2015 what is the role of an architect in an agile organization? 1 The Agile Architect / November 2015.
1 Copyright © 2015, Drilling Info, Inc. All right reserved. All brand names and trademarks are the properties of their respective companies. Webinar Series.
Created by Presented by James Schultz Titanium. What is Titanium? An open, extensible development environment for creating beautiful native apps across.
 Can access all API’s made available by OS vendor.  SDK’s are platform-specific.  Each mobile OS comes with its own unique tools and GUI toolkit.
Mobile Application Development Kevin Payne & Andi Saputra JWH Group.
If you are thinking about developing mobile application for your customer, this is an important aspect to consider the platform.
Best 5 Mobile App Development Tools for Developer's to think beyond the Limitation.
INTRODUCING HYBRID APP KAU with MICT PARK IT COMPANIES Supported by KOICA
APP DESIGN AND DEVELOPMENT WITH THE IONIC FRAMEWORK Chuck Leone
#SummitNow Alfresco Mobile SDKs in Action 06 November, 2013 Mike Hatfield Lead Engineer Mobile Apps, Alfresco.
Phonegap API & Phonegap Bridge CIS 136 Building Mobile Apps 1.
Build Hybrid Mobile Apps with Ionic, Angular, & Cordova Brian
PhoneGap. web-based mobile development framework, based on the open-source Cordova project. use standard web technologies such as HTML5, CSS3, and JavaScript.
Mary Ganesan and Lora Strother Campus Tours Using a Mobile Device.
Ionic Mobile App Development Services
跨平台 Hybrid App 開發簡介 - 使用 Visual Studio Tool for Apache Cordova + HTML/JavaScript 陳葵懋 (Ian)
The Basics of Android App Development Sankarshan Mridha Satadal Sengupta.
Mobile App Development Using:
Introduction to Mobile Computing
A little more App Inventor and Mind the GAP!
ET-570 Smart Phone Apps.
Mobile App Development
Android.
Apache Cordova Overview
Automatic Mobile App Generation
Survey Paper & Manuscript
Web App vs Mobile App.
Week 01 Comp 7780 – Class Overview.
Hybrid Mobile Applications
Mobile App Development
ideas to mobile apps in record time,
12/5/2018 HCI SNS College of Engineering Department of Computer Science and Engineering Mobile Application Development Presented by S.Yamuna AP/CSE.
One Size Doesn’t Fit All
Office 365 Development.
Atrium Technology Solutions
CSC 581: Mobile App Development
Introduction to Mobile Apps
Presentation transcript:

Cross Platform Mobile Applications By Rohit Ghatol Contact me – rohit.ghatol@synerzip.com rohitsghatol@gmail.com

Introduction Rohit Ghatol Project Manager @ Synerzip Associate Architect @ QuickOffice Inc GTUG Manager Certified Scrum Master Corporate Trainer (Agile and Technical) Was part of OpenSocial at Google

Topics Overview Understanding Mobile Apps Cross Platform Mobile App Development Pure HTML/JavaScript – PhoneGap Interpreted JavaScript – Titanium Native Mobile App Development Hybrid Mobile App Development Comparison between PhoneGap Vs Titanium Conclusion Q & A

Overview The process of developing Applications for various mobile platform using common source code with little or no change to the common source. This presentation focuses on Comparing two frameworks each taking a different approach to solve the above problem. We will Compare PhoneGap Vs Titanium .

Understanding Mobile Apps Sumber dari : http://synerzip.com/wp-content/uploads/2013/09/downloads-Cross-Platform-Mobile-Applications.ppt.

Reaching Mobile Users

1. Mobile Features Mostly Feature Sub Set Complete Feature Set

2. Tablet Features Almost Complete Feature Set Complete Feature Set

3. User Interaction Touch based Accelerometer Traditional Compass

e.g Layar Application

4. Location aware Can be Location Aware but approximate Location Aware and highly accurate

5. Sensors Handy Camera and Voice Recording Upcoming NFC (Near Field Communication) turning phone into Credit Card, Access Card, Business Card Exchanger

e.g Shopping Applications Scan a product’s barcode to know if it has the lowest price. If not, then navigate to a store which has the lowest price

6. Push Notifications Push Notification Notifying the User proactively

Challenges in building Mobile Applications

1. OS Fragmentation Windows 7 Fragmentation

2. Multiple Teams/Product Windows 7 Multiple Teams/Products

3. Uniform User Experience Windows 7 Uniform User Experience

4. Feature Fragmentation

Types of Mobile App Dev Native Mobile Apps Cross Platform Mobile Apps Hybrid partly Native partly Cross Platform

Native Mobile Apps High Performance Apps When To When Not To High Performance Apps Heavy on OS and Device Features Complex N/W comm. Canvas based Apps Only Few Platforms Performance is not the main criteria More or less Replicates Web Apps with few device feature Standard Restful Widget based apps Many Platforms

Cross Platform Mobile Apps When To When Not To Performance is not the main criteria More or less Replicates Web Apps with few device feature Standard Restful Widget based apps Many Platforms High Performance Apps Heavy on OS and Device Features Complex N/W comm. Canvas based Apps Only Few Platforms

Cross Platform Mobile Apps When To When Not To Time to market is critical Saving Cost is critical

Hybrid Mobile Apps Fairly Simple UI Complex Backend When To Why To Fairly Simple UI Complex Backend Quite few platforms E.g ShareFile Recommended way - PhoneGap Plugin Some parts of app are common Rest parts are different Use Cross Platform to develop common part Use Native to develop the weight lifting parts

Cross Platform Mobile App Development

Cross Platform Strategies Source Code Common Platform e.g WebKit Mapping to Native PhoneGap Titanium Mobile

Common Platform Approach

Modern Browsers All new Smart Phones come with modern browsers, which have better support for HTML5/CSS3 specs Mobile OS Browser Android Webkit based iPhone BlackBerry 6.0 + Window Phone 7 IE 7 based * WebOS Nokia

WebViews All of these smart phones supports using these modern browsers as embedded views (aka WebViews)

JavaScript to native and back All these browser engine (most common being webkit) support Javascript to talk to native code and back Native Code (Java/C++/ObjC) HTML/Javascript JSON packets

Hybrid Applications HTML/Javascript application loads Google Maps and talks to the native code to gain access to GPS location Native Code (Java/C++/ObjC) HTML/Javascript GPS Location

Possibilities Limitless Possibilities Expose Camera, Accelerometer, GPS, any of the phones sensors to javascript Instead of just building Browsed Based applications augment with more phone features

Development HTML/CSS Application uses Common API exposing device features

Development Sample code

Mapping to Native

Concept Common API set is provided by framework Application is written using this common api set HTML/CSS may be supported or may not be supported. Titanium prefers native UI instead of HTML/CSS UI, Rhodes prefers HTML/CSS UI Phone Features are access liked common api set (this is similar to that in PhoneGap)

Development Two API Sets One for UI * (Specific to Titanium Mobile) Create Windows Create Dialogs ……. One for Phone Features Same as PhoneGap Access Camera Access GPS ……

Development UI API Set

Development UI API Set

Issues Common API set across platforms is always minimum E.g IPhone as a widget, which Android not have Fragmentation of the API itself. What is platform specific and not part of Common API comes in Platform specific api?

Mobile App Dev Frameworks Common Platform Mapping to Native PhoneGap Titanium Mobile Rhodes Mobile

Compare Screens (IPhone) PhoneGap Titanium Mobile

Compare Screens (Android) PhoneGap Titanium Mobile

Open Source BSD License MIT License

PhoneGap Only platform to support 6 Platforms

PhoneGap Standards based and extended

PhoneGap Features

PhoneGap Prerequistes Need to be acquainted with Android, IOS, BlackBerry, WebOS Need to be expert at HTML/Javascript or framework like GWT Need to be acquainted with JavaScript libraries like Jquery script.aculo.us Prototype Etc Or Ajax framework like GWT Need different project for each platform, inject PhoneGap code in each project PhoneGap has no IDE, use Eclipse for Android and Xcode for IPhone

Demo Screens - IPhone

Demo Screens - Android

Challenges and Advantages HTML based UI is the biggest Challenge as well as Advantage Same UI can be used for Web and Mobile and even Desktop Promising Framework GWT – Used by Spring Roo for Enterprise Application Development jQueryMobile – Based on legendary Jquery and now features Multipage Template Page Slide Transitions Dialogs Toolbars Forms Lists

Apache License Appcelerator Titanium SDK Titanium Module SDK Appcelerator Titanium SDK Titanium Module SDK Paid Modules Commerce Modules Communication Modules Analytics Module Media Modules

Titanium Mobile

Titanium Mobile IPhone Android Titanium JavaScript Interpreted By Wekit JavascriptCore Mozilla Rhino IPhone Android

Titanium Architecture

Titanium Prerequistes Need to be acquainted with Android, IOS programming Need to know JavaScript Use Titanium Mobile IDE to configure projects and use Text IDE to edit the code (unlike PhoneGap, there is only one project for all platforms)

Demo Screens - IPhone

Demo Screens - Android

Challenges and Advantages Being Native is the biggest strength Limited cross platform api is a weakness Platform specific api leads to fragmentation within code

Native Mobile App Development

Native App Development Basically you need to hire experts who can Build Android, IOS, BB, BlackBerry and Windows mobile apps Devs should have experience to deploy apps on market Devs should have experience on various devices QA should know how to automate things on devices/emulator Plan for risks if this is your companies first Mobile App deployment

Hybrid Mobile App Development

Hybrid App Development Have Web Developers for Common UI Have native code experts for heavy weight lifting Use frameworks like PhoneGap Plugin Development framework to glue the above two pieces Measure at every milestone to keep track of effect of changes Use Automation to regress every layer

ShareFile Story as

Comparison Titanium Mobile PhoneGap Gives out native app API is more proprietary UI has Limitations UI will be fast Much better User Experience Portal Code can not be reused Extensions are possible Limited support for HTML/Javascript Gives out a mobile web app API is less proprietary UI possibilities are unlimited UI could be slow User Experience will get better with enhancements Portal Code can be reused Extensions are possible and easy to implement More will come out of discussion, comments are welcome

Conclusion Webkit is the next Virtual Machine. Maybe Going where Java could not go HTML 5, CSS 3 and Javascript is future,but not ready just yet HTML 5, CSS3 and Javascript to lessen the fragmentation HTML 5 will compete with native components

Code Walkthrough - PhoneGap

Digging Deeper (Android) Instead of extending a Activity, we extend DroidGap DroidGap internally uses a WebView to show local/remote HTML/JavaScript/CSS This WebView has hooks to Call Java from JavaScript And Vice a Versa More like building Web 2.0 Applications But also calling some java scripts which allow accessing native mobile resources e.g. Geo, Database, File System, etc

Digging Deeper

Bootstrapping phonegap <html> <head> <title>Phone Gap</title> <script type="text/javascript" src="scripts/phonegap.js"></script> <script>…</script> </head> <body onload=”init();"> <img id="map" /> </body> </html>

Bootstrapping phonegap function init() { document.addEventListener('deviceready’,loadMap,false); }

Bootstrapping phonegap function loadMap() { var successCallback= function(position) { var coords = position.coords; var url = "http://maps.google.com/maps/api/staticmap?center=" + coords.latitude + "," + coords.longitude ; document.getElementById('map').setAttribute('src',url); }; var failureCallback = function(e) { alert('Can\'t retrieve position.\nError: ' + e); //Fetch Coordinate Asynchronously navigator.geolocation.getCurrentPosition(successCallback, failureCallback ); }

PhoneGap Walkthrough Lets see a Live Demo

Phone Gap Extension Adding new apis to PhoneGap is Simple Say Dropbox like Sync is exposed via javascript api Each Platform to have Dropbox like Sync native code called from javascript References - http://wiki.phonegap.com/w/page/36752779/PhoneGap-Plugins Author – Rohit Ghatol

Code Walkthrough – Titanium Mobile

Directory Structure

App.js (entry point) var tabGroup = Titanium.UI.createTabGroup(); var win1 = Titanium.UI.createWindow({ title: 'Search', url: 'search.js' }); var tab1 = Titanium.UI.createTab({ window:win1, title:'Search Alternatives’ tabGroup.addTab(tab1); tabGroup.addTab(tab2); tabGroup.open();

search.js (building UI) var window = Titanium.UI.currentWindow; var search = Titanium.UI.createSearchBar({ height:43, top:0 }); var actInd = Titanium.UI.createActivityIndicator({ height:50, var tableview = Titanium.UI.createTableView({ top:50 window.add(search); window.add(tableview);

search.js (Ajax Call) var xhr = Titanium.Network.createHTTPClient(); xhr.onload = function() { actInd.hide(); var doc = xhr.responseText; var json = eval('('+doc+')'); var data = []; //…. Load data in data // provide the data to table to populate the table tableview.setData(data); };

search.js (Event handling) //send ajax request to fetch altrnatives for searchText function searchAlternatives(searchText){ xhr.open('GET','http://api.alternativeto.net/software/'+searchText+'/?count=15'); xhr.send(); } //start search when user hits enter on search box search.addEventListener('return', function(e) { actInd.show(); searchAlternatives(e.value); });

Titanium Walkthrough Lets see a Live Demo

Hemant Elhence, hemant@synerzip.com Questions? www.synerzip.com Hemant Elhence, hemant@synerzip.com 469.322.0349 Agile Software Product Development Partner

Synerzip in a Nut-shell Software product development partner for small/mid-sized technology companies Exclusive focus on small/mid-sized technology companies By definition, all Synerzip work is the IP of its respective clients Deep experience in full SDLC – design, dev, QA/testing, deployment Technology and industry domain agnostic Dedicated team of high caliber software professionals Seamlessly extends client’s local team, offering full transparency NOT just “staff augmentation”, but provide full mgmt support Actually reduces risk of development/delivery Experienced team - uses appropriate level of engineering discipline Practices Agile development – responsive, yet disciplined Reduces cost – dual-shore team, 50% cost advantage Offers long term flexibility – allows (facilitates) taking offshore team captive – aka “BOT” option 85

Our Clients 86

Hemant Elhence, hemant@synerzip.com Questions? www.synerzip.com Hemant Elhence, hemant@synerzip.com 469.322.0349 Agile Software Product Development Partner