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
Open Source World : Using Web Technologies to build native iPhone and Android applications
Open Source World : Using Web Technologies to build native iPhone and Android applications
Open Source World : Using Web Technologies to build native iPhone and 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
Open Source World : Using Web Technologies to build native iPhone and 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
Open Source World : Using Web Technologies to build native iPhone and Android applications

More Related Content

PDF
Java Edge.2008.Web.Frameworks.Catagorized
ODP
The Autonomo.us Open Software Services Evolution, featuring Identi.ca
PDF
Android Development...Using Web Technologies
PDF
Build Consumer Apps Using Mobile SDK and Ionic Framework
PPT
Training on webwroks1
PPT
SD Forum Java SIG - Service Oriented UI Architecture
PPTX
Case study: integrating azure with google app engine
PDF
Building Mobile Apps with Cordova , AngularJS and Ionic
Java Edge.2008.Web.Frameworks.Catagorized
The Autonomo.us Open Software Services Evolution, featuring Identi.ca
Android Development...Using Web Technologies
Build Consumer Apps Using Mobile SDK and Ionic Framework
Training on webwroks1
SD Forum Java SIG - Service Oriented UI Architecture
Case study: integrating azure with google app engine
Building Mobile Apps with Cordova , AngularJS and Ionic

What's hot (20)

ODP
ODP
Use Ionic Framework to develop mobile application
PDF
Progressive Web Apps –The Future of Apps
PPTX
Hybrid vs. Native app - Ionic Framework with AngularJS
PPTX
Creating personalized cross platform mobile apps with the Sitecore Mobile SDK
PDF
Mobile App Development
PDF
Hybrid mobile apps
PPTX
Hybrid Mobile Development with Apache Cordova,AngularJs and ionic
PPTX
Introduction to Hybrid Application Development
PDF
Hybrid Apps with Angular & Ionic Framework
PPTX
Mobile (App) Development with Sitecore
PDF
Ionic - Revolutionizing Hybrid Mobile Application Development
PPT
JQuery Mobile vs Appcelerator Titanium vs Sencha Touch
PDF
Web Development Presentation
PDF
Scaling Microsites for the Enterprise with Drupal Gardens
PPTX
Introduction to hybrid application development
PDF
Intro Angular Ionic
PPTX
Xamarin COE by Mukteswar Patnaik
PPTX
Ionic - Hybrid Mobile Application Framework
PDF
Creating mobile apps - an introduction to Ionic (Engage 2016)
Use Ionic Framework to develop mobile application
Progressive Web Apps –The Future of Apps
Hybrid vs. Native app - Ionic Framework with AngularJS
Creating personalized cross platform mobile apps with the Sitecore Mobile SDK
Mobile App Development
Hybrid mobile apps
Hybrid Mobile Development with Apache Cordova,AngularJs and ionic
Introduction to Hybrid Application Development
Hybrid Apps with Angular & Ionic Framework
Mobile (App) Development with Sitecore
Ionic - Revolutionizing Hybrid Mobile Application Development
JQuery Mobile vs Appcelerator Titanium vs Sencha Touch
Web Development Presentation
Scaling Microsites for the Enterprise with Drupal Gardens
Introduction to hybrid application development
Intro Angular Ionic
Xamarin COE by Mukteswar Patnaik
Ionic - Hybrid Mobile Application Framework
Creating mobile apps - an introduction to Ionic (Engage 2016)
Ad

Viewers also liked (20)

PDF
Semantic Web Technologies for HCI
PDF
Digital data communications
PPTX
Networking Hardware Concepts
PPTX
Types of computer networks
PDF
Mobile wireless-networks
PDF
Latest Trends in Web Technologies
PPTX
Wireless communication & adhoc networks
PPT
Internet Technology and its Applications
DOC
Mobile Computing I-Unit Notes
PPT
20. Object-Oriented Programming Fundamental Principles
PPTX
Operating system and its function
PPT
Network Security
PPT
Operating system.ppt (1)
PPT
Object Oriented Programming Concepts
PPTX
Network Hardware And Software
PPTX
Introduction to java
PPT
Computer hardware and networking components
PDF
Digital communication systems
PPTX
Computer networking devices
PPT
BASIC CONCEPTS OF COMPUTER NETWORKS
Semantic Web Technologies for HCI
Digital data communications
Networking Hardware Concepts
Types of computer networks
Mobile wireless-networks
Latest Trends in Web Technologies
Wireless communication & adhoc networks
Internet Technology and its Applications
Mobile Computing I-Unit Notes
20. Object-Oriented Programming Fundamental Principles
Operating system and its function
Network Security
Operating system.ppt (1)
Object Oriented Programming Concepts
Network Hardware And Software
Introduction to java
Computer hardware and networking components
Digital communication systems
Computer networking devices
BASIC CONCEPTS OF COMPUTER NETWORKS
Ad

