1. 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
4. 11 Years in business
Software Consultants
Monday, April 4, 2011
5. 11 Years in business
Software Consultants
International Speaker
Monday, April 4, 2011
6. 11 Years in business
Software Consultants
International Speaker
Training
Monday, April 4, 2011
7. 11 Years in business
Software Consultants
International Speaker
Training
Apache Wicket Contributor
Monday, April 4, 2011
8. 11 Years in business
Software Consultants
International Speaker
Training
Apache Wicket Contributor
iPhone Developer (Obj-C / JavaScript)
Monday, April 4, 2011
9. 11 Years in business
Software Consultants
International Speaker
Training
Apache Wicket Contributor
iPhone Developer (Obj-C / JavaScript)
To our success!
Monday, April 4, 2011
16. Titanium is...
Titanium is an open source framework
for building mobile and desktop
applications using web technology
(HTML, CSS and JavaScript)
Monday, April 4, 2011
35. Titanium Developer
• Manage and run Titanium
applications
• Package applications for
distribution
• Run on a device for testing
• Manage Appcelerator account
Monday, April 4, 2011
36. 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
37. 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 request
loader.send();
Monday, April 4, 2011
38. 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
39. Full-Featured Development...
Native User Experience Multimedia
Native performance + Native UI Camera, video camera, streaming /
(tables, animations, gestures, etc). device audio/video
Location-based Services Analytics
Augmented reality, geo-location, Camera, video camera, native image
compass, native maps viewers, streaming or device audio/
video
Social Sharing
Authenticated access to Facebook, Extensibility
Twitter, Yahoo YQL. Native email/ Add any native Obj. C (iPhone) or
address book. Java (Android) module into Titanium
Data Development Tools
Access online / device data, Create, test, and publish your app
embedded SQL database,
filesystem, web services
Monday, April 4, 2011
40. Titanium Fundamentals
• 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)
Monday, April 4, 2011
41. Titanium Javascript API
• 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
Monday, April 4, 2011
42. Titanium UI Composition
• A single window or stack of windows
• Tab Group containing many windows
• Windows contain views
Monday, April 4, 2011
48. Q&A
Thanks for listening!
Andrew Lombardi
Owner, Tech Evangelist
Mystic Coders, LLC
andrew AT mysticcoders DOT com
kinabalu @ irc://irc.freenode.net - ##wicket, ##java
Monday, April 4, 2011