SlideShare ist ein Scribd-Unternehmen logo
1 von 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?

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

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
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
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
 
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
 
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
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
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
 
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
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 

Kürzlich hochgeladen (20)

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
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
 
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
 
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
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
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
 
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
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 

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

Hinweis der Redaktion

  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