Mobile Development Options
-
Upload
great-wide-open -
Category
Technology
-
view
124 -
download
1
description
Transcript of Mobile Development Options
![Page 1: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/1.jpg)
MOBILE DEVELOPMENT
OPTIONS
!PRATIK PATEL | CTO | TripLingo twitter: @prpatel
![Page 2: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/2.jpg)
TOPICS• Android, iOS, HTML5/CSS3, Phonegap, Titanium, and jQuery Mobile
• native, cross-platform-to-native, and mobile web
• deep dive into: - phonegap - titanium
PRATIK PATEL | CTO
![Page 3: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/3.jpg)
WE’ll FOCUS ON
PRATIK PATEL | CTO
![Page 4: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/4.jpg)
MY EXPERIENCE
PRATIK PATEL | CTO
![Page 5: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/5.jpg)
overview of the options !!!!
![Page 6: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/6.jpg)
NATIVE MOBILE• Must know Objective-C & Java very well
• SDK is closed source, many open-source libs available
PRATIK PATEL | CTO
![Page 7: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/7.jpg)
NATIVE II• MUST KNOW THE TOOL chain for each platform
PRATIK PATEL | CTO
![Page 8: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/8.jpg)
ANDROID
PRATIK PATEL | CTO
![Page 9: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/9.jpg)
XCODE
PRATIK PATEL | CTO
![Page 10: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/10.jpg)
NATIVE III• ABILITY TO CREATE best possible app
• time & effort multiplied by platform
• obviously not cross-platform
PRATIK PATEL | CTO
![Page 11: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/11.jpg)
PRATIK PATEL | CTO
![Page 12: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/12.jpg)
PHONEGAP• native wrapper
- bootstraps a webkit browser !
• open-source as “Apache Cordova”
PRATIK PATEL | CTO
![Page 13: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/13.jpg)
PHONEGAP• provides hooks into native functions - camera, contacts, accelerometer, etc
PRATIK PATEL | CTO
![Page 14: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/14.jpg)
PRATIK PATEL | CTO
http://www.melablog.it/post/11421/phonegap-riceve-il-nulla-osta-di-apple-per-app-store
![Page 15: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/15.jpg)
PHONEGAP• Must use native toolchain to build phonegap wrapper
PRATIK PATEL | CTO
![Page 16: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/16.jpg)
CROSS PLATFORM
PRATIK PATEL | CTO
http://mashable.com/2011/02/22/html-mobile-development/
![Page 17: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/17.jpg)
CODING PHONEGAP• you can develop right in a desktop browser for most of your app!
PRATIK PATEL | CTO
![Page 18: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/18.jpg)
MOBILE WEB LIBS- jquery mobile - sencha touch - jo (joapp.com) - kendoui
PRATIK PATEL | CTO
![Page 19: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/19.jpg)
PRATIK PATEL | CTO
phonegap DIAGRAMOperating System (iOS/Android)
Phonegap native wrapper app
Webkit browser engineYour
code runs here
![Page 20: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/20.jpg)
PRATIK PATEL | CTO
phonegap on ios
![Page 21: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/21.jpg)
APP DEV PLATFORMS
PRATIK PATEL | CTO
![Page 22: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/22.jpg)
APP DEV PLATFORMS• Xamarin (formerly monotouch) (C#)
• Ansca Corona (LUA)
• Appcelerator TITANIUM (JAVASCRIPT)
• Only TITANIUM is open-source
PRATIK PATEL | CTO
![Page 23: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/23.jpg)
APP DEV PLATFORMS• do _NOT_ generate code
• bridge from LANG <X> to native
• uses native toolchain
PRATIK PATEL | CTO
![Page 24: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/24.jpg)
BRIDGE• VENDOR WRITES HOOKS to native API
• vendor marshalls / unmarshalls calls & data in both directions
PRATIK PATEL | CTO
![Page 25: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/25.jpg)
PRATIK PATEL | CTO
how they work
you code here
var win1 = Titanium.UI.createWindow({ url:'main.js', title:'Spice Guide', // backgroundImage:'./images/bg.png', navBarHidden: false, tabBarHidden: true});
app platform
android sdkios sdk
platform provides API
platform bridges to native
![Page 26: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/26.jpg)
TITANIUM
PRATIK PATEL | CTO
![Page 27: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/27.jpg)
TITANIUM• open source, 100% free
• IDE - titanium studio - based on eclipse
PRATIK PATEL | CTO
![Page 28: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/28.jpg)
TITANIUM II• code in javascript
• again, not a generator !
PRATIK PATEL | CTO
![Page 29: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/29.jpg)
CODE REUSE?• 100% Of non-UI code is reusable
• 80% of UI code is reusable
• UI code can become more reusable with experience and patterns!
PRATIK PATEL | CTO
![Page 30: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/30.jpg)
TITANIUM == NATIVE
PRATIK PATEL | CTO
• Titanium api calls native objects/methods
• no code generation
• native widgets
• Tons of open-source modules available!
![Page 31: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/31.jpg)
PRATIK PATEL | CTO
titanium live coding
![Page 32: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/32.jpg)
notice something common? !!!!
![Page 33: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/33.jpg)
NATIVE TOOLCHAIN!
PRATIK PATEL | CTO
![Page 34: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/34.jpg)
PRATIK PATEL | CTO
you must learn the native toolchain for any of the options!
![Page 35: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/35.jpg)
NATIVE TOOLCHAIN• you must learn the native toolchain
• spend a few days building a native app for each platform you’re interested in
• the time you invest in this will be paid back 100x
PRATIK PATEL | CTO
![Page 36: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/36.jpg)
COMPARING THE OPTIONS
PRATIK PATEL | CTO
![Page 37: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/37.jpg)
NATIVE • no code reuse
• best possible experience
• games, low-level needs
• cost: $$$$$
PRATIK PATEL | CTO
![Page 38: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/38.jpg)
PHONEGAP • use tech you know (HTML/JS/CSS)
• Rapid development
• user experience is hard to perFect
• bad performance
• nuances of browser tech = black hole of effort
PRATIK PATEL | CTO
![Page 39: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/39.jpg)
APP DEV PLATFORMS • can get good code reuse
• performance is very close to native
• must learn a new tool/platform
• abstraction distractions
• rapid development
PRATIK PATEL | CTO
![Page 40: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/40.jpg)
PRATIK PATEL | CTO
![Page 41: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/41.jpg)
PRATIK PATEL | CTO
![Page 42: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/42.jpg)
PRATIK PATEL | CTO
![Page 43: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/43.jpg)
AU REVOIR!
!
Follow me on twitter: @PRPATEL
![Page 44: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/44.jpg)
NATIVE
PRATIK PATEL | CTO
![Page 45: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/45.jpg)
IOS• OBJECTIVE-C language
• dispatch model is very powerful
• NOT low ceremony
PRATIK PATEL | CTO
![Page 46: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/46.jpg)
ANDROID• Java with limitations (Davlik VM)
• open source platform
• tools you know and love (?) !
PRATIK PATEL | CTO
![Page 47: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/47.jpg)
NATIVE II• developing the ‘same’ app for 2+ platforms == $$$$
• “LOW LEVEL” programming
PRATIK PATEL | CTO
![Page 48: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/48.jpg)
PHONEGAP
PRATIK PATEL | CTO
![Page 49: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/49.jpg)
PHONEGAP• open source, 100% free
• APACHE PROJECT
• large community
• tons of plugins
PRATIK PATEL | CTO
![Page 50: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/50.jpg)
MIND THE GAP II• wraps a web browser in a native project
• your code runs in the browser
• plugins allow more native functions
• provides hooks into native functions - camera, contacts, accelerometer, etc !
PRATIK PATEL | CTO
![Page 51: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/51.jpg)
MIND THE GAP III• you can develop right in a desktop browser for most of your app!
• can use mobile web libs: - jquery mobile - sencha touch - jo (joapp.com) - kendoui
PRATIK PATEL | CTO
![Page 52: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/52.jpg)
phonegap demo !!!!
![Page 53: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/53.jpg)
APP DEV PLATFORMS
PRATIK PATEL | CTO
![Page 54: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/54.jpg)
BRIDGE• vendor provides proprietary API on top
• you code to this API
• VENDOR WRITES HOOKS to native API
• vendor marshalls / unmarshalls calls & data in both directions
• again, no code generation!
PRATIK PATEL | CTO
![Page 55: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/55.jpg)
PRATIK PATEL | CTO
how they work
you code here
var win1 = Titanium.UI.createWindow({ url:'main.js', title:'Spice Guide', // backgroundImage:'./images/bg.png', navBarHidden: false, tabBarHidden: true});
app platform
android sdkios sdk
platform provides API
platform bridges to native
![Page 56: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/56.jpg)
MONOTOUCH• based on mono
• C#
• $600 for both ios and android
PRATIK PATEL | CTO
![Page 57: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/57.jpg)
ANSCA CORONA• based on LUA - a script lang for c
• popular with game devs
• $349 for both ios and android
• less bridGing
PRATIK PATEL | CTO
![Page 58: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/58.jpg)
RUBYMOTION• based on RUBY - but ios only
• fairly new
• $199
• live REPL, other nice features
PRATIK PATEL | CTO
![Page 59: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/59.jpg)
TITANIUM
PRATIK PATEL | CTO
![Page 60: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/60.jpg)
TITANIUM• open source, 100% free
• support contract costs $
• extra modules cost $ (ex: storekit)
• IDE - titanium studio - based on eclipse
PRATIK PATEL | CTO
![Page 61: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/61.jpg)
TITANIUM II• code in javascript
• again, not a generator !
PRATIK PATEL | CTO
![Page 62: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/62.jpg)
PLATFORMS• iOS
• ANDROID
• Mobile web (beta)
• Blackberry 10 coming soon
PRATIK PATEL | CTO
![Page 63: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/63.jpg)
Titanium SDK• Javascript to native bridge
• Code to Titanium API (proprietary)
• Write once, deploy to iOS + ANdroid
• platform specific API’s too!
PRATIK PATEL | CTO
![Page 64: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/64.jpg)
WIDGETS• Buttons, Labels, Windows, Views
• Sliders, TextFields, WebViews
• Pickers, Tables
PRATIK PATEL | CTO
![Page 65: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/65.jpg)
EVENTS• ADD / Fire events
• Very much like “web” Javascript dev
PRATIK PATEL | CTO
![Page 66: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/66.jpg)
CODE REUSE?• 100% Of non-UI code is reusable
• 50% of UI code is reusable
• UI code can become more reusable with experience and patterns!
PRATIK PATEL | CTO
![Page 67: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/67.jpg)
TITANIUM == NATIVE
PRATIK PATEL | CTO
• Titanium api calls native objects/methods
• no code generation
• native widgets
![Page 68: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/68.jpg)
TITANIUM MODULES• Titanium is based on modules
• Each module represents an API
• Bridge from JavaScript to native runtime
• Example modules: networking, database, Filesystem, UI, Yahoo, Media, Map, Facebook, Accelerometer
PRATIK PATEL | CTO
![Page 69: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/69.jpg)
let’s write a Titanium app
![Page 70: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/70.jpg)
Layouts codevar view = Ti.UI.createView({ backgroundColor:'transparent', top:0, left:0, width:'100%', height:'100%', layout:'vertical' }); // create labels, buttons, text fields !view.add(usernameLabel); view.add(usernameField); view.add(submitButton);
PRATIK PATEL | CTO
![Page 71: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/71.jpg)
Events code
Ti.App.addEventListener('event_type', function(e) { Ti.API.info('The '+e.type+' event happened'); }); !Ti.App.fireEvent('click',
{datakey: 'value'});
PRATIK PATEL | CTO
![Page 72: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/72.jpg)
Custom Controlsvar buttonView1 = Titanium.UI.createView({ top: 0, left: 0, height: 50, width: 50, borderRadius: 10, backgroundColor: '#cef7ff' });var selection1 = Titanium.UI.createLabel({ text : 'Fish', color : '#f79e18', font : {fontSize : 40}, textAlign: 'center' });buttonView1.add(selection1);
PRATIK PATEL | CTO
![Page 73: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/73.jpg)
HttpClientvar url = "https://www.google.com"; var xhr = Ti.Network.createHTTPClient({ onload: function(e) { Ti.API.debug(this.responseText); alert('success'); }, onerror: function(e) { Ti.API.debug(e.error); alert('error'); }, timeout:5000 }); xhr.open("GET", url); xhr.send();
PRATIK PATEL | CTO
![Page 74: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/74.jpg)
Databasevar db = Titanium.Database.open('mydb'); !db.execute('CREATE TABLE IF NOT EXISTS DATABASETEST (ID INTEGER, NAME TEXT)'); db.execute('DELETE FROM DATABASETEST'); !db.execute('INSERT INTO DATABASETEST (ID, NAME ) VALUES(?,?)',1,'Name 1'); db.execute('UPDATE DATABASETEST SET NAME = ? WHERE ID = ?', updateName, updateId); var rows = db.execute('SELECT * FROM DATABASETEST'); !while (rows.isValidRow()) { Titanium.API.info('ID: ' + rows.field(0) + ' NAME: ' + rows.fieldByName('name') + ' COLUMN NAME ' + rows.fieldName(0)); rows.next(); }
PRATIK PATEL | CTO
![Page 75: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/75.jpg)
Facebookvar fbButton = Titanium.Facebook.createLoginButton({ 'style':'wide', 'apikey':'9494e611f2a93b8d7bfcdfa8cefdaf9f', 'sessionProxy':'http://api.appcelerator.net/p/fbconnect/', bottom:10, height:30, width:300 }); Titanium.Facebook.publishStream("Set your status",null,null,function(r) { Titanium.API.info("received status response = "+JSON.stringify(r)); if (r.success)
{Ti.UI.createAlertDialog({title:'Facebook', message:'Your status was ublished'}).show();
} else {Ti.UI.createAlertDialog({title:'Facebook', message:'Error ' +
r.error}).show(); } });
PRATIK PATEL | CTO
![Page 76: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/76.jpg)
Animations var t3 = Ti.UI.create2DMatrix(); t3 = t3.rotate(20); t3 = t3.scale(1.5); ! var a = Titanium.UI.createAnimation(); a.transform = t3; a.duration = 3000; !var view1 = Titanium.UI.createView({ backgroundColor:'#336699', top:10, left:220, height:50, width:50, anchorPoint:{x:0,y:0} }); win.add(view1); topLeft.addEventListener('click', function() { view1.animate(a); });
PRATIK PATEL | CTO
![Page 77: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/77.jpg)
app dev platforms
PRATIK PATEL | CTO
![Page 78: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/78.jpg)
REDUX• APP dev PLATFORMS: a high level env
• reuse code
• access to native (and specific) API’s
PRATIK PATEL | CTO
![Page 79: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/79.jpg)
REDUX II• performance is near native (95%)
• drawbacks: - abstraction - must know app platform + native platform
PRATIK PATEL | CTO
![Page 80: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/80.jpg)
choosing
PRATIK PATEL | CTO
![Page 81: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/81.jpg)
NATIVE • no code reuse
• best possible experience
• games, low-level needs
• cost: $$$$$
PRATIK PATEL | CTO
![Page 82: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/82.jpg)
PHONEGAP • use tech you know (HTML/JS/CSS)
• user experience is hard to perFect
• bad performance
• nuances of browser tech = black hole of effort
PRATIK PATEL | CTO
![Page 83: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/83.jpg)
APP DEV PLATFORMS • can get good code reuse
• performance is very close to native
• must learn a new tool/platform
• abstraction distractions
• rapid development
PRATIK PATEL | CTO
![Page 84: Mobile Development Options](https://reader038.fdocuments.us/reader038/viewer/2022102722/554d20ceb4c905ab268b48e0/html5/thumbnails/84.jpg)
what would you pick? !!!!