Similar to Open Source World : Using Web Technologies to build native iPhone and 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
ZIP
Mobile for the rest of us
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
PDF
Appcelerator Overview
ZIP
Introducting Titanium Mobile
KEY
DFW Wordpress February Meetup - Appcelerator Titanium
PPTX
Keynote: Techday7 appcelerator titanium
PPTX
Google Developer Group(GDG) DevFest Event 2012 Android talk
PPT
Appcelerator Corporate Overview
DOCX
CURRICULUM VITAE
Mountain View July JavaScript Meetup at Google
iPhone and the Enterprise
July iPhone Business Meetup
Appcelerator Titanium at Mobile 2.0
Mobile for the rest of us
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
Appcelerator Overview
Introducting Titanium Mobile
DFW Wordpress February Meetup - Appcelerator Titanium
Keynote: Techday7 appcelerator titanium
Google Developer Group(GDG) DevFest Event 2012 Android talk
Appcelerator Corporate Overview
CURRICULUM VITAE

More from Jeff Haynie (20)

PDF
How to build great teams
PPTX
#Startup lessons
PPTX
TiConf NYC 2014
PPTX
Ti AppCamp 2 : Atlanta
PPTX
TiConf Australia 2013
PPTX
Titanium Conf Baltimore Keynote 2013
PPTX
TiConf.eu -- Titanium Developer Conference in Europe, 2013
PPTX
TiTokyo conference in Tokyo, Japan for Appcelerator community (日本)
PPTX
TiTokyo conference in Tokyo, Japan for Appcelerator community
PPTX
Mobile Monday Hamburg, Germany
PPTX
Mobile Developer Conference 2012 Hamburg, Germany Keynote
PPTX
SoCon 12 : Where are you in your mobile maturity?
KEY
Building a sustainable, cross-platform mobile application strategy - SoCon 20...
PDF
What's great in Appcelerator Titanium 0.8
KEY
The Mobile Opportunity
KEY
Shotput Ventures - Building startups are hard work
PDF
Developing Desktop Applications using HTML and Javascript
PPT
SoCon09 Keynote - Jeff Haynie
PPT
Ajaxworld March 2008 - Jeff Haynie Keynote - Appcelerator
PPT
SoCon 08 Opening Presentation by Jeff Haynie
How to build great teams
#Startup lessons
TiConf NYC 2014
Ti AppCamp 2 : Atlanta
TiConf Australia 2013
Titanium Conf Baltimore Keynote 2013
TiConf.eu -- Titanium Developer Conference in Europe, 2013
TiTokyo conference in Tokyo, Japan for Appcelerator community (日本)
TiTokyo conference in Tokyo, Japan for Appcelerator community
Mobile Monday Hamburg, Germany
Mobile Developer Conference 2012 Hamburg, Germany Keynote
SoCon 12 : Where are you in your mobile maturity?
Building a sustainable, cross-platform mobile application strategy - SoCon 20...
What's great in Appcelerator Titanium 0.8
The Mobile Opportunity
Shotput Ventures - Building startups are hard work
Developing Desktop Applications using HTML and Javascript
SoCon09 Keynote - Jeff Haynie
Ajaxworld March 2008 - Jeff Haynie Keynote - Appcelerator
SoCon 08 Opening Presentation by Jeff Haynie

Recently uploaded (20)

PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPT
Teaching material agriculture food technology
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Encapsulation theory and applications.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
Cloud computing and distributed systems.
PDF
KodekX | Application Modernization Development
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Approach and Philosophy of On baking technology
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Teaching material agriculture food technology
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Encapsulation theory and applications.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
Digital-Transformation-Roadmap-for-Companies.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Spectral efficient network and resource selection model in 5G networks
Understanding_Digital_Forensics_Presentation.pptx
Cloud computing and distributed systems.
KodekX | Application Modernization Development
20250228 LYD VKU AI Blended-Learning.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
NewMind AI Monthly Chronicles - July 2025
Approach and Philosophy of On baking technology
Mobile App Security Testing_ A Comprehensive Guide.pdf

Open Source World : Using Web Technologies to build native iPhone and 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