SlideShare ist ein Scribd-Unternehmen logo
1 von 44
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
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
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

Weitere ähnliche Inhalte

Was ist angesagt?

Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App Development
Chris Morrell
 

Was ist angesagt? (20)

Bp209
Bp209Bp209
Bp209
 
Use Ionic Framework to develop mobile application
Use Ionic Framework to develop mobile applicationUse Ionic Framework to develop mobile application
Use Ionic Framework to develop mobile application
 
Progressive Web Apps –The Future of Apps
Progressive Web Apps –The Future of Apps   Progressive Web Apps –The Future of Apps
Progressive Web Apps –The Future of Apps
 
Hybrid vs. Native app - Ionic Framework with AngularJS
Hybrid vs. Native app - Ionic Framework with AngularJSHybrid vs. Native app - Ionic Framework with AngularJS
Hybrid vs. Native app - Ionic Framework with AngularJS
 
Creating personalized cross platform mobile apps with the Sitecore Mobile SDK
Creating personalized cross platform mobile apps with the Sitecore Mobile SDKCreating personalized cross platform mobile apps with the Sitecore Mobile SDK
Creating personalized cross platform mobile apps with the Sitecore Mobile SDK
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App Development
 
Hybrid mobile apps
Hybrid mobile appsHybrid mobile apps
Hybrid mobile apps
 
Hybrid Mobile Development with Apache Cordova,AngularJs and ionic
Hybrid Mobile Development with Apache Cordova,AngularJs and ionicHybrid Mobile Development with Apache Cordova,AngularJs and ionic
Hybrid Mobile Development with Apache Cordova,AngularJs and ionic
 
Introduction to Hybrid Application Development
Introduction to Hybrid Application DevelopmentIntroduction to Hybrid Application Development
Introduction to Hybrid Application Development
 
Hybrid Apps with Angular & Ionic Framework
Hybrid Apps with Angular & Ionic FrameworkHybrid Apps with Angular & Ionic Framework
Hybrid Apps with Angular & Ionic Framework
 
Mobile (App) Development with Sitecore
Mobile (App) Development with SitecoreMobile (App) Development with Sitecore
Mobile (App) Development with Sitecore
 
Ionic - Revolutionizing Hybrid Mobile Application Development
Ionic - Revolutionizing Hybrid Mobile Application DevelopmentIonic - Revolutionizing Hybrid Mobile Application Development
Ionic - Revolutionizing Hybrid Mobile Application Development
 
JQuery Mobile vs Appcelerator Titanium vs Sencha Touch
JQuery Mobile vs Appcelerator Titanium vs Sencha TouchJQuery Mobile vs Appcelerator Titanium vs Sencha Touch
JQuery Mobile vs Appcelerator Titanium vs Sencha Touch
 
Web Development Presentation
Web Development PresentationWeb Development Presentation
Web Development Presentation
 
Scaling Microsites for the Enterprise with Drupal Gardens
Scaling Microsites for the Enterprise with Drupal GardensScaling Microsites for the Enterprise with Drupal Gardens
Scaling Microsites for the Enterprise with Drupal Gardens
 
Introduction to hybrid application development
Introduction to hybrid application developmentIntroduction to hybrid application development
Introduction to hybrid application development
 
Intro Angular Ionic
Intro Angular Ionic Intro Angular Ionic
Intro Angular Ionic
 
Xamarin COE by Mukteswar Patnaik
Xamarin COE by Mukteswar PatnaikXamarin COE by Mukteswar Patnaik
Xamarin COE by Mukteswar Patnaik
 
Ionic - Hybrid Mobile Application Framework
Ionic - Hybrid Mobile Application FrameworkIonic - Hybrid Mobile Application Framework
Ionic - Hybrid Mobile Application Framework
 
Creating mobile apps - an introduction to Ionic (Engage 2016)
Creating mobile apps - an introduction to Ionic (Engage 2016)Creating mobile apps - an introduction to Ionic (Engage 2016)
Creating mobile apps - an introduction to Ionic (Engage 2016)
 

Andere mochten auch

Latest Trends in Web Technologies
Latest Trends in Web TechnologiesLatest Trends in Web Technologies
Latest Trends in Web Technologies
bryanbibat
 
