27
1 Cross-platform mobile development choices and limitations Rohit Nayak Talentica

Cross-platform mobile development: choices and limitations [IndicThreads Mobile Application Development Conference]

Embed Size (px)

DESCRIPTION

Session Presented at 1st IndicThreads.com Conference On Mobile Application Development held on 19-20 November 2010 in Pune, India WEB: http://M10.IndicThreads.com ------------ Speaker: Rohit Nayak Abstract: Mobile development is still in a nascent stage. New platforms keep emerging and old ones regularly undergo major changes. To confuse matters further there are several cross-platform tools each claiming to use a single codebase to target multiple phones. What is a developer to do? In this talk we will look at some of the key cross-platform mobile platforms out there including Appcelarator Titanium, PhoneGap and MoSync. We will start out by reviewing the different mobile platforms and development environments before reviewing the landscape of cross-platform tools. We will discuss the different design approaches used by these platforms to support their target smart-phones. Quick demos using a few of these platforms will be shown so that the audience will get a flavor of the low level coding details as well as supporting tools like IDEs and simulators provided. Java and QT are traditional cross-platform environments which have a place in mobile development as well. We will take a quick look at support available for these on mobile platforms. Finally we compare the different approaches in terms of functional limitations, programming complexity, deployment and lock-in. Takeaways from the session Review of the mobile single platform and cross platform landscape Should I look at cross-platform development or not? Which cross-platform tools make sense for me? What kind of developers do I need for cross-platform development? WEB: http://M10.IndicThreads.com

Citation preview

Page 1: Cross-platform mobile development: choices and limitations  [IndicThreads Mobile Application Development Conference]

1

Cross-platform mobile development

choices and limitations

Rohit NayakTalentica

Page 2: Cross-platform mobile development: choices and limitations  [IndicThreads Mobile Application Development Conference]

2

The mobile marketHow Mobile apps differNative app landscapeCross-platform approachesCloser look at Titanium, PhoneGapOther optionsSummary

Agenda

Page 3: Cross-platform mobile development: choices and limitations  [IndicThreads Mobile Application Development Conference]

3

Page 4: Cross-platform mobile development: choices and limitations  [IndicThreads Mobile Application Development Conference]

4

Last Gartner report

Page 5: Cross-platform mobile development: choices and limitations  [IndicThreads Mobile Application Development Conference]

5

Page 6: Cross-platform mobile development: choices and limitations  [IndicThreads Mobile Application Development Conference]

6

Page 7: Cross-platform mobile development: choices and limitations  [IndicThreads Mobile Application Development Conference]

7

Always AvailableAlternative Inputs

Tap/Flick/Rotate/Pinch/Shake

LocationAccelerometerLocal StorageOrientationCamera/Contacts/Phone/SMS

How Mobile Differs: Features

Page 8: Cross-platform mobile development: choices and limitations  [IndicThreads Mobile Application Development Conference]

8

InterruptionsScreen SizeSpeedMemoryKeyboardBattery Charge

GPS, CPU tick, memory refresh, display

How Mobile Differs: Limitations

Page 9: Cross-platform mobile development: choices and limitations  [IndicThreads Mobile Application Development Conference]

9

Criteria for comparison

SmartphonesSocial Network / Enterprise ClientsStandard skillsetUS market

iPhone / Android / Blackberry

Cool factor

Page 10: Cross-platform mobile development: choices and limitations  [IndicThreads Mobile Application Development Conference]

10

Cross-platform Apps

Native AppsCross-compiled Native AppsPackaged native browser control

basedHand-crafted browser control basedWeb application

Page 11: Cross-platform mobile development: choices and limitations  [IndicThreads Mobile Application Development Conference]

11

Dev Env Distribution Strengths Weaknesses

iPhone Mac/Objective C AppStore, iTunes Uniform experience Tight Control, learning curve, need a Mac

Android Any/Java Android Market, Web Open, Multi-vendor

