SlideShare una empresa de Scribd logo
1 de 58
Descargar para leer sin conexión
PhoneGap

                           Easy Mobile Apps with JavaScript




Monday, December 7, 2009
THANK YOU!

             > var web = {};
             undefined
             > web.next();
             [”javascript”,”mobile”]




Monday, December 7, 2009
me.
         • github.com/brianleroux
         • twitter.com/brianleroux




                                     3


Monday, December 7, 2009
http://www.gartner.com/it/page.jsp?id=1126812
Monday, December 7, 2009
Mobile app dev is hard.




Monday, December 7, 2009
Device Platform Fragmentation
  Platform                 Language                    Notes

  Apple iPhone             Objective C                 Requires an Apple machine.
                                                       Left arm.

  RIM Blackberry OS        Java                        Requires a Windows based
                                                       machine. WTF.

  Google Android           Java (Dalvik VM)            Runs mostly anywhere.


  Windows Mobile           .NET or unmanaged C++       Requires a Windows based
                                                       machine.

  Nokia Symbian            C++, Java, Python, Flash,   Runs mostly anywhere.
                           WRT

  Palm WebOS               HTML, CSS and JavaScript Runs mostly anywhere.



Monday, December 7, 2009
App Distribution Fragmentation
    Apple App Store 
    Android Market 
    Blackberry App World 
    Nokia Ovi Store 
    GetJar 
    Palm App Catalog 
    Samsung App Store 
    LG Application Store 
    Mobango 
    Sony Ericsson PlayNow 
    Windows Marketplace 
    Vodafone App Store 
    Java App Store 
    Verizon VCast

Monday, December 7, 2009
Dev and distribution nightmare.




Monday, December 7, 2009
This is why the internet works.

                           cross platform
                           open standards
                           open source



Monday, December 7, 2009
Cross Platform iPhone
                           Android
                           Blackberry
                           Windows Mobile
                           Nokia
                           Palm *
                           Maemo*




                                            * releasing VERY soon

Monday, December 7, 2009
HTML5

                            sorta




Monday, December 7, 2009
Webkit APIs

 SQLite
 Cache Manifest
 CSS Transitions / Transforms / Animations
 Custom fonts




Monday, December 7, 2009
PhoneGap API
                           Geolocation
                           Accelerometer
                           Notifications
                           Media playback
                           Camera
                           Device info
                           Contacts
                           Online/Offline
                           SMS / Telephone
                           Magnetometer




Monday, December 7, 2009
Future APIs




                                   File IO
                               WebSocket
                           SQLite Wrapper

Monday, December 7, 2009
Free: as in freedom.

                                MIT Licensed




Monday, December 7, 2009
PhoneGap Philosophy

                           The purpose is to cease to exist.
                           Make the web a first class dev tool.
                           Be open, transparent and free.
                           Adhere to standards when possible.




Monday, December 7, 2009
Sony Ericsson WebSDK




                http://developer.sonyericsson.com/websdk



                                                       17


Monday, December 7, 2009
Yeah way.

       Geolocation
       Accelerometer
       Notifications
       Media playback
       Camera
       Device info
       Contacts
                                       On these devices:
       Online/Offline
       SMS / Telephone                 iPhone / iPod Touch
       Magnetometer                    Android
                                       Blackberry
                                       Nokia
                                       Windows Mobile
                                       Palm webOS

Monday, December 7, 2009
Problems with the PhoneGap project


            documentation
            app store FUD
            no fucking tests
            many webkit variants
            perceived competition
            tooling is not consolidated
            source is a bit of a gong show
            no standard technique for extending the project




Monday, December 7, 2009
docs.phonegap.com
                   http://github.com/phonegap/phonegap-docs 




Monday, December 7, 2009
App Store Rejections?

                              Rename your project.




Monday, December 7, 2009
No fucking tests?!




Monday, December 7, 2009
mobile-spec




Monday, December 7, 2009
Webkit




                                    24


