SlideShare a Scribd company logo
Using Web Technologies to Build Native iPhone
          and Android Applications


      Mobile for the rest of us
                 Jeff Haynie
                  @jhaynie
About Me

• @jhaynie
• http://blog.jeffhaynie.us
• jhaynie@appcelerator.com
• #titanium_app on freenode
Why Mobile?


4 Billion devices worldwide
iPhone
• 50 Million iPhones - 5 Million this past
  quarter
• 1.5 Billions application downloads
• 65K+ applications
• iPhone has raised bar and proven how to
  make money in mobile
Android

• 1M phones already shipping (900% growth
  expected)
• 20 new phones coming out EY 2009
• Thousands and thousands of applications
• It’s Google
iPhone: 8% market share but 43% of mobile web
Explosion of
       opportunities

20% year over year growth anticipated for
next 5 years in smart phones
Oh no.
• iPhone (Objective-C, 28th!)
• Android (Java, Google Style)
• RIM (Java, Blackberry or Midlet style)
• Symbian (old school C)
• Palm Pre (Web 2.0)
• Windows Mobile (.NET compact)
• Maemo (GTK+)
Oh, yeah...
• Web Browsers
• Desktop Apps
• Net books
• E-Book readers
• Tablets
• etc etc.
We                Web
• HTML, CSS, JavaScript
• Presentation / UI can easily be built with
  HTML/ CSS
• JavaScript API for mobile features, platform,
  UI
• Run locally, integrate cloud services
It’s the UX

Build applications that fit the
use cases that are tailored for
the modality
Using Web Technologies to Build Native iPhone & Android Applications
Using Web Technologies to Build Native iPhone & Android Applications
Using Web Technologies to Build Native iPhone & Android Applications
What we want
• Skills
• Tools
• Reusability
• Platforms
• Portability
• Speed / Cost
• Open source / Standards
Appcelerator

Empower developers to quickly create and
commercialize web, desktop and mobile
applications
Using Web Technologies to Build Native iPhone & Android Applications
Appcelerator Products
        Create, test, and commercialize native mobile and desktop
        applications with the web technologies you use today.




Develop Native iPhone   Build Desktop apps      Cloud services used for   Web development tools
and Android apps with   that can be deployed    testing, packaging,       that enable rapid RIA
full access to each     with one code base on   distribution, and         development.
device’s APIs.          the PC, Mac, or Linux   analytics.
                        platforms.
Product Architecture
                             Mobile                                        Desktop
Titanium




                           Advanced                      Advanced                           Advanced APIs
                             APIs                          APIs




               Analytics              Advertising      Social Networking    Team Collaboration
Appcelerator




                                         -  uattro
                                          Q                   -  acebook
                                                               F               -  hare your Project
                                                                                S
                - Usage
  Network




                                       -  reystripe
                                        G                      - Twitter     - Account Management
                - Events
                                                                -  ahoo
                                                                 Y


                                                      Training
                                                      Support
Titanium

• Desktop: Win32, OSX, Linux
• Mobile: iPhone and Android
Programming Model

Titanium supports JavaScript, HTML, CSS for
building mobile applications
UI

• Clean separation of Design from Code
• UI is constructed via HTML, CSS
• JavaScript access to create native controls,
  native views, windows, etc.
JavaScript
• JavaScript is used to program Mobile
  Features, Access local Resources,
  Database, Remote Web Services, etc.
• Use your favorite JS Toolkit - jQuery,YUI,
  Dojo, Mootools, etc etc.
App Assembly

Titanium SDK compiles (using Titanium
Developer) the application using the Mobile
SDK into a native application
Mobile APIs

                Geolocation
Accelerometer
                 Gesture
   Analytics
                  Media
      App
                 Network
  Database
                 Platform
  Filesystem
                    UI
Building the UI

• <html> accepted here (including HTML5)
• optimized native UI controls
• hybrid UI composition
Typical iPhone UI
Typical Android UI
<html>
Native UI views
Grouped View   Table View
Composite UI
Simple APIs
Titanium.UI.setTabBadge(10)




 Titanium.UI.createMenu()
Grouped View Example


var groupedView = Titanium.UI.iPhone.createGroupedView();
groupedView.addSection(optionSection);
groupedView.addSection(buttonSection);
groupedView.addSection(inputSection);
groupedView.open({animated:true});
Button Group Section
var   optionData = [
      {title:'Option 1', selected:true},
      {title:'Option 2'},
      {title:'Option 3'}  
];

