Using+javascript+to+build+native+i os+applications

48
Using JavaScript to Build Native iOS Applications Andrew Lombardi Owner, Tech Evangelist Mystic Coders, LLC andrew AT mysticcoders DOT com kinabalu @ irc://irc.freenode.net - ##wicket, ##java kinabalu @ twitter Monday, April 4, 2011

description

 

Transcript of Using+javascript+to+build+native+i os+applications

Page 1: Using+javascript+to+build+native+i os+applications

Using JavaScript to BuildNative iOSApplicationsAndrew LombardiOwner, Tech EvangelistMystic Coders, LLCandrew AT mysticcoders DOT com

kinabalu @ irc://irc.freenode.net - ##wicket, ##javakinabalu @ twitter

Monday, April 4, 2011

Page 2: Using+javascript+to+build+native+i os+applications

Monday, April 4, 2011

Page 3: Using+javascript+to+build+native+i os+applications

11 Years in business

Monday, April 4, 2011

Page 4: Using+javascript+to+build+native+i os+applications

Software Consultants

11 Years in business

Monday, April 4, 2011

Page 5: Using+javascript+to+build+native+i os+applications

Software Consultants

International Speaker

11 Years in business

Monday, April 4, 2011

Page 6: Using+javascript+to+build+native+i os+applications

Software Consultants

International Speaker

Training

11 Years in business

Monday, April 4, 2011

Page 7: Using+javascript+to+build+native+i os+applications

Software Consultants

International Speaker

Training

11 Years in business

Apache Wicket Contributor

Monday, April 4, 2011

Page 8: Using+javascript+to+build+native+i os+applications

Software Consultants

International Speaker

Training

11 Years in business

Apache Wicket Contributor

iPhone Developer (Obj-C / JavaScript)

Monday, April 4, 2011

Page 9: Using+javascript+to+build+native+i os+applications

To our success!

Software Consultants

International Speaker

Training

11 Years in business

Apache Wicket Contributor

iPhone Developer (Obj-C / JavaScript)

Monday, April 4, 2011

Page 10: Using+javascript+to+build+native+i os+applications

Monday, April 4, 2011

Page 11: Using+javascript+to+build+native+i os+applications

Monday, April 4, 2011

Page 12: Using+javascript+to+build+native+i os+applications

Monday, April 4, 2011

Page 13: Using+javascript+to+build+native+i os+applications

Tried learning Objective-C

Monday, April 4, 2011

Page 14: Using+javascript+to+build+native+i os+applications

Appcelerator Titaniumhttp://www.appcelerator.com/

Monday, April 4, 2011

Page 15: Using+javascript+to+build+native+i os+applications

Sunshine! Blue Skies!Monday, April 4, 2011

Page 16: Using+javascript+to+build+native+i os+applications

Titanium is an open source framework for building mobile and desktop applications using web technology (HTML, CSS and JavaScript)

Titanium is...

Monday, April 4, 2011

Page 17: Using+javascript+to+build+native+i os+applications

What we’ll cover

Monday, April 4, 2011

Page 18: Using+javascript+to+build+native+i os+applications

1. The Setup

What we’ll cover

Monday, April 4, 2011

Page 19: Using+javascript+to+build+native+i os+applications

1. The Setup2. Platform Overview

What we’ll cover

Monday, April 4, 2011

Page 20: Using+javascript+to+build+native+i os+applications

1. The Setup2. Platform Overview3. Supported Modules

What we’ll cover

Monday, April 4, 2011

Page 21: Using+javascript+to+build+native+i os+applications

1. The Setup2. Platform Overview3. Supported Modules4. Demos

What we’ll cover

Monday, April 4, 2011

Page 22: Using+javascript+to+build+native+i os+applications

The Setup

Monday, April 4, 2011

Page 23: Using+javascript+to+build+native+i os+applications

1. Download iOS SDK - http://developer.apple.com

Monday, April 4, 2011

Page 24: Using+javascript+to+build+native+i os+applications

Monday, April 4, 2011

Page 25: Using+javascript+to+build+native+i os+applications

Pay the

Monday, April 4, 2011

Page 26: Using+javascript+to+build+native+i os+applications

Pay the

Apple

Monday, April 4, 2011

Page 27: Using+javascript+to+build+native+i os+applications

Pay the

AppleTax

Monday, April 4, 2011

Page 28: Using+javascript+to+build+native+i os+applications

Pay the

AppleTax $99

USDMonday, April 4, 2011

Page 29: Using+javascript+to+build+native+i os+applications

2. Download: http://www.appcelerator.com/products/download/

