SlideShare uma empresa Scribd logo
1 de 48
Baixar para ler offline
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
Monday, April 4, 2011
11 Years in business




Monday, April 4, 2011
11 Years in business
    Software Consultants




Monday, April 4, 2011
11 Years in business
    Software Consultants
    International Speaker




Monday, April 4, 2011
11 Years in business
    Software Consultants
    International Speaker
    Training




Monday, April 4, 2011
11 Years in business
    Software Consultants
    International Speaker
    Training
    Apache Wicket Contributor




Monday, April 4, 2011
11 Years in business
    Software Consultants
    International Speaker
    Training
    Apache Wicket Contributor

    iPhone Developer (Obj-C / JavaScript)




Monday, April 4, 2011
11 Years in business
    Software Consultants
    International Speaker
    Training
    Apache Wicket Contributor

    iPhone Developer (Obj-C / JavaScript)

                              To our success!


Monday, April 4, 2011
Monday, April 4, 2011
Monday, April 4, 2011
Monday, April 4, 2011
Tried learning Objective-C




Monday, April 4, 2011
Appcelerator Titanium
                          http://www.appcelerator.com/




Monday, April 4, 2011
Sunshine! Blue Skies!
Monday, April 4, 2011
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
What we’ll cover




Monday, April 4, 2011
What we’ll cover

               1. The Setup




Monday, April 4, 2011
What we’ll cover

               1. The Setup
               2. Platform Overview




Monday, April 4, 2011
What we’ll cover

               1. The Setup
               2. Platform Overview
               3. Supported Modules




Monday, April 4, 2011
What we’ll cover

               1. The Setup
               2. Platform Overview
               3. Supported Modules
               4. Demos




Monday, April 4, 2011
The Setup

Monday, April 4, 2011
1. Download iOS SDK - http://developer.apple.com




Monday, April 4, 2011
Monday, April 4, 2011
Pay the




Monday, April 4, 2011
Pay the

Apple
Monday, April 4, 2011
Pay the

Apple
 Tax
Monday, April 4, 2011
Pay the

Apple
     $99
 Tax USD
Monday, April 4, 2011
2. Download:   http://www.appcelerator.com/products/download/




Monday, April 4, 2011
License?

        • Apache 2.0 Licensed
        • Commercial training and support services
          available
        • Core SDK - free and open source




Monday, April 4, 2011
What is it good for?


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




Monday, April 4, 2011
Mobile Architecture




Monday, April 4, 2011
Training




                        http://developer.appcelerator.com/training




Monday, April 4, 2011
Titanium Plus




Monday, April 4, 2011
Titanium Developer

     • Manage and run Titanium
       applications
     • Package applications for
       distribution
     • Run on a device for testing
     • Manage Appcelerator account




Monday, April 4, 2011
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
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
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
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
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
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
Titanium UI Composition




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




Monday, April 4, 2011
O !
                        DEM
Monday, April 4, 2011
More websites for
                                       E S
                        Titanium knowledge
                                     C
                            U R
  E SO
R
Monday, April 4, 2011
New Semantic Tags (more)


                                              General

             Homepage: http://www.appcelerator.com



             Twitter: @appcelerator



             IRC: #twitter_app



             Source: http://github.com/appcelerator




Monday, April 4, 2011
Monday, April 4, 2011
Titanium
                         Rocks!!




Monday, April 4, 2011
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

Mais conteúdo relacionado

Destaque (6)

Momads explained @ Brave New Radio
Momads explained @ Brave New RadioMomads explained @ Brave New Radio
Momads explained @ Brave New Radio
 
AObench with Emscripten
AObench with EmscriptenAObench with Emscripten
AObench with Emscripten
 
Cloud4all Architecture Overview
Cloud4all Architecture OverviewCloud4all Architecture Overview
Cloud4all Architecture Overview
 
Buildout talk
Buildout talkBuildout talk
Buildout talk
 
Call for Gunslingers to tame Mobzilla
Call for Gunslingers to tame MobzillaCall for Gunslingers to tame Mobzilla
Call for Gunslingers to tame Mobzilla
 
Routeyou mobile presentation
Routeyou mobile presentationRouteyou mobile presentation
Routeyou mobile presentation
 

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

Inspiratiemiddag_Vincent_Everts_Finalist generatie_einstein_komt_eraan_07042011
Inspiratiemiddag_Vincent_Everts_Finalist generatie_einstein_komt_eraan_07042011Inspiratiemiddag_Vincent_Everts_Finalist generatie_einstein_komt_eraan_07042011
Inspiratiemiddag_Vincent_Everts_Finalist generatie_einstein_komt_eraan_07042011
Finalist - open IT oplossingen
 
LinkedOpenDataItalia@LAPSI-Primer-Milan-2011
LinkedOpenDataItalia@LAPSI-Primer-Milan-2011LinkedOpenDataItalia@LAPSI-Primer-Milan-2011
LinkedOpenDataItalia@LAPSI-Primer-Milan-2011
Christian Morbidoni
 

Semelhante a Using+javascript+to+build+native+i os+applications (20)