var optionSection =
Titanium.UI.iPhone.createGroupedSection({header:'Option
Group', type:'option', data:optionData});

optionSection.addEventListener('click',function(e)
{
});
Input Group Section

     var inputData = [
      {title:'Input 1',
       input:switchInstance, image:'iTunes.png'},
      {title:'Sound', input:sliderInstance, image:'Mail.png'},
      {title:'Name', input:textInstance},
      {title:'Input 2', value:'foo', hasChild:true},
      {title:'Input 3'}  
];

var inputSection =
Titanium.UI.iPhone.createGroupedSection({header:'Input
Group', type:'input', data:inputData});
inputSection.addEventListener('click',function(e)
{
});
Native UI Controls
• Toolbars
• Tab Bars
• Status Bars
• Dialogs
• Controls
Native UI (Android)
Databases

var db = Titanium.Database.open('mydb');
db.execute('INSERT INTO DATABASETEST (ID,   NAME ) VALUES(?,?)',
1,'Name 1');
db.execute('INSERT INTO DATABASETEST (ID,   NAME ) VALUES(?,?)',
2,'Name 2');
db.execute('INSERT INTO DATABASETEST (ID,   NAME ) VALUES(?,?)',
3,'Name 3');
db.execute('INSERT INTO DATABASETEST (ID,   NAME ) VALUES(?,?)',
4,'Name 4');
Camera

Titanium.Media.showCamera(
{
    success:function(image,details)
    {
        $("status").innerHTML="Uploading...."+image.url;
    }
});
Video
var video = Titanium.Media.
createVideoPlayer({ contentURL : "movie.mp4"});

var listenerId = video.addEventListener("complete", function()
{
   video.removeEventListener('complete', listenerId);
   var dlg = Titanium.UI.createAlertDialog({
    'title' : 'Video Complete',
    'message' : 'video completed',
    'buttonNames' : [ 'OK' ]
   });
   dlg.show();
});
video.play();
Gestures
function onShake()
{
   document.getElementById("status").innerHTML = 'Stop
Shaking me';  

}

var listenerId = Titanium.Gesture.addEventListener("shake",
onShake);
Accelerometer

Titanium.Accelerometer.addEventListener('update',function(e){

   document.getElementById('x').innerHTML = e.x;
   document.getElementById('y').innerHTML = e.y;
   document.getElementById('z').innerHTML = e.z
});
Titanium Info
• http://www.appcelerator.com
• http://github.com/appcelerator
• @appcelerator
• #titanium_app on irc.freenode.net
• http://slideshare.net/jhaynie
Using Web Technologies to Build Native iPhone & Android Applications

More Related Content

PDF
Appcelerator Overview
KEY
DFW Wordpress February Meetup - Appcelerator Titanium
PDF
ITCamp 2012 - Ovidiu Stan - Social media platform with Telligent Community, W...
PDF
Android industrial mobility
ZIP
Mobile for the rest of us
PPTX
Keynote: Techday7 appcelerator titanium
KEY
HTML5 로 iPhone App 만들기
PDF
Mobile Web Evolution - Rich Mobile Applications and Real-time Web UX
Appcelerator Overview
DFW Wordpress February Meetup - Appcelerator Titanium
ITCamp 2012 - Ovidiu Stan - Social media platform with Telligent Community, W...
Android industrial mobility
Mobile for the rest of us
Keynote: Techday7 appcelerator titanium
HTML5 로 iPhone App 만들기
Mobile Web Evolution - Rich Mobile Applications and Real-time Web UX

Similar to Using Web Technologies to Build Native iPhone & Android Applications (20)

KEY
Mountain View July JavaScript Meetup at Google
ZIP
iPhone and the Enterprise
KEY
July iPhone Business Meetup
KEY
Appcelerator Titanium at Mobile 2.0
KEY
Mobile 2.0 Event: Mobile for the rest of us using Appcelerator Titanium
KEY
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CA
ZIP
iPhone/iPad Development with Titanium
ZIP
Introducing Titanium
KEY
CommNexus San Diego Presentation
PDF
Solving Enteprise Mobility Considerations with Telerik Mobile Platform
PPT
Titanium Overview (Mobile March 2011)
PPTX
Modeveast Appcelerator Presentation
ZIP
Introducting Titanium Mobile
PPTX
Google Developer Group(GDG) DevFest Event 2012 Android talk
PPT
Appcelerator Corporate Overview
DOCX
CURRICULUM VITAE
PPTX
PaaS + Appcelerator = WIN
PDF
Rakshit Pithadia
KEY
Idea to Appstore with Titanium Mobile
PDF
Nokia Developer Offering Series 40
Mountain View July JavaScript Meetup at Google
iPhone and the Enterprise
July iPhone Business Meetup
Appcelerator Titanium at Mobile 2.0
Mobile 2.0 Event: Mobile for the rest of us using Appcelerator Titanium
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CA
iPhone/iPad Development with Titanium
Introducing Titanium
CommNexus San Diego Presentation
Solving Enteprise Mobility Considerations with Telerik Mobile Platform
Titanium Overview (Mobile March 2011)
Modeveast Appcelerator Presentation
Introducting Titanium Mobile
Google Developer Group(GDG) DevFest Event 2012 Android talk
Appcelerator Corporate Overview
CURRICULUM VITAE
PaaS + Appcelerator = WIN
Rakshit Pithadia
Idea to Appstore with Titanium Mobile
Nokia Developer Offering Series 40
Ad

More from Axway Appcelerator (20)

PDF
Axway Appcelerator - Titanium SDK 6.1.0 - Status, Releases & Roadmap
PPTX
2014 Dublin Web Summit by Jeff Haynie
PPTX
Making the Mobile Mind Shift
PPTX
Stop Debating, Start Measuring
PPTX
Mobile & The New Experience Economy (And What it Means for IT)
PPTX
Apps, APIs & Analytics: What "Mobile First" Really Means
PPTX
Appcelerator Presentation Template
PPTX
Codestrong 2012 keynote jonathan rende, appcelerator's vp of products
PPTX
Codestrong 2012 keynote jeff haynie, appcelerator's ceo
PPTX
Codestrong 2012 keynote how to build a top ten app
PPTX
Codestrong 2012 breakout session at&t api platform and trends
PPTX
Codestrong 2012 breakout session what's new in titanium studio
PPTX
Codestrong 2012 breakout session using appcelerator cloud services in your ...
PPTX
Codestrong 2012 breakout session the role of cloud services in your next ge...
PPTX
Codestrong 2012 breakout session new device platform support for titanium
PPTX
Codestrong 2012 breakout session mobile platform and infrastructure
PPTX
Codestrong 2012 breakout session making money on appcelerator's marketplace
PDF
Codestrong 2012 breakout session live multi-platform testing
PPTX
Codestrong 2012 breakout session leveraging titanium as part of your mobile...
PPTX
Codestrong 2012 breakout session i os internals and best practices
Axway Appcelerator - Titanium SDK 6.1.0 - Status, Releases & Roadmap
2014 Dublin Web Summit by Jeff Haynie
Making the Mobile Mind Shift
Stop Debating, Start Measuring
Mobile & The New Experience Economy (And What it Means for IT)
Apps, APIs & Analytics: What "Mobile First" Really Means
Appcelerator Presentation Template
Codestrong 2012 keynote jonathan rende, appcelerator's vp of products
Codestrong 2012 keynote jeff haynie, appcelerator's ceo
Codestrong 2012 keynote how to build a top ten app
Codestrong 2012 breakout session at&t api platform and trends
Codestrong 2012 breakout session what's new in titanium studio
Codestrong 2012 breakout session using appcelerator cloud services in your ...
Codestrong 2012 breakout session the role of cloud services in your next ge...
Codestrong 2012 breakout session new device platform support for titanium
Codestrong 2012 breakout session mobile platform and infrastructure
Codestrong 2012 breakout session making money on appcelerator's marketplace
Codestrong 2012 breakout session live multi-platform testing
Codestrong 2012 breakout session leveraging titanium as part of your mobile...
Codestrong 2012 breakout session i os internals and best practices
Ad

Using Web Technologies to Build Native iPhone & Android Applications

  • 1. Using Web Technologies to Build Native iPhone and Android Applications Mobile for the rest of us Jeff Haynie @jhaynie
  • 2. About Me • @jhaynie • http://blog.jeffhaynie.us • jhaynie@appcelerator.com • #titanium_app on freenode
  • 3. Why Mobile? 4 Billion devices worldwide
  • 4. iPhone • 50 Million iPhones - 5 Million this past quarter • 1.5 Billions application downloads • 65K+ applications • iPhone has raised bar and proven how to make money in mobile
  • 5. Android • 1M phones already shipping (900% growth expected) • 20 new phones coming out EY 2009 • Thousands and thousands of applications • It’s Google
  • 6. iPhone: 8% market share but 43% of mobile web
  • 7. Explosion of opportunities 20% year over year growth anticipated for next 5 years in smart phones
  • 8. Oh no. • iPhone (Objective-C, 28th!) • Android (Java, Google Style) • RIM (Java, Blackberry or Midlet style) • Symbian (old school C) • Palm Pre (Web 2.0) • Windows Mobile (.NET compact) • Maemo (GTK+)
  • 9. Oh, yeah... • Web Browsers • Desktop Apps • Net books • E-Book readers • Tablets • etc etc.
  • 10. We Web • HTML, CSS, JavaScript • Presentation / UI can easily be built with HTML/ CSS • JavaScript API for mobile features, platform, UI • Run locally, integrate cloud services
  • 11. It’s the UX Build applications that fit the use cases that are tailored for the modality
  • 15. What we want • Skills • Tools • Reusability • Platforms • Portability • Speed / Cost • Open source / Standards
  • 16. Appcelerator Empower developers to quickly create and commercialize web, desktop and mobile applications
  • 18. Appcelerator Products Create, test, and commercialize native mobile and desktop applications with the web technologies you use today. Develop Native iPhone Build Desktop apps Cloud services used for Web development tools and Android apps with that can be deployed testing, packaging, that enable rapid RIA full access to each with one code base on distribution, and development. device’s APIs. the PC, Mac, or Linux analytics. platforms.
  • 19. Product Architecture Mobile Desktop Titanium Advanced Advanced Advanced APIs APIs APIs Analytics Advertising Social Networking Team Collaboration Appcelerator -  uattro Q -  acebook F -  hare your Project S - Usage Network -  reystripe G - Twitter - Account Management - Events -  ahoo Y Training Support
  • 20. Titanium • Desktop: Win32, OSX, Linux • Mobile: iPhone and Android
  • 21. Programming Model Titanium supports JavaScript, HTML, CSS for building mobile applications
  • 22. UI • Clean separation of Design from Code • UI is constructed via HTML, CSS • JavaScript access to create native controls, native views, windows, etc.
  • 23. JavaScript • JavaScript is used to program Mobile Features, Access local Resources, Database, Remote Web Services, etc. • Use your favorite JS Toolkit - jQuery,YUI, Dojo, Mootools, etc etc.
  • 24. App Assembly Titanium SDK compiles (using Titanium Developer) the application using the Mobile SDK into a native application
  • 25. Mobile APIs Geolocation Accelerometer Gesture Analytics Media App Network Database Platform Filesystem UI
  • 26. Building the UI • <html> accepted here (including HTML5) • optimized native UI controls • hybrid UI composition
  • 30. Native UI views Grouped View Table View
  • 33. Grouped View Example var groupedView = Titanium.UI.iPhone.createGroupedView(); groupedView.addSection(optionSection); groupedView.addSection(buttonSection); groupedView.addSection(inputSection); groupedView.open({animated:true});
  • 34. Button Group Section var optionData = [     {title:'Option 1', selected:true},     {title:'Option 2'},     {title:'Option 3'}   ]; var optionSection = Titanium.UI.iPhone.createGroupedSection({header:'Option Group', type:'option', data:optionData}); optionSection.addEventListener('click',function(e) { });
  • 35. Input Group Section var inputData = [     {title:'Input 1', input:switchInstance, image:'iTunes.png'},     {title:'Sound', input:sliderInstance, image:'Mail.png'},     {title:'Name', input:textInstance},     {title:'Input 2', value:'foo', hasChild:true},     {title:'Input 3'}   ]; var inputSection = Titanium.UI.iPhone.createGroupedSection({header:'Input Group', type:'input', data:inputData}); inputSection.addEventListener('click',function(e) { });
  • 36. Native UI Controls • Toolbars • Tab Bars • Status Bars • Dialogs • Controls
  • 38. Databases var db = Titanium.Database.open('mydb'); db.execute('INSERT INTO DATABASETEST (ID, NAME ) VALUES(?,?)', 1,'Name 1'); db.execute('INSERT INTO DATABASETEST (ID, NAME ) VALUES(?,?)', 2,'Name 2'); db.execute('INSERT INTO DATABASETEST (ID, NAME ) VALUES(?,?)', 3,'Name 3'); db.execute('INSERT INTO DATABASETEST (ID, NAME ) VALUES(?,?)', 4,'Name 4');
  • 39. Camera Titanium.Media.showCamera( {     success:function(image,details)     {         $("status").innerHTML="Uploading...."+image.url; } });
  • 40. Video var video = Titanium.Media. createVideoPlayer({ contentURL : "movie.mp4"}); var listenerId = video.addEventListener("complete", function() {    video.removeEventListener('complete', listenerId);    var dlg = Titanium.UI.createAlertDialog({     'title' : 'Video Complete',     'message' : 'video completed',     'buttonNames' : [ 'OK' ]    });    dlg.show(); }); video.play();
  • 41. Gestures function onShake() {    document.getElementById("status").innerHTML = 'Stop Shaking me';   } var listenerId = Titanium.Gesture.addEventListener("shake", onShake);
  • 42. Accelerometer Titanium.Accelerometer.addEventListener('update',function(e){    document.getElementById('x').innerHTML = e.x;    document.getElementById('y').innerHTML = e.y;    document.getElementById('z').innerHTML = e.z });
  • 43. Titanium Info • http://www.appcelerator.com • http://github.com/appcelerator • @appcelerator • #titanium_app on irc.freenode.net • http://slideshare.net/jhaynie

Editor's Notes