Monday, December 7, 2009
Yay Webkit!


                                     Good!
                                     sqlite
                                     cache manifest
                                     css awesome
                                     custom fontage



Monday, December 7, 2009
Bad *




                           * many variants
                           ** not mozilla
Monday, December 7, 2009
Ugly
                           •   Blackberry less than 4.6 have no XHR

                           •   Windows Mobile runs IE 4

                           •   Or worse: IE 6 + 7




Monday, December 7, 2009
The many flavours of Webkit
   iPhone OS 3.0 Webkit 528.16 Build
   iPhone OS 2.2 Webkit 525.20 Build
   iPhone OS 2.02 Webkit 525.20 Build
   iPhone OS 1.5 Webkit 419.3 Build
   Android 1.5 Webkit Nov 2008 Fork
   Android 1.1 Webkit Rev r30692
   Android 1.0 Webkit
   PalmPre OS Webkit
   Nokia S60 Webkit Fork
   Nokia WRT Webkit Fork




Monday, December 7, 2009
Not to mention what isn't Webkit

     Blackberry 
     Windows Mobile
     .
     .
     .
     .
     .
     .
     .
     ...yet.




Monday, December 7, 2009
The web still rocks.

                           (even if the browsers do not)




Monday, December 7, 2009
Other options?
  Option                   Supported Platforms   Language            License
  BigFive                  iPhone                HTML, CSS and JS    GPL2

  LiquidGear               iPhone                HTML, CSS and JS*   MIT


  Corona                   iPhone                Lua                 Proprietary

  Appcelerator             iPhone                HTML, CSS and JS*   Apache
                           Android

  Rhodes                   iPhone                HTML, CSS and JS. GPL3
                           Symbian               Ruby for native code.
                           Android               Accessed client/server
                           BlackBerry            style.
                           Windows Mobile

  NimbleKit                iPhone                HTML, CSS and JS*   Proprietary

 * Renders native controls via JavaScript.
Monday, December 7, 2009
PhoneGap supported devices

                           http://rubyurl.com/jtNs




                                                     32


Monday, December 7, 2009
Wash, Rinse, Repeat...FAIL

   1. First, install all these:
       o iPhone SDK
       o Android SDK
       o Blackberry SDK
       o Windows Mobile SDK
       o Nokia WRT SDK
   2. Download the PhoneGap source. 
   3. Map to each SDK.
   4. Copy your app into each.
   5. Build for each.
   6. Fix a bug. 
   7. GOTO 3.

 Automation FAIL.
Monday, December 7, 2009
phonegap-dev

                            coming soon...




Monday, December 7, 2009
is demo time nao




Monday, December 7, 2009
Extending PhoneGap

                                 Plugins




Monday, December 7, 2009
Many codebases.
Monday, December 7, 2009
Great but how to get started?

 Small screens.
 Less memory.
 Less CPU.
 Less hard drive space if any.
 Sketchy connectivity.




Monday, December 7, 2009
Constraints == Focus

                                      




Monday, December 7, 2009
JavaScript Sucks

                            (But it is ubiquitous.)




Monday, December 7, 2009
jQuery / Dojo / YUI / MooTools




Monday, December 7, 2009
XUI

                           2.2 kb




Monday, December 7, 2009
XUI + Emile




Monday, December 7, 2009
Good enough.

                           DOM / Event / Style / XHR / FX




Monday, December 7, 2009
What about UI components?

                               




Monday, December 7, 2009
FUCK UI components.


Monday, December 7, 2009
Apps built w/ components look like it.
Monday, December 7, 2009
Solve your unique problem.

                           goals > features




Monday, December 7, 2009
Tapbots, for example.




Monday, December 7, 2009
This is the modern equivalent of
                                 Outlook Express.




            Fuck components. Especially native components.
Monday, December 7, 2009
Solve your unique problem.




            And you will do it better than a generic solution.

Monday, December 7, 2009
Maybe you don't even need native features?

 Use a mobile specific stylesheet.
 Progressive enhancement of functionality w/ js.