Wireless communication & adhoc networks
Wireless communication & adhoc networksWireless communication & adhoc networks
Wireless communication & adhoc networks
Salahuddin Jokhio
 
Operating system and its function
Operating system and its functionOperating system and its function
Operating system and its function
Nikhi Jain
 
Operating system.ppt (1)
Operating system.ppt (1)Operating system.ppt (1)
Operating system.ppt (1)
Vaibhav Bajaj
 
Object Oriented Programming Concepts
Object Oriented Programming ConceptsObject Oriented Programming Concepts
Object Oriented Programming Concepts
thinkphp
 
Network Hardware And Software
Network Hardware And SoftwareNetwork Hardware And Software
Network Hardware And Software
Steven Cahill
 
Digital communication systems
Digital communication systemsDigital communication systems
Digital communication systems
Nisreen Bashar
 
BASIC CONCEPTS OF COMPUTER NETWORKS
BASIC CONCEPTS OF COMPUTER NETWORKS BASIC CONCEPTS OF COMPUTER NETWORKS
BASIC CONCEPTS OF COMPUTER NETWORKS
Kak Yong
 

Andere mochten auch (20)

Semantic Web Technologies for HCI
Semantic Web Technologies for HCISemantic Web Technologies for HCI
Semantic Web Technologies for HCI
 
Digital data communications
Digital data communicationsDigital data communications
Digital data communications
 
Networking Hardware Concepts
Networking Hardware ConceptsNetworking Hardware Concepts
Networking Hardware Concepts
 
Types of computer networks
Types of computer networksTypes of computer networks
Types of computer networks
 
Mobile wireless-networks
Mobile wireless-networksMobile wireless-networks
Mobile wireless-networks
 
Latest Trends in Web Technologies
Latest Trends in Web TechnologiesLatest Trends in Web Technologies
Latest Trends in Web Technologies
 
Wireless communication & adhoc networks
Wireless communication & adhoc networksWireless communication & adhoc networks
Wireless communication & adhoc networks
 
Internet Technology and its Applications
Internet Technology and its ApplicationsInternet Technology and its Applications
Internet Technology and its Applications
 
Mobile Computing I-Unit Notes
Mobile Computing I-Unit NotesMobile Computing I-Unit Notes
Mobile Computing I-Unit Notes
 
20. Object-Oriented Programming Fundamental Principles
20. Object-Oriented Programming Fundamental Principles20. Object-Oriented Programming Fundamental Principles
20. Object-Oriented Programming Fundamental Principles
 
Operating system and its function
Operating system and its functionOperating system and its function
Operating system and its function
 
Network Security
Network SecurityNetwork Security
Network Security
 
Operating system.ppt (1)
Operating system.ppt (1)Operating system.ppt (1)
Operating system.ppt (1)
 
Object Oriented Programming Concepts
Object Oriented Programming ConceptsObject Oriented Programming Concepts
Object Oriented Programming Concepts
 
Network Hardware And Software
Network Hardware And SoftwareNetwork Hardware And Software
Network Hardware And Software
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to java
 
Computer hardware and networking components
Computer hardware and networking componentsComputer hardware and networking components
Computer hardware and networking components
 
Digital communication systems
Digital communication systemsDigital communication systems
Digital communication systems
 
Computer networking devices
Computer networking devicesComputer networking devices
Computer networking devices
 
BASIC CONCEPTS OF COMPUTER NETWORKS
BASIC CONCEPTS OF COMPUTER NETWORKS BASIC CONCEPTS OF COMPUTER NETWORKS
BASIC CONCEPTS OF COMPUTER NETWORKS
 

Ähnlich wie Open Source World : Using Web Technologies to build native iPhone and Android applications

iPhone/iPad Development with Titanium
iPhone/iPad Development with TitaniumiPhone/iPad Development with Titanium
iPhone/iPad Development with Titanium
Axway Appcelerator
 
Modeveast Appcelerator Presentation
Modeveast Appcelerator PresentationModeveast Appcelerator Presentation
Modeveast Appcelerator Presentation
Aaron Saunders
 
Google Developer Group(GDG) DevFest Event 2012 Android talk
Google Developer Group(GDG) DevFest Event 2012 Android talkGoogle Developer Group(GDG) DevFest Event 2012 Android talk
Google Developer Group(GDG) DevFest Event 2012 Android talk
Imam Raza
 
