Upload
indicthreads
View
4.637
Download
1
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
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