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

More Related Content

Similar to 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 Development
Andy 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
 
Vagrant at LA Ruby
Vagrant at LA RubyVagrant at LA Ruby
Vagrant at LA Ruby
Mitchell Hashimoto
 
Google chrome
Google chromeGoogle chrome
Google chrome
Nayana_Bingi
 
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
CodeMorphic, 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 study
Elegant Technologies, LLC
 
DDive- Giuseppe Grasso - mobile su Lotus
DDive- Giuseppe Grasso - mobile su LotusDDive- Giuseppe Grasso - mobile su Lotus
DDive- Giuseppe Grasso - mobile su Lotus
Dominopoint - Italian Lotus User Group
 
Native Smartphone Development with Ruby
Native Smartphone Development with RubyNative Smartphone Development with Ruby
Native Smartphone Development with Ruby
Maehana 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 Tablets
Indiginox
 
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
Stefan Kolb
 
Demoscene, now available in JavaScript flavor
Demoscene, now available in JavaScript flavorDemoscene, now available in JavaScript flavor
Demoscene, now available in JavaScript flavor
Tristan 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 to 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...
 

More from 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
 
Txjs
TxjsTxjs
Palm Developer Day PhoneGap
Palm Developer Day PhoneGap Palm Developer Day PhoneGap
Palm Developer Day PhoneGap
Brian LeRoux
 
Mobile JavaScript
Mobile JavaScriptMobile JavaScript
Mobile JavaScript
Brian LeRoux
 
Phonegap 1.0
Phonegap 1.0Phonegap 1.0
Phonegap 1.0
Brian LeRoux
 
PhoneGap at JSConf
PhoneGap at JSConfPhoneGap at JSConf
PhoneGap at JSConf
Brian LeRoux
 

More from 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
 

Recently uploaded

Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
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
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 

Recently uploaded (20)

Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
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
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 

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