Node js techtalksto
Node js techtalkstoNode js techtalksto
Node js techtalksto
 
HTML5 and jQuery for Flex Developers
HTML5 and jQuery for Flex DevelopersHTML5 and jQuery for Flex Developers
HTML5 and jQuery for Flex Developers
 
OTA WIreless Deployment
OTA WIreless DeploymentOTA WIreless Deployment
OTA WIreless Deployment
 
Beyond Page Objects
Beyond Page ObjectsBeyond Page Objects
Beyond Page Objects
 
Namesmatter
NamesmatterNamesmatter
Namesmatter
 
The Dark Depths of iOS [CodeMash 2011]
The Dark Depths of iOS [CodeMash 2011]The Dark Depths of iOS [CodeMash 2011]
The Dark Depths of iOS [CodeMash 2011]
 
Adobe AIR Overview
Adobe AIR OverviewAdobe AIR Overview
Adobe AIR Overview
 
Intro to Micro-frameworks
Intro to Micro-frameworksIntro to Micro-frameworks
Intro to Micro-frameworks
 
Flash and Flex in an HTML5 / App Store World
Flash and Flex in an HTML5 / App Store WorldFlash and Flex in an HTML5 / App Store World
Flash and Flex in an HTML5 / App Store World
 
Using JavaScript for Mobile Development
Using JavaScript for Mobile DevelopmentUsing JavaScript for Mobile Development
Using JavaScript for Mobile Development
 
iPhone App from concept to product
iPhone App from concept to productiPhone App from concept to product
iPhone App from concept to product
 
Introduction to Cloud Computing
Introduction to Cloud ComputingIntroduction to Cloud Computing
Introduction to Cloud Computing
 
Einstein finalist.nl
Einstein finalist.nlEinstein finalist.nl
Einstein finalist.nl
 
Inspiratiemiddag_Vincent_Everts_Finalist generatie_einstein_komt_eraan_07042011
Inspiratiemiddag_Vincent_Everts_Finalist generatie_einstein_komt_eraan_07042011Inspiratiemiddag_Vincent_Everts_Finalist generatie_einstein_komt_eraan_07042011
Inspiratiemiddag_Vincent_Everts_Finalist generatie_einstein_komt_eraan_07042011
 
Atlassian RoadTrip 2011 Slide Deck
Atlassian RoadTrip 2011 Slide DeckAtlassian RoadTrip 2011 Slide Deck
Atlassian RoadTrip 2011 Slide Deck
 
LinkedOpenDataItalia@LAPSI-Primer-Milan-2011
LinkedOpenDataItalia@LAPSI-Primer-Milan-2011LinkedOpenDataItalia@LAPSI-Primer-Milan-2011
LinkedOpenDataItalia@LAPSI-Primer-Milan-2011
 
LinkedOpenDataItalia@LAPSI-Primer-Milano-2011
LinkedOpenDataItalia@LAPSI-Primer-Milano-2011LinkedOpenDataItalia@LAPSI-Primer-Milano-2011
LinkedOpenDataItalia@LAPSI-Primer-Milano-2011
 
iDW資料(110424)
iDW資料(110424)iDW資料(110424)
iDW資料(110424)
 
DevOps Introduction @Cegeka
DevOps Introduction @CegekaDevOps Introduction @Cegeka
DevOps Introduction @Cegeka
 
Railsify your web development
Railsify your web developmentRailsify your web development
Railsify your web development
 

Último

Último (20)

Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
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
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
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
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
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
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

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

  • 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
  • 3. 11 Years in business 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
  • 14. Appcelerator Titanium http://www.appcelerator.com/ 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
  • 17. What we’ll cover Monday, April 4, 2011
  • 18. What we’ll cover 1. The Setup Monday, April 4, 2011
  • 19. What we’ll cover 1. The Setup 2. Platform Overview Monday, April 4, 2011
  • 20. What we’ll cover 1. The Setup 2. Platform Overview 3. Supported Modules Monday, April 4, 2011
  • 21. What we’ll cover 1. The Setup 2. Platform Overview 3. Supported Modules 4. Demos Monday, April 4, 2011
  • 23. 1. Download iOS SDK - http://developer.apple.com Monday, April 4, 2011
  • 27. Pay the Apple Tax Monday, April 4, 2011
  • 28. Pay the Apple $99 Tax USD Monday, April 4, 2011
  • 29. 2. Download: http://www.appcelerator.com/products/download/ Monday, April 4, 2011
  • 30. License? • Apache 2.0 Licensed • Commercial training and support services available • Core SDK - free and open source Monday, April 4, 2011
  • 31. What is it good for? • Data-driven web service clients • Web service mash-ups • Social utilities • Casual games Monday, April 4, 2011
  • 33. Training http://developer.appcelerator.com/training 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
  • 43. O ! DEM Monday, April 4, 2011
  • 44. More websites for E S Titanium knowledge C U R E SO R Monday, April 4, 2011
  • 45. New Semantic Tags (more) General Homepage: http://www.appcelerator.com Twitter: @appcelerator IRC: #twitter_app Source: http://github.com/appcelerator Monday, April 4, 2011
  • 47. Titanium Rocks!! 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