SlideShare a Scribd company logo
1 of 51
phonegap/mobeers 2011
-me




http://brian.io
the killing field
• phonegap project background
• mobile projects in practice
• backend design concerns
• mobile web client design
• progressive enhancement to ‘native’
lets kill it
phonegap project
•   history/goals/philosphy

•   licensing
•   web standards
•   the phonegap technique (ffi / bridge)

•   platform support
•   more on the bridge: plugins
•   the future of mobile is device apis
•   device apis: sensors

•   device apis: data
•   device apis: outputs
•   present and future: a little about our roadmap

•   phonegap/build
•   perceived competition
phonegap project
•   history/goals/philosphy

•   licensing
•   web standards
•
•
       imma teach ya fuckin
    the phonegap technique (ffi / bridge)
    platform support
•
         everything aight?
    more on the bridge: plugins
•   the future of mobile is device apis
•   device apis: sensors

•   device apis: data
•   device apis: outputs
•   present and future: a little about our roadmap

•   phonegap/build
•   perceived competition
history
•   2008 got its start as a lofty summertime hack;
    gained traction as a concept @nitobi with android
    and blackberry implementations in the fall
•   2009 ppl started to pay attention when we got
    ‘rejected’ by apple; we added Symbian and webOS
    support
•   2010 IBM began tag teaming w/ Nitobi
•   2011 RIM joined: now its a gang bang
•   2011 we shipped 1.x
philosophy

• unix was (still is) right
• simple is better
• plan to fail; software is organic
• when in doubt use brute force
goals

• the web as a first class platform
• => installable web apps
• cease to exist
• => browsers adopt this model
licensing


• users: mit/bsd
• contributors: apache
free defined

• free to use
• free to modify
• free to distribute
• free to change
• free to sell
omg, how does anyone
    make money?
ever buy bottled water?
Nitobi vs PhoneGap

• we are the creators
• we are contributors
• nitobi is a software company that makes
  money writing software for ppl
• we give away as much IP as possible
web standards
• w3c has many
• whatwg seems to be working well
• bondi / jil / wac / webinos
• de facto standards ?
• mozilla getting snippy about the flailing of
  the various standards bodies: web apis and
  b2g (fuck yes.)
the phonegap technique


• colloquially called ‘the bridge’
• more correctly a FFI (foreign function
  interface)
the technique ‘splained

1. we instantiate a webview
2. we call js from the native code (‘deviceready’)
3. you can call native code from the js



        ... aaaand then we send data/
        callbacks from the native!
primary platforms

• Apple iOS >= 3 (we’ve supported since
  1.x)
• Google Android >= 1.5
• BlackBerry >= 5.x (supported since 4.2)
platforms support cont.

• HP webOS
• Nokia Symbian
• Samsung Bada
fall 2011


• Windows Phone 7
• MeeGo
further experiments

• various desktop experiments
• mozilla firefox mobile (once fennec)
• Qt is super portable (thus MeeGo)
No mobile dev platform supports as many
     deploy targets as PhoneGap.


Not even a single browser...not yet anyhow.
Adoption
contributors

• Nitobi
• IBM
• RIM
PhoneGap API


http://docs.phonegap.com
device apis

• sensors
• data
• outputs
sensors


• geo / accelerometer / gyroscope
• camera
data

• filesystem
• contacts
• media
outputs

• device screen(s)
• speakers
• speaker jack...
plugins


• everything is one
• any native api is permitted
plugins


• everything is one
• any native api is permitted
2.x roadmap!

• plugins
• performance
• security
• tooling
Plugins TODO

• packaging
• installation / removal / deps
• discovery
Performance
• benchmarking us (right now just init)
• benchmarking them (popular js libs)
• js unification and cleanup
• continual improvements to the bridge
• plugins removal will help tonnes
• data access another area of interest
security

• locking down the file://
• config.xml feature element lockdown
• code hotloading (hydra project)
• some crypto apis
• looking secure storage
tooling

• unification of mobile dev nomenclature
• standard project directory structuring
• build the tools devs are REbuilding every
  project