Monday, December 7, 2009
The Future




Monday, December 7, 2009
More devices.
Monday, December 7, 2009
OMTP BONDI

                              Spec.




Monday, December 7, 2009
W3C Device API Group




Monday, December 7, 2009
Get involved.
         • code: github.com
         • docs: docs.phonegap.com / wiki.phonegap.com
         • test: mobile-spec

         •   blog about it
         •   tweet about it!
         •   tell your mom about it (I already did)
         •   help on mailing list
                                                      57


Monday, December 7, 2009
Now... go write some apps!*
                     http://phonegap.com
                     http://groups.google.com/group/phonegap


                     Brian LeRoux
                     brian@nitobi.com
                     http://twitter.com/brianleroux
                     * After beers. Ideally at least 12 hours after beers.


Monday, December 7, 2009

Más contenido relacionado

Similar a Mobile Web App Development

Brian Le Roux Presentation Introducing Phone Gap
Brian Le Roux Presentation Introducing Phone GapBrian Le Roux Presentation Introducing Phone Gap
Brian Le Roux Presentation Introducing Phone GapAjax Experience 2009
 
Phonegap for Engineers
Phonegap for EngineersPhonegap for Engineers
Phonegap for EngineersBrian LeRoux
 
Developing cross platform mobile applications with phone gap for windows phone
Developing cross platform mobile applications with phone gap for windows phoneDeveloping cross platform mobile applications with phone gap for windows phone
Developing cross platform mobile applications with phone gap for windows phoneColin Eberhardt
 
iPhone Web Development
iPhone Web DevelopmentiPhone Web Development
iPhone Web DevelopmentAndy Peters
 
Talk by Tomas Lin on Building Killer RIAs with Flex and Grails at the Groovy ...
Talk by Tomas Lin on Building Killer RIAs with Flex and Grails at the Groovy ...Talk by Tomas Lin on Building Killer RIAs with Flex and Grails at the Groovy ...
Talk by Tomas Lin on Building Killer RIAs with Flex and Grails at the Groovy ...Skills Matter
 
Owasp App Sec Ireland Windows Phone 7 Security
Owasp App Sec Ireland Windows Phone 7 SecurityOwasp App Sec Ireland Windows Phone 7 Security
Owasp App Sec Ireland Windows Phone 7 SecuritySecurity Ninja
 
Google Web Toolkit for the Enterprise Developer - JBoss World 2009
Google Web Toolkit for the Enterprise Developer - JBoss World 2009Google Web Toolkit for the Enterprise Developer - JBoss World 2009
Google Web Toolkit for the Enterprise Developer - JBoss World 2009Fred Sauer
 
Widget Workshop Advanced Development
Widget Workshop Advanced DevelopmentWidget Workshop Advanced Development
Widget Workshop Advanced DevelopmentDominik Helleberg
 
MinneWebCon 2009 CodeMorphic Hybrid iPhone App Presentation
MinneWebCon 2009 CodeMorphic Hybrid iPhone App PresentationMinneWebCon 2009 CodeMorphic Hybrid iPhone App Presentation
MinneWebCon 2009 CodeMorphic Hybrid iPhone App PresentationCodeMorphic, Inc.
 
FITC Android for Flashers
FITC Android for FlashersFITC Android for Flashers
FITC Android for Flashersweyert
 
Cross Platform Development Strategies with vendor review and PhoneGap case study
Cross Platform Development Strategies with vendor review and PhoneGap case studyCross Platform Development Strategies with vendor review and PhoneGap case study
Cross Platform Development Strategies with vendor review and PhoneGap case studyElegant Technologies, LLC
 
Native Smartphone Development with Ruby
Native Smartphone Development with RubyNative Smartphone Development with Ruby
Native Smartphone Development with RubyMaehana Tsuyoshi
 
iEnterprise - Mit HTML-5 zum Unternehmens-Dashboard für Tablets
iEnterprise - Mit HTML-5 zum Unternehmens-Dashboard für TabletsiEnterprise - Mit HTML-5 zum Unternehmens-Dashboard für Tablets
iEnterprise - Mit HTML-5 zum Unternehmens-Dashboard für TabletsIndiginox
 
