17
Bridging the Gap Cross Platform Mobile Application Development

Bridging the gap

Embed Size (px)

Citation preview

Page 1: Bridging the gap

Bridging the Gap

Cross Platform Mobile Application Development

Page 2: Bridging the gap

Me

Page 3: Bridging the gap

The Late 90’s

Page 4: Bridging the gap

Desktop Apps

• A predominant O/S – Windows• Minimal design constraints• Few well developed patterns• Few established tools– Visual Studio– Delphi

• Web was for documents

Page 5: Bridging the gap

The App Economy – Early Days

• ‘Freeware’ and ‘Shareware’• Limited channels for delivery• Tough on the consumer too

• Rags to Riches – near to impossible

Page 6: Bridging the gap

Today

• 7 Billion People• 0.7 Billion Personal Computers• 5 Billion Mobile Phones• 1 Billion Mobile ‘Smart’ Phones

• Shift from the PC to the Smart Phone

Page 7: Bridging the gap

Today

• Single channel delivery and acquisition for smart phone apps

• The advent of the App Stores• Why?– Micropayments– Reach– Free marketing– Easy for consumers

Page 8: Bridging the gap

A Fragmented Market

Page 9: Bridging the gap

A Fragmented Market

Platform Toolkit

Android Java (Dalvik)

Symbian C++, Java ME

Windows Mobile .NET

iPhone Objective C

Blackberry OS Proprietary Java Libraries/API

Page 10: Bridging the gap

Cross Platform Development

• Java• PhoneGap• RhoMobile• Appcelerator Titanium• MoSync

Page 11: Bridging the gap

PhoneGap

• HTML / JavaScript / CSS

• If you know how to develop a webpage, you are in the party.

• Supports – – iPhone, Android, Symbian, – Blackberry, Windows

Page 12: Bridging the gap

PhoneGap

Page 13: Bridging the gap

Native Methods

• Accelerometer• Camera• GPS• Contacts• Network• Messaging

Page 14: Bridging the gap

Example<html> <head> <title>Device Properties Example</title>

<script type="text/javascript" charset="utf-8" src="phonegap.js"></script> <script type="text/javascript" charset="utf-8">

// Wait for PhoneGap to load function onLoad() { document.addEventListener("deviceready", onDeviceReady, false); }

// PhoneGap is ready function onDeviceReady() { navigator.geolocation.getCurrentPosition(onSuccess, onError); }

// onSuccess Geolocation function onSuccess(position) { var element = document.getElementById('geolocation'); element.innerHTML = 'Latitude: ' + position.coords.latitude + '<br />' + 'Longitude: ' + position.coords.longitude + '<br />' + 'Altitude: ' + position.coords.altitude + '<br />'; }

// onError Callback receives a PositionError object function onError(error) { alert('code: ' + error.code + '\n' + 'message: ' + error.message + '\n'); }

</script> </head> <body onload="onLoad()"> <p id="geolocation">Finding geolocation...</p> </body></html>

1

2

3

4

5

Page 15: Bridging the gap

Deploying

• PhoneGap compiles using the original SDKs• Android ADT on Eclipse• Apple OSX, Xcode for iOS

• Minimal platform dependent code• Faster turn around times• Code re-use

Page 16: Bridging the gap

Further reading

• www.phonegap.com• www.appcelerator.com• www.rhomobile.com

Page 17: Bridging the gap

That’s all folks

[email protected] : @anoopsankar