Monday, April 4, 2011

Page 30: Using+javascript+to+build+native+i os+applications

License?

• Apache 2.0 Licensed• Commercial training and support services

available• Core SDK - free and open source

Monday, April 4, 2011

Page 31: Using+javascript+to+build+native+i os+applications

What is it good for?

• Data-driven web service clients• Web service mash-ups• Social utilities• Casual games

Monday, April 4, 2011

Page 32: Using+javascript+to+build+native+i os+applications

Mobile Architecture

Monday, April 4, 2011

Page 33: Using+javascript+to+build+native+i os+applications

Training

http://developer.appcelerator.com/training

Monday, April 4, 2011

Page 34: Using+javascript+to+build+native+i os+applications

Titanium Plus

Monday, April 4, 2011

Page 35: Using+javascript+to+build+native+i os+applications

Titanium Developer

• Manage and run Titanium applications

• Package applications for distribution

• Run on a device for testing

• Manage Appcelerator account

Monday, April 4, 2011

Page 36: Using+javascript+to+build+native+i os+applications

Access to Media

Interact with the iOS built-in cameras

Ti.Media.showCamera({success: function(imageBlob) {

},cancel: function() {

},error: function(error) {

},allowImageEditing: true});

Monday, April 4, 2011

Page 37: Using+javascript+to+build+native+i os+applications

Network

XHR-style object for remote data requests.

var loader = Ti.Network.createHTTPClient();

loader.open("GET","http://www.google.com/api/something");

loader.onload = function() { }

// Send the HTTP requestloader.send();

Monday, April 4, 2011

Page 38: Using+javascript+to+build+native+i os+applications

Facebook Connect

Titanium.Facebook.appid = '[YOUR APPID]';Titanium.Facebook.permissions = ['publish_stream'];Titanium.Facebook.addEventListener('login', function(e) { if (e.success) { alert('Logged In'); } else if (e.error) { alert(e.error); } else if (e.cancelled) { alert("Cancelled"); }});Titanium.Facebook.authorize();

Monday, April 4, 2011

Page 39: Using+javascript+to+build+native+i os+applications

Native User ExperienceNative performance + Native UI (tables, animations, gestures, etc).

Location-based ServicesAugmented reality, geo-location, compass, native maps

Social SharingAuthenticated access to Facebook, Twitter, Yahoo YQL. Native email/address book.

DataAccess online / device data, embedded SQL database, filesystem, web services

MultimediaCamera, video camera, streaming / device audio/video

AnalyticsCamera, video camera, native image viewers, streaming or device audio/video

ExtensibilityAdd any native Obj. C (iPhone) or Java (Android) module into Titanium

Development ToolsCreate, test, and publish your app

Full-Featured Development...

Monday, April 4, 2011

Page 40: Using+javascript+to+build+native+i os+applications

• A Titanium application is a JavaScript program that is interpreted at runtime on the device

• app.js = root execution context of the app

• No browser involved• We use the WebKit KJS

JavaScript engine (iOS) or Rhino (Android/BB)

Titanium Fundamentals

Monday, April 4, 2011

Page 41: Using+javascript+to+build+native+i os+applications

• Organized into logical namespaces• “Titanium” (or just “Ti” for short) is the root

namespace for all Titanium functionality• A few other odds and ends in the global space

– setTimeout/setInterval– alert– JSON

Titanium Javascript API

Monday, April 4, 2011

Page 42: Using+javascript+to+build+native+i os+applications

• A single window or stack of windows• Tab Group containing many windows• Windows contain views

Titanium UI Composition

Monday, April 4, 2011

Page 43: Using+javascript+to+build+native+i os+applications

DEMO!

Monday, April 4, 2011

Page 44: Using+javascript+to+build+native+i os+applications

More websites for Titanium knowledge

RESOURCES

Monday, April 4, 2011

Page 45: Using+javascript+to+build+native+i os+applications

General

Homepage: http://www.appcelerator.com

Twitter: @appcelerator

IRC: #twitter_app

Source: http://github.com/appcelerator

New Semantic Tags (more)

Monday, April 4, 2011

Page 46: Using+javascript+to+build+native+i os+applications

Monday, April 4, 2011

Page 47: Using+javascript+to+build+native+i os+applications

Titanium Rocks!!

Monday, April 4, 2011

Page 48: Using+javascript+to+build+native+i os+applications

Q&AThanks for listening!

Andrew LombardiOwner, Tech EvangelistMystic Coders, LLCandrew AT mysticcoders DOT com

kinabalu @ irc://irc.freenode.net - ##wicket, ##java

Monday, April 4, 2011