iEnterprise - Mit HTML5 zum Unternehmens-Dashboard für Tablets
iEnterprise - Mit HTML5 zum Unternehmens-Dashboard für TabletsiEnterprise - Mit HTML5 zum Unternehmens-Dashboard für Tablets
iEnterprise - Mit HTML5 zum Unternehmens-Dashboard für TabletsStefan Kolb
 
Demoscene, now available in JavaScript flavor
Demoscene, now available in JavaScript flavorDemoscene, now available in JavaScript flavor
Demoscene, now available in JavaScript flavorTristan Nitot
 
The Mobile Experience Ecosystem - Towards Personal Mobile Information Archite...
The Mobile Experience Ecosystem - Towards Personal Mobile Information Archite...The Mobile Experience Ecosystem - Towards Personal Mobile Information Archite...
The Mobile Experience Ecosystem - Towards Personal Mobile Information Archite...Rod Farmer
 

Similar a Mobile Web App Development (20)

Brian Le Roux Presentation Introducing Phone Gap
Brian Le Roux Presentation Introducing Phone GapBrian Le Roux Presentation Introducing Phone Gap
Brian Le Roux Presentation Introducing Phone Gap
 
Phonegap for Engineers
Phonegap for EngineersPhonegap for Engineers
Phonegap for Engineers
 
Developing cross platform mobile applications with phone gap for windows phone
Developing cross platform mobile applications with phone gap for windows phoneDeveloping cross platform mobile applications with phone gap for windows phone
Developing cross platform mobile applications with phone gap for windows phone
 
iPhone Web Development
iPhone Web DevelopmentiPhone Web Development
iPhone Web Development
 
Talk by Tomas Lin on Building Killer RIAs with Flex and Grails at the Groovy ...
Talk by Tomas Lin on Building Killer RIAs with Flex and Grails at the Groovy ...Talk by Tomas Lin on Building Killer RIAs with Flex and Grails at the Groovy ...
Talk by Tomas Lin on Building Killer RIAs with Flex and Grails at the Groovy ...
 
Owasp App Sec Ireland Windows Phone 7 Security
Owasp App Sec Ireland Windows Phone 7 SecurityOwasp App Sec Ireland Windows Phone 7 Security
Owasp App Sec Ireland Windows Phone 7 Security
 
Google Web Toolkit for the Enterprise Developer - JBoss World 2009
Google Web Toolkit for the Enterprise Developer - JBoss World 2009Google Web Toolkit for the Enterprise Developer - JBoss World 2009
Google Web Toolkit for the Enterprise Developer - JBoss World 2009
 
Widget Workshop Advanced Development
Widget Workshop Advanced DevelopmentWidget Workshop Advanced Development
Widget Workshop Advanced Development
 
Vagrant at LA Ruby
Vagrant at LA RubyVagrant at LA Ruby
Vagrant at LA Ruby
 
Android
AndroidAndroid
Android
 
Google chrome
Google chromeGoogle chrome
Google chrome
 
MinneWebCon 2009 CodeMorphic Hybrid iPhone App Presentation
MinneWebCon 2009 CodeMorphic Hybrid iPhone App PresentationMinneWebCon 2009 CodeMorphic Hybrid iPhone App Presentation
MinneWebCon 2009 CodeMorphic Hybrid iPhone App Presentation
 
FITC Android for Flashers
FITC Android for FlashersFITC Android for Flashers
FITC Android for Flashers
 
Cross Platform Development Strategies with vendor review and PhoneGap case study
Cross Platform Development Strategies with vendor review and PhoneGap case studyCross Platform Development Strategies with vendor review and PhoneGap case study
Cross Platform Development Strategies with vendor review and PhoneGap case study
 