tooling

  • unification of mobile dev nomenclature
automate project directory structuringbitch
              the shit out of this
  • standard
  • build the tools devs are REbuilding every
     project
common tasks

• launch an emulator
• create a project
• build a project to a device / emulator
• attach a logger (console.log to stdout)
• run the mobile-spec unit test suite
A quick interlude about
     competition


• We have none.
Lets review
• philosophy
• licensing
• community adoption
• contributors
• tooling from 3rd parties
• no lock in: your app runs in a browser too
PhoneGap/Build

• We build your apps ‘in the cloud’.
• A commercial enterprise from Nitobi.
• Always free for Free/Open Source projects.
• Always 1 free private repo for developers.
hello world already!
mobile projs in practice

• define your project philosophy and goals
• value != money
• design (...not just the pretty)
• shipping
know your philosophy


• a good problem defn outlines a solution
  value proposition
 • can’t be a hero without an enemy
have a goal (not goals)


• min viable product defn
 • 1 sentence: no use of the word ‘and’
great ux happens
       iteratively

• you design always; init w/ research
 • big upfront designs fail. don’t fail.
bias

• technical bias is a normal condition
• embrace your bias; its skills you have
• embrace your existing technical debt
• be wary of anything preaching a ‘one true
  way’
the exception,
the web,
is exceptional
Good news!
• You have likely already invested in the web.
• If not, don’t worry, web tech is being taught
  in elementary schools.
• Today you have the knowledge and skills to
  build end to end systems with HTML, CSS
  and JavaScript.
shipping
• a daily activity
• writing unit tests for health and sanity
• single click builds (test/dev/release)
• distributed rcs and practices are crucial
• automate everything manual
thx


• q/a?

More Related Content

What's hot

Hardware Prototyping for Software Developers
Hardware Prototyping for Software DevelopersHardware Prototyping for Software Developers
Hardware Prototyping for Software DevelopersKinoma
 