Appcelerator Corporate Overview
Appcelerator Corporate OverviewAppcelerator Corporate Overview
Appcelerator Corporate Overview
sschwarzhoff
 
CURRICULUM VITAE
CURRICULUM VITAECURRICULUM VITAE
CURRICULUM VITAE
Vicky Kumar
 

Ähnlich wie Open Source World : Using Web Technologies to build native iPhone and Android applications (20)

Mountain View July JavaScript Meetup at Google
Mountain View July JavaScript Meetup at GoogleMountain View July JavaScript Meetup at Google
Mountain View July JavaScript Meetup at Google
 
iPhone and the Enterprise
iPhone and the EnterpriseiPhone and the Enterprise
iPhone and the Enterprise
 
July iPhone Business Meetup
July iPhone Business MeetupJuly iPhone Business Meetup
July iPhone Business Meetup
 
Mobile for the rest of us
Mobile for the rest of usMobile for the rest of us
Mobile for the rest of us
 
Mobile 2.0 Event: Mobile for the rest of us using Appcelerator Titanium
Mobile 2.0 Event: Mobile for the rest of us using Appcelerator TitaniumMobile 2.0 Event: Mobile for the rest of us using Appcelerator Titanium
Mobile 2.0 Event: Mobile for the rest of us using Appcelerator Titanium
 
Appcelerator Titanium at Mobile 2.0
Appcelerator Titanium at Mobile 2.0Appcelerator Titanium at Mobile 2.0
Appcelerator Titanium at Mobile 2.0
 
iPhone/iPad Development with Titanium
iPhone/iPad Development with TitaniumiPhone/iPad Development with Titanium
iPhone/iPad Development with Titanium
 
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CA
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CAAppcelerator iPhone/iPad Dev Con 2010 San Diego, CA
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CA
 
Introducing Titanium
Introducing TitaniumIntroducing Titanium
Introducing Titanium
 
CommNexus San Diego Presentation
CommNexus San Diego PresentationCommNexus San Diego Presentation
CommNexus San Diego Presentation
 
Solving Enteprise Mobility Considerations with Telerik Mobile Platform
Solving Enteprise Mobility Considerations with Telerik Mobile PlatformSolving Enteprise Mobility Considerations with Telerik Mobile Platform
Solving Enteprise Mobility Considerations with Telerik Mobile Platform
 
Titanium Overview (Mobile March 2011)
Titanium Overview (Mobile March 2011)Titanium Overview (Mobile March 2011)
Titanium Overview (Mobile March 2011)
 
Modeveast Appcelerator Presentation
Modeveast Appcelerator PresentationModeveast Appcelerator Presentation
Modeveast Appcelerator Presentation
 
Appcelerator Overview
Appcelerator OverviewAppcelerator Overview
Appcelerator Overview
 
Introducting Titanium Mobile
Introducting Titanium MobileIntroducting Titanium Mobile
Introducting Titanium Mobile
 
DFW Wordpress February Meetup - Appcelerator Titanium
DFW Wordpress February Meetup  - Appcelerator TitaniumDFW Wordpress February Meetup  - Appcelerator Titanium
DFW Wordpress February Meetup - Appcelerator Titanium
 
Keynote: Techday7 appcelerator titanium
Keynote: Techday7 appcelerator titaniumKeynote: Techday7 appcelerator titanium
Keynote: Techday7 appcelerator titanium
 
Google Developer Group(GDG) DevFest Event 2012 Android talk
Google Developer Group(GDG) DevFest Event 2012 Android talkGoogle Developer Group(GDG) DevFest Event 2012 Android talk
Google Developer Group(GDG) DevFest Event 2012 Android talk
 
Appcelerator Corporate Overview
Appcelerator Corporate OverviewAppcelerator Corporate Overview
Appcelerator Corporate Overview
 
CURRICULUM VITAE
CURRICULUM VITAECURRICULUM VITAE
CURRICULUM VITAE
 

Mehr von Jeff Haynie

Mehr von Jeff Haynie (20)

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

Kürzlich hochgeladen

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Kürzlich hochgeladen (20)

Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 

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
  • 12.
  • 13.
  • 14.
  • 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
  • 17.
  • 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