Non-uniform experience, Version incompatibility, Chaos?!

Blackberry Any/Java App Market Enterprise, Security Support

Symbian Any/QT (C++) Ovi store Market reach Support, C++!, New platform

Windows Mobile Windows/.Net MS Store Microsoft Dev community Very new, closed

Native Apps

Page 12: Cross-platform mobile development: choices and limitations  [IndicThreads Mobile Application Development Conference]

12

iPhone Development

Mac-only, Objective-CXCode graphical IDEiPhone simulatorInterface (UI) builder

Page 13: Cross-platform mobile development: choices and limitations  [IndicThreads Mobile Application Development Conference]

13

Objective-C

Object-oriented extensions to CMessage passingInterface (UI) builderNo GC on iPhoneCustom URLs (tel://, sms://)

Page 14: Cross-platform mobile development: choices and limitations  [IndicThreads Mobile Application Development Conference]

14

Cross-compiled Native Apps

Rhomobile Titanium by AppceleratorMoSync

Page 15: Cross-platform mobile development: choices and limitations  [IndicThreads Mobile Application Development Conference]

15

Titanium

HTML/JS/AjaxTitanium DeveloperiPhone / Android / BlackberryDemo

Page 16: Cross-platform mobile development: choices and limitations  [IndicThreads Mobile Application Development Conference]

16

Installing Titanium

Install Java 1.6, Android (1.6-2.2)Download/install TitaniumInstall KitchenSink reference appCreate new projectTest on simulatorTest on device

Page 17: Cross-platform mobile development: choices and limitations  [IndicThreads Mobile Application Development Conference]

17

Titanium Internals

Converts JS to SymbolsNative compilerAndroid: .class, javaciPhone: .o, gccTranslates HTML to native view

elementsPlugin architecture

Page 18: Cross-platform mobile development: choices and limitations  [IndicThreads Mobile Application Development Conference]

18

Titanium - Device APIs

LocationAccelerometerContactsDevice OrientationCameraStorage

Page 19: Cross-platform mobile development: choices and limitations  [IndicThreads Mobile Application Development Conference]

19

Titanium - Issues

Complex toolKeeping pace: iPhone 4.0Device support

iPhone biasDoesn’t work as advertised

Page 20: Cross-platform mobile development: choices and limitations  [IndicThreads Mobile Application Development Conference]

20

Rhomobile

Supports max devicesNative apps, MVCControllers in Ruby, byte code

interpreted on deviceViews (HTML/CSS) Views rendered in embedded

browserSome UI elements (Tabs/Menu)

native

Page 21: Cross-platform mobile development: choices and limitations  [IndicThreads Mobile Application Development Conference]

21

Rhomobile Architecture

Page 22: Cross-platform mobile development: choices and limitations  [IndicThreads Mobile Application Development Conference]

22

MoSync

Build toolkit with SDK, Most platforms (Blackberry WIP)C/C++ (Eclipse)Device specific run times

Page 23: Cross-platform mobile development: choices and limitations  [IndicThreads Mobile Application Development Conference]

23

Packaged (native browser control)

PhonegapRhomobile UI

Page 24: Cross-platform mobile development: choices and limitations  [IndicThreads Mobile Application Development Conference]

24

PhoneGap

HTML/JS/AjaxEclipse Based dev envDevice specific librariesJavascript extensionsDemo

Page 25: Cross-platform mobile development: choices and limitations  [IndicThreads Mobile Application Development Conference]

25

PhoneGap Internals

iPhone App FlowJavascript queue/marshallingUIWebView integrationExtending PhoneGap

Page 26: Cross-platform mobile development: choices and limitations  [IndicThreads Mobile Application Development Conference]

26

Mobile Web Applications

HTML5!Mobile SafarijQTouchStorage

localStorage, sessionStorage, sql database

Page 27: Cross-platform mobile development: choices and limitations  [IndicThreads Mobile Application Development Conference]

27

To Conclude

Native AppsPhoneGapWeb Applications