Cross-platform mobile development: choices and limitations [IndicThreads Mobile Application...

Preview:

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

1

Cross-platform mobile development

choices and limitations

Rohit NayakTalentica

2

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

Agenda

3

4

Last Gartner report

5

6

7

Always AvailableAlternative Inputs

Tap/Flick/Rotate/Pinch/Shake

LocationAccelerometerLocal StorageOrientationCamera/Contacts/Phone/SMS

How Mobile Differs: Features

8

InterruptionsScreen SizeSpeedMemoryKeyboardBattery Charge

GPS, CPU tick, memory refresh, display

How Mobile Differs: Limitations

9

Criteria for comparison

SmartphonesSocial Network / Enterprise ClientsStandard skillsetUS market

iPhone / Android / Blackberry

Cool factor

10

Cross-platform Apps

Native AppsCross-compiled Native AppsPackaged native browser control

basedHand-crafted browser control basedWeb application

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

12

iPhone Development

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

13

Objective-C

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

14

Cross-compiled Native Apps

Rhomobile Titanium by AppceleratorMoSync

15

Titanium

HTML/JS/AjaxTitanium DeveloperiPhone / Android / BlackberryDemo

16

Installing Titanium

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

17

Titanium Internals

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

elementsPlugin architecture

18

Titanium - Device APIs

LocationAccelerometerContactsDevice OrientationCameraStorage

19

Titanium - Issues

Complex toolKeeping pace: iPhone 4.0Device support

iPhone biasDoesn’t work as advertised

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

21

Rhomobile Architecture

22

MoSync

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

23

Packaged (native browser control)

PhonegapRhomobile UI

24

PhoneGap

HTML/JS/AjaxEclipse Based dev envDevice specific librariesJavascript extensionsDemo

25

PhoneGap Internals

iPhone App FlowJavascript queue/marshallingUIWebView integrationExtending PhoneGap

26

Mobile Web Applications

HTML5!Mobile SafarijQTouchStorage

localStorage, sessionStorage, sql database

27

To Conclude

Native AppsPhoneGapWeb Applications