SlideShare a Scribd company logo
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

More Related Content

Viewers also liked

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

Viewers also liked (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
 

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

Node js techtalksto
Node js techtalkstoNode js techtalksto
Node js techtalksto
Jason Diller
 
HTML5 and jQuery for Flex Developers
HTML5 and jQuery for Flex DevelopersHTML5 and jQuery for Flex Developers
HTML5 and jQuery for Flex Developers
Ryan Stewart
 
OTA WIreless Deployment
OTA WIreless DeploymentOTA WIreless Deployment
OTA WIreless Deployment
alekseyn
 
Beyond Page Objects
Beyond Page ObjectsBeyond Page Objects
Beyond Page Objects
Dante Briones
 
Namesmatter
NamesmatterNamesmatter
Namesmatter
Adam Goucher
 
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]
Chris Adamson
 
Adobe AIR Overview
Adobe AIR OverviewAdobe AIR Overview
Adobe AIR Overview
AndreCharland
 
Intro to Micro-frameworks
Intro to Micro-frameworksIntro to Micro-frameworks
Intro to Micro-frameworks
jsmith92
 
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
EffectiveUI
 
Using JavaScript for Mobile Development
Using JavaScript for Mobile DevelopmentUsing JavaScript for Mobile Development
Using JavaScript for Mobile Development
Stephen G
 
iPhone App from concept to product
iPhone App from concept to productiPhone App from concept to product
iPhone App from concept to product
joeysim
 
Introduction to Cloud Computing
Introduction to Cloud ComputingIntroduction to Cloud Computing
Introduction to Cloud Computing
Ahmed Soliman
 
Einstein finalist.nl
Einstein finalist.nlEinstein finalist.nl
Einstein finalist.nl
Vincent Everts
 
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
 
Atlassian RoadTrip 2011 Slide Deck
Atlassian RoadTrip 2011 Slide DeckAtlassian RoadTrip 2011 Slide Deck
Atlassian RoadTrip 2011 Slide Deck
Atlassian
 
LinkedOpenDataItalia@LAPSI-Primer-Milan-2011
LinkedOpenDataItalia@LAPSI-Primer-Milan-2011LinkedOpenDataItalia@LAPSI-Primer-Milan-2011
LinkedOpenDataItalia@LAPSI-Primer-Milan-2011
Christian Morbidoni
 
LinkedOpenDataItalia@LAPSI-Primer-Milano-2011
LinkedOpenDataItalia@LAPSI-Primer-Milano-2011LinkedOpenDataItalia@LAPSI-Primer-Milano-2011
LinkedOpenDataItalia@LAPSI-Primer-Milano-2011
Christian Morbidoni
 
iDW資料(110424)
iDW資料(110424)iDW資料(110424)
iDW資料(110424)
Masahiro Murakami
 
DevOps Introduction @Cegeka
DevOps Introduction @CegekaDevOps Introduction @Cegeka
DevOps Introduction @Cegeka
dieterdm
 
Railsify your web development
Railsify your web developmentRailsify your web development
Railsify your web development
Thomas Lundström
 

Similar to 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
 

Recently uploaded

Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Zilliz
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Zilliz
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 

Recently uploaded (20)

Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 

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