Strategies for securing your banks & enterprises (from someone who robs bank...
 Strategies for securing your banks & enterprises (from someone who robs bank... Strategies for securing your banks & enterprises (from someone who robs bank...
Strategies for securing your banks & enterprises (from someone who robs bank...ITCamp
 
HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?Reto Meier
 
Bone.io for HTML5 Apps
Bone.io for HTML5 AppsBone.io for HTML5 Apps
Bone.io for HTML5 AppsBrad Carleton
 
Building frameworks: from concept to completion
Building frameworks: from concept to completionBuilding frameworks: from concept to completion
Building frameworks: from concept to completionRuben Goncalves
 
Why Do Mobile Projects Fail?
Why Do Mobile Projects Fail?Why Do Mobile Projects Fail?
Why Do Mobile Projects Fail?Indiginox
 
API World 2016 - A five-sided prism polarizing Web API development
API World 2016 - A five-sided prism polarizing Web API developmentAPI World 2016 - A five-sided prism polarizing Web API development
API World 2016 - A five-sided prism polarizing Web API developmentRestlet
 
Marcio Leibovitch - Rapid Prototyping for the Web & Mobile Devices
Marcio Leibovitch - Rapid Prototyping for the Web & Mobile DevicesMarcio Leibovitch - Rapid Prototyping for the Web & Mobile Devices
Marcio Leibovitch - Rapid Prototyping for the Web & Mobile DevicesПрофсоUX
 
Iterating For Success: A Case Study in Remote Paired Programming, The Evoluti...
Iterating For Success: A Case Study in Remote Paired Programming, The Evoluti...Iterating For Success: A Case Study in Remote Paired Programming, The Evoluti...
Iterating For Success: A Case Study in Remote Paired Programming, The Evoluti...VMware Tanzu
 
No more excuses! Let's build beautiful things. #codemotion Rome
No  more excuses! Let's build beautiful things. #codemotion Rome No  more excuses! Let's build beautiful things. #codemotion Rome
No more excuses! Let's build beautiful things. #codemotion Rome Christian Heilmann
 
Samsung Indonesia: Tizen Native App
Samsung Indonesia: Tizen Native AppSamsung Indonesia: Tizen Native App
Samsung Indonesia: Tizen Native AppRyo Jin
 
Let the Elephants Leave the Room: Tips for Making Development Life Leaner by ...
Let the Elephants Leave the Room: Tips for Making Development Life Leaner by ...Let the Elephants Leave the Room: Tips for Making Development Life Leaner by ...
Let the Elephants Leave the Room: Tips for Making Development Life Leaner by ...Bosnia Agile
 
Hybrid Apps with Ionic Framework
Hybrid Apps with Ionic FrameworkHybrid Apps with Ionic Framework
Hybrid Apps with Ionic FrameworkBramus Van Damme
 
JBoss Forge - Breaking new ground in developer productivity
JBoss Forge - Breaking new ground in developer productivityJBoss Forge - Breaking new ground in developer productivity
JBoss Forge - Breaking new ground in developer productivityVineet Reynolds
 
Merge hells!! feature toggles to the rescue - Presented @ Agile Toronto
Merge hells!! feature toggles to the rescue - Presented @ Agile TorontoMerge hells!! feature toggles to the rescue - Presented @ Agile Toronto
Merge hells!! feature toggles to the rescue - Presented @ Agile TorontoLeena N
 
Merge hells!! Feature toggles to the rescue - DevOpsDays Madison
Merge hells!! Feature toggles to the rescue - DevOpsDays MadisonMerge hells!! Feature toggles to the rescue - DevOpsDays Madison
Merge hells!! Feature toggles to the rescue - DevOpsDays MadisonLeena N
 
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15GreeceJS
 
Developer Productivity with Forge, Java EE 6 and Arquillian
Developer Productivity with Forge, Java EE 6 and ArquillianDeveloper Productivity with Forge, Java EE 6 and Arquillian
Developer Productivity with Forge, Java EE 6 and ArquillianRay Ploski
 

What's hot (20)

Hardware Prototyping for Software Developers
Hardware Prototyping for Software DevelopersHardware Prototyping for Software Developers
Hardware Prototyping for Software Developers
 
Strategies for securing your banks & enterprises (from someone who robs bank...
 Strategies for securing your banks & enterprises (from someone who robs bank... Strategies for securing your banks & enterprises (from someone who robs bank...
Strategies for securing your banks & enterprises (from someone who robs bank...
 
HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?
 
Bone.io for HTML5 Apps
Bone.io for HTML5 AppsBone.io for HTML5 Apps
Bone.io for HTML5 Apps
 
Building frameworks: from concept to completion
Building frameworks: from concept to completionBuilding frameworks: from concept to completion
Building frameworks: from concept to completion
 
Why Do Mobile Projects Fail?
Why Do Mobile Projects Fail?Why Do Mobile Projects Fail?
Why Do Mobile Projects Fail?
 
API World 2016 - A five-sided prism polarizing Web API development
API World 2016 - A five-sided prism polarizing Web API developmentAPI World 2016 - A five-sided prism polarizing Web API development
API World 2016 - A five-sided prism polarizing Web API development
 
Marcio Leibovitch - Rapid Prototyping for the Web & Mobile Devices
Marcio Leibovitch - Rapid Prototyping for the Web & Mobile DevicesMarcio Leibovitch - Rapid Prototyping for the Web & Mobile Devices
Marcio Leibovitch - Rapid Prototyping for the Web & Mobile Devices
 
Iterating For Success: A Case Study in Remote Paired Programming, The Evoluti...
Iterating For Success: A Case Study in Remote Paired Programming, The Evoluti...Iterating For Success: A Case Study in Remote Paired Programming, The Evoluti...
Iterating For Success: A Case Study in Remote Paired Programming, The Evoluti...
 
Jsday
JsdayJsday
Jsday
 
No more excuses! Let's build beautiful things. #codemotion Rome
No  more excuses! Let's build beautiful things. #codemotion Rome No  more excuses! Let's build beautiful things. #codemotion Rome
No more excuses! Let's build beautiful things. #codemotion Rome
 
Samsung Indonesia: Tizen Native App
Samsung Indonesia: Tizen Native AppSamsung Indonesia: Tizen Native App
Samsung Indonesia: Tizen Native App
 
Let the Elephants Leave the Room: Tips for Making Development Life Leaner by ...
Let the Elephants Leave the Room: Tips for Making Development Life Leaner by ...Let the Elephants Leave the Room: Tips for Making Development Life Leaner by ...
Let the Elephants Leave the Room: Tips for Making Development Life Leaner by ...
 
Hybrid Apps with Ionic Framework
Hybrid Apps with Ionic FrameworkHybrid Apps with Ionic Framework
Hybrid Apps with Ionic Framework
 
JBoss Forge - Breaking new ground in developer productivity
JBoss Forge - Breaking new ground in developer productivityJBoss Forge - Breaking new ground in developer productivity
JBoss Forge - Breaking new ground in developer productivity
 
Merge hells!! feature toggles to the rescue - Presented @ Agile Toronto
Merge hells!! feature toggles to the rescue - Presented @ Agile TorontoMerge hells!! feature toggles to the rescue - Presented @ Agile Toronto
Merge hells!! feature toggles to the rescue - Presented @ Agile Toronto
 
Merge hells!! Feature toggles to the rescue - DevOpsDays Madison
Merge hells!! Feature toggles to the rescue - DevOpsDays MadisonMerge hells!! Feature toggles to the rescue - DevOpsDays Madison
Merge hells!! Feature toggles to the rescue - DevOpsDays Madison
 
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
 
Developer Productivity with Forge, Java EE 6 and Arquillian
Developer Productivity with Forge, Java EE 6 and ArquillianDeveloper Productivity with Forge, Java EE 6 and Arquillian
Developer Productivity with Forge, Java EE 6 and Arquillian
 
Developer Efficiency
Developer EfficiencyDeveloper Efficiency
Developer Efficiency
 

Similar to Mobeers waterloo-2011

I knew there had to be a better way to build mobile apps
I knew there had to be a better way to build mobile appsI knew there had to be a better way to build mobile apps
I knew there had to be a better way to build mobile appsAlius Petraška
 
«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​FDConf
 
Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Nuxeo
 
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There TodayHTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There Todaydavyjones
 
Phonegap for Engineers
Phonegap for EngineersPhonegap for Engineers
Phonegap for EngineersBrian LeRoux
 
Android development workshop
Android development workshopAndroid development workshop
Android development workshopJeff Sonstein
 
Native vs HTML
Native vs HTMLNative vs HTML
Native vs HTMLludlola
 
Creating mLearning With Your Existing Toolkit
Creating mLearning With Your Existing ToolkitCreating mLearning With Your Existing Toolkit
Creating mLearning With Your Existing ToolkitChad Udell
 
2011 code camp
2011 code camp2011 code camp
2011 code campimranq2
 
Development of a mobile app for Android
Development of a mobile app for AndroidDevelopment of a mobile app for Android
Development of a mobile app for AndroidAlexJReid
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium IntroNicholas Jansma
 
Webview: The fifth element
Webview: The fifth elementWebview: The fifth element
Webview: The fifth elementFernando Cejas
 
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...Heiko Voigt
 
Building Effective and Rapid Applications with IBM MobileFirst Platform
Building Effective and Rapid Applications with IBM MobileFirst PlatformBuilding Effective and Rapid Applications with IBM MobileFirst Platform
Building Effective and Rapid Applications with IBM MobileFirst PlatformAndrew Ferrier
 
PhoneGap at Facebook Mobile Hack
PhoneGap at Facebook Mobile HackPhoneGap at Facebook Mobile Hack
PhoneGap at Facebook Mobile HackPhoneGap
 
Xcode, Basics and Beyond
Xcode, Basics and BeyondXcode, Basics and Beyond
Xcode, Basics and Beyondrsebbe
 
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGapBuilding Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGapNick Landry
 

Similar to Mobeers waterloo-2011 (20)

I knew there had to be a better way to build mobile apps
I knew there had to be a better way to build mobile appsI knew there had to be a better way to build mobile apps
I knew there had to be a better way to build mobile apps
 
«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​
 
Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011
 
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There TodayHTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
 
Phonegap for Engineers
Phonegap for EngineersPhonegap for Engineers
Phonegap for Engineers
 
Android development workshop
Android development workshopAndroid development workshop
Android development workshop
 
Txjs
TxjsTxjs
Txjs
 
Native vs HTML
Native vs HTMLNative vs HTML
Native vs HTML
 
Creating mLearning With Your Existing Toolkit
Creating mLearning With Your Existing ToolkitCreating mLearning With Your Existing Toolkit
Creating mLearning With Your Existing Toolkit
 
Mobile native-hacks
Mobile native-hacksMobile native-hacks
Mobile native-hacks
 
2011 code camp
2011 code camp2011 code camp
2011 code camp
 
Development of a mobile app for Android
Development of a mobile app for AndroidDevelopment of a mobile app for Android
Development of a mobile app for Android
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium Intro
 
Webview: The fifth element
Webview: The fifth elementWebview: The fifth element
Webview: The fifth element
 
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
 
Building Effective and Rapid Applications with IBM MobileFirst Platform
Building Effective and Rapid Applications with IBM MobileFirst PlatformBuilding Effective and Rapid Applications with IBM MobileFirst Platform
Building Effective and Rapid Applications with IBM MobileFirst Platform
 
PhoneGap at Facebook Mobile Hack
PhoneGap at Facebook Mobile HackPhoneGap at Facebook Mobile Hack
PhoneGap at Facebook Mobile Hack
 
1. course introduction
1. course introduction1. course introduction
1. course introduction
 
Xcode, Basics and Beyond
Xcode, Basics and BeyondXcode, Basics and Beyond
Xcode, Basics and Beyond
 
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGapBuilding Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
 

More from Brian 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
 
Mobile Web App Development
Mobile Web App DevelopmentMobile Web App Development
Mobile Web App DevelopmentBrian LeRoux
 

More from Brian LeRoux (8)

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
 
Palm Developer Day PhoneGap
Palm Developer Day PhoneGap Palm Developer Day PhoneGap
Palm Developer Day PhoneGap
 
Scurvyconf
ScurvyconfScurvyconf
Scurvyconf
 
Mobile Web App Development
Mobile Web App DevelopmentMobile Web App Development
Mobile Web App Development
 
Mobile JavaScript
Mobile JavaScriptMobile JavaScript
Mobile JavaScript
 
Phonegap 1.0
Phonegap 1.0Phonegap 1.0
Phonegap 1.0
 

Recently uploaded

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 

Recently uploaded (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 

Mobeers waterloo-2011

  • 3. the killing field • phonegap project background • mobile projects in practice • backend design concerns • mobile web client design • progressive enhancement to ‘native’
  • 5. phonegap project • history/goals/philosphy • licensing • web standards • the phonegap technique (ffi / bridge) • platform support • more on the bridge: plugins • the future of mobile is device apis • device apis: sensors • device apis: data • device apis: outputs • present and future: a little about our roadmap • phonegap/build • perceived competition
  • 6. phonegap project • history/goals/philosphy • licensing • web standards • • imma teach ya fuckin the phonegap technique (ffi / bridge) platform support • everything aight? more on the bridge: plugins • the future of mobile is device apis • device apis: sensors • device apis: data • device apis: outputs • present and future: a little about our roadmap • phonegap/build • perceived competition
  • 7. history • 2008 got its start as a lofty summertime hack; gained traction as a concept @nitobi with android and blackberry implementations in the fall • 2009 ppl started to pay attention when we got ‘rejected’ by apple; we added Symbian and webOS support • 2010 IBM began tag teaming w/ Nitobi • 2011 RIM joined: now its a gang bang • 2011 we shipped 1.x
  • 8. philosophy • unix was (still is) right • simple is better • plan to fail; software is organic • when in doubt use brute force
  • 9. goals • the web as a first class platform • => installable web apps • cease to exist • => browsers adopt this model
  • 10. licensing • users: mit/bsd • contributors: apache
  • 11. free defined • free to use • free to modify • free to distribute • free to change • free to sell
  • 12. omg, how does anyone make money?
  • 14. Nitobi vs PhoneGap • we are the creators • we are contributors • nitobi is a software company that makes money writing software for ppl • we give away as much IP as possible
  • 15. web standards • w3c has many • whatwg seems to be working well • bondi / jil / wac / webinos • de facto standards ? • mozilla getting snippy about the flailing of the various standards bodies: web apis and b2g (fuck yes.)
  • 16. the phonegap technique • colloquially called ‘the bridge’ • more correctly a FFI (foreign function interface)
  • 17. the technique ‘splained 1. we instantiate a webview 2. we call js from the native code (‘deviceready’) 3. you can call native code from the js ... aaaand then we send data/ callbacks from the native!
  • 18. primary platforms • Apple iOS >= 3 (we’ve supported since 1.x) • Google Android >= 1.5 • BlackBerry >= 5.x (supported since 4.2)
  • 19. platforms support cont. • HP webOS • Nokia Symbian • Samsung Bada
  • 20. fall 2011 • Windows Phone 7 • MeeGo
  • 21. further experiments • various desktop experiments • mozilla firefox mobile (once fennec) • Qt is super portable (thus MeeGo)
  • 22. No mobile dev platform supports as many deploy targets as PhoneGap. Not even a single browser...not yet anyhow.
  • 26. device apis • sensors • data • outputs
  • 27. sensors • geo / accelerometer / gyroscope • camera
  • 29. outputs • device screen(s) • speakers • speaker jack...
  • 30. plugins • everything is one • any native api is permitted
  • 31. plugins • everything is one • any native api is permitted
  • 32. 2.x roadmap! • plugins • performance • security • tooling
  • 33. Plugins TODO • packaging • installation / removal / deps • discovery
  • 34. Performance • benchmarking us (right now just init) • benchmarking them (popular js libs) • js unification and cleanup • continual improvements to the bridge • plugins removal will help tonnes • data access another area of interest
  • 35. security • locking down the file:// • config.xml feature element lockdown • code hotloading (hydra project) • some crypto apis • looking secure storage
  • 36. tooling • unification of mobile dev nomenclature • standard project directory structuring • build the tools devs are REbuilding every project
  • 37. tooling • unification of mobile dev nomenclature automate project directory structuringbitch the shit out of this • standard • build the tools devs are REbuilding every project
  • 38. common tasks • launch an emulator • create a project • build a project to a device / emulator • attach a logger (console.log to stdout) • run the mobile-spec unit test suite
  • 39. A quick interlude about competition • We have none.
  • 40. Lets review • philosophy • licensing • community adoption • contributors • tooling from 3rd parties • no lock in: your app runs in a browser too
  • 41. PhoneGap/Build • We build your apps ‘in the cloud’. • A commercial enterprise from Nitobi. • Always free for Free/Open Source projects. • Always 1 free private repo for developers.
  • 43. mobile projs in practice • define your project philosophy and goals • value != money • design (...not just the pretty) • shipping
  • 44. know your philosophy • a good problem defn outlines a solution value proposition • can’t be a hero without an enemy
  • 45. have a goal (not goals) • min viable product defn • 1 sentence: no use of the word ‘and’
  • 46. great ux happens iteratively • you design always; init w/ research • big upfront designs fail. don’t fail.
  • 47. bias • technical bias is a normal condition • embrace your bias; its skills you have • embrace your existing technical debt • be wary of anything preaching a ‘one true way’
  • 49. Good news! • You have likely already invested in the web. • If not, don’t worry, web tech is being taught in elementary schools. • Today you have the knowledge and skills to build end to end systems with HTML, CSS and JavaScript.
  • 50. shipping • a daily activity • writing unit tests for health and sanity • single click builds (test/dev/release) • distributed rcs and practices are crucial • automate everything manual

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n