DDive- Giuseppe Grasso - mobile su Lotus
DDive- Giuseppe Grasso - mobile su LotusDDive- Giuseppe Grasso - mobile su Lotus
DDive- Giuseppe Grasso - mobile su Lotus
 
Native Smartphone Development with Ruby
Native Smartphone Development with RubyNative Smartphone Development with Ruby
Native Smartphone Development with Ruby
 
iEnterprise - Mit HTML-5 zum Unternehmens-Dashboard für Tablets
iEnterprise - Mit HTML-5 zum Unternehmens-Dashboard für TabletsiEnterprise - Mit HTML-5 zum Unternehmens-Dashboard für Tablets
iEnterprise - Mit HTML-5 zum Unternehmens-Dashboard für Tablets
 
iEnterprise - Mit HTML5 zum Unternehmens-Dashboard für Tablets
iEnterprise - Mit HTML5 zum Unternehmens-Dashboard für TabletsiEnterprise - Mit HTML5 zum Unternehmens-Dashboard für Tablets
iEnterprise - Mit HTML5 zum Unternehmens-Dashboard für Tablets
 
Demoscene, now available in JavaScript flavor
Demoscene, now available in JavaScript flavorDemoscene, now available in JavaScript flavor
Demoscene, now available in JavaScript flavor
 
The Mobile Experience Ecosystem - Towards Personal Mobile Information Archite...
The Mobile Experience Ecosystem - Towards Personal Mobile Information Archite...The Mobile Experience Ecosystem - Towards Personal Mobile Information Archite...
The Mobile Experience Ecosystem - Towards Personal Mobile Information Archite...
 

Más de Brian LeRoux

Mobeers waterloo-2011
Mobeers waterloo-2011Mobeers waterloo-2011
Mobeers waterloo-2011Brian LeRoux
 
Nitobi/PhoneGap at Bootup 2011
Nitobi/PhoneGap at Bootup 2011Nitobi/PhoneGap at Bootup 2011
Nitobi/PhoneGap at Bootup 2011Brian LeRoux
 
After HTML5 Mobilism 2011
After HTML5 Mobilism 2011After HTML5 Mobilism 2011
After HTML5 Mobilism 2011Brian LeRoux
 
Mobile Knife Fighting at JSConf US
Mobile Knife Fighting at JSConf US Mobile Knife Fighting at JSConf US
Mobile Knife Fighting at JSConf US Brian LeRoux
 
Palm Developer Day PhoneGap
Palm Developer Day PhoneGap Palm Developer Day PhoneGap
Palm Developer Day PhoneGap Brian LeRoux
 
PhoneGap at JSConf
PhoneGap at JSConfPhoneGap at JSConf
PhoneGap at JSConfBrian LeRoux
 

Más de Brian LeRoux (13)

Future of Mobile
Future of MobileFuture of Mobile
Future of Mobile
 
Mobeers waterloo-2011
Mobeers waterloo-2011Mobeers waterloo-2011
Mobeers waterloo-2011
 
Nitobi/PhoneGap at Bootup 2011
Nitobi/PhoneGap at Bootup 2011Nitobi/PhoneGap at Bootup 2011
Nitobi/PhoneGap at Bootup 2011
 
After HTML5 Mobilism 2011
After HTML5 Mobilism 2011After HTML5 Mobilism 2011
After HTML5 Mobilism 2011
 
Mobile Knife Fighting at JSConf US
Mobile Knife Fighting at JSConf US Mobile Knife Fighting at JSConf US
Mobile Knife Fighting at JSConf US
 
Fullfrontal 2010
Fullfrontal 2010Fullfrontal 2010
Fullfrontal 2010
 
Txjs
TxjsTxjs
Txjs
 
Palm Developer Day PhoneGap
Palm Developer Day PhoneGap Palm Developer Day PhoneGap
Palm Developer Day PhoneGap
 
Scurvyconf
ScurvyconfScurvyconf
Scurvyconf
 
DjangoSki
DjangoSkiDjangoSki
DjangoSki
 
Mobile JavaScript
Mobile JavaScriptMobile JavaScript
Mobile JavaScript
 
Phonegap 1.0
Phonegap 1.0Phonegap 1.0
Phonegap 1.0
 
PhoneGap at JSConf
PhoneGap at JSConfPhoneGap at JSConf
PhoneGap at JSConf
 

Último

"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 

Último (20)

"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 

Mobile Web App Development

  • 1. PhoneGap Easy Mobile Apps with JavaScript Monday, December 7, 2009
  • 2. THANK YOU! > var web = {}; undefined > web.next(); [”javascript”,”mobile”] Monday, December 7, 2009
  • 3. me. • github.com/brianleroux • twitter.com/brianleroux 3 Monday, December 7, 2009
  • 5. Mobile app dev is hard. Monday, December 7, 2009
  • 6. Device Platform Fragmentation Platform Language Notes Apple iPhone Objective C Requires an Apple machine. Left arm. RIM Blackberry OS Java  Requires a Windows based machine. WTF. Google Android Java (Dalvik VM) Runs mostly anywhere. Windows Mobile .NET or unmanaged C++ Requires a Windows based machine. Nokia Symbian C++, Java, Python, Flash, Runs mostly anywhere. WRT Palm WebOS HTML, CSS and JavaScript Runs mostly anywhere. Monday, December 7, 2009
  • 7. App Distribution Fragmentation Apple App Store  Android Market  Blackberry App World  Nokia Ovi Store  GetJar  Palm App Catalog  Samsung App Store  LG Application Store  Mobango  Sony Ericsson PlayNow  Windows Marketplace  Vodafone App Store  Java App Store  Verizon VCast Monday, December 7, 2009
  • 8. Dev and distribution nightmare. Monday, December 7, 2009
  • 9. This is why the internet works. cross platform open standards open source Monday, December 7, 2009
  • 10. Cross Platform iPhone Android Blackberry Windows Mobile Nokia Palm * Maemo* * releasing VERY soon Monday, December 7, 2009
  • 11. HTML5 sorta Monday, December 7, 2009
  • 12. Webkit APIs SQLite Cache Manifest CSS Transitions / Transforms / Animations Custom fonts Monday, December 7, 2009
  • 13. PhoneGap API Geolocation Accelerometer Notifications Media playback Camera Device info Contacts Online/Offline SMS / Telephone Magnetometer Monday, December 7, 2009
  • 14. Future APIs File IO WebSocket SQLite Wrapper Monday, December 7, 2009
  • 15. Free: as in freedom. MIT Licensed Monday, December 7, 2009
  • 16. PhoneGap Philosophy The purpose is to cease to exist. Make the web a first class dev tool. Be open, transparent and free. Adhere to standards when possible. Monday, December 7, 2009
  • 17. Sony Ericsson WebSDK http://developer.sonyericsson.com/websdk 17 Monday, December 7, 2009
  • 18. Yeah way. Geolocation Accelerometer Notifications Media playback Camera Device info Contacts On these devices: Online/Offline SMS / Telephone iPhone / iPod Touch Magnetometer Android Blackberry Nokia Windows Mobile Palm webOS Monday, December 7, 2009
  • 19. Problems with the PhoneGap project documentation app store FUD no fucking tests many webkit variants perceived competition tooling is not consolidated source is a bit of a gong show no standard technique for extending the project Monday, December 7, 2009
  • 20. docs.phonegap.com  http://github.com/phonegap/phonegap-docs  Monday, December 7, 2009
  • 21. App Store Rejections? Rename your project. Monday, December 7, 2009
  • 22. No fucking tests?! Monday, December 7, 2009
  • 24. Webkit 24 Monday, December 7, 2009
  • 25. Yay Webkit! Good! sqlite cache manifest css awesome custom fontage Monday, December 7, 2009
  • 26. Bad * * many variants ** not mozilla Monday, December 7, 2009
  • 27. Ugly • Blackberry less than 4.6 have no XHR • Windows Mobile runs IE 4 • Or worse: IE 6 + 7 Monday, December 7, 2009
  • 28. The many flavours of Webkit iPhone OS 3.0 Webkit 528.16 Build iPhone OS 2.2 Webkit 525.20 Build iPhone OS 2.02 Webkit 525.20 Build iPhone OS 1.5 Webkit 419.3 Build Android 1.5 Webkit Nov 2008 Fork Android 1.1 Webkit Rev r30692 Android 1.0 Webkit PalmPre OS Webkit Nokia S60 Webkit Fork Nokia WRT Webkit Fork Monday, December 7, 2009
  • 29. Not to mention what isn't Webkit Blackberry  Windows Mobile . . . . . . . ...yet. Monday, December 7, 2009
  • 30. The web still rocks. (even if the browsers do not) Monday, December 7, 2009
  • 31. Other options? Option Supported Platforms Language License BigFive iPhone HTML, CSS and JS GPL2 LiquidGear iPhone HTML, CSS and JS* MIT Corona iPhone Lua Proprietary Appcelerator iPhone HTML, CSS and JS* Apache Android Rhodes iPhone HTML, CSS and JS. GPL3 Symbian Ruby for native code. Android Accessed client/server BlackBerry style. Windows Mobile NimbleKit iPhone HTML, CSS and JS* Proprietary * Renders native controls via JavaScript. Monday, December 7, 2009
  • 32. PhoneGap supported devices http://rubyurl.com/jtNs 32 Monday, December 7, 2009
  • 33. Wash, Rinse, Repeat...FAIL 1. First, install all these: o iPhone SDK o Android SDK o Blackberry SDK o Windows Mobile SDK o Nokia WRT SDK 2. Download the PhoneGap source.  3. Map to each SDK. 4. Copy your app into each. 5. Build for each. 6. Fix a bug.  7. GOTO 3. Automation FAIL. Monday, December 7, 2009
  • 34. phonegap-dev coming soon... Monday, December 7, 2009
  • 35. is demo time nao Monday, December 7, 2009
  • 36. Extending PhoneGap Plugins Monday, December 7, 2009
  • 38. Great but how to get started? Small screens. Less memory. Less CPU. Less hard drive space if any. Sketchy connectivity. Monday, December 7, 2009
  • 39. Constraints == Focus   Monday, December 7, 2009
  • 40. JavaScript Sucks (But it is ubiquitous.) Monday, December 7, 2009
  • 41. jQuery / Dojo / YUI / MooTools Monday, December 7, 2009
  • 42. XUI 2.2 kb Monday, December 7, 2009
  • 43. XUI + Emile Monday, December 7, 2009
  • 44. Good enough. DOM / Event / Style / XHR / FX Monday, December 7, 2009
  • 45. What about UI components?   Monday, December 7, 2009
  • 46. FUCK UI components. Monday, December 7, 2009
  • 47. Apps built w/ components look like it. Monday, December 7, 2009
  • 48. Solve your unique problem. goals > features Monday, December 7, 2009
  • 49. Tapbots, for example. Monday, December 7, 2009
  • 50. This is the modern equivalent of Outlook Express. Fuck components. Especially native components. Monday, December 7, 2009
  • 51. Solve your unique problem. And you will do it better than a generic solution. Monday, December 7, 2009
  • 52. Maybe you don't even need native features? Use a mobile specific stylesheet. Progressive enhancement of functionality w/ js. Monday, December 7, 2009
  • 55. OMTP BONDI Spec. Monday, December 7, 2009
  • 56. W3C Device API Group Monday, December 7, 2009
  • 57. Get involved. • code: github.com • docs: docs.phonegap.com / wiki.phonegap.com • test: mobile-spec • blog about it • tweet about it! • tell your mom about it (I already did) • help on mailing list 57 Monday, December 7, 2009
  • 58. Now... go write some apps!* http://phonegap.com http://groups.google.com/group/phonegap Brian LeRoux brian@nitobi.com http://twitter.com/brianleroux * After beers. Ideally at least 12 hours after beers. Monday, December 7, 2009