SlideShare a Scribd company logo
1 of 29
The Power, and Pain, of Cordova Plugins 
Paul Fischer, Intel Corporation 
Software and Services Group 
Technical Consulting Engineer 
paul.a.fischer@intel.com 
@xmnboy
abstract 
An explosion in the number and variety of Cordova (pronounced 
/fōn•gap/) plugins are invading hybrid HTML5 mobile apps. 
Cordova plugins provide the extra ingredient that distinguishes a 
“vanilla” web app from a “mint chocolate chip” hybrid web app. 
Where do plugins come from? 
How do I use them with my HTML5 app? 
Which ones are okay and which are not? 
How do I debug an app that contains plugins? 
2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 2
Hybrid HTML5 App Advantage Native Apps 
 Advanced UI interactions 
 Smoothest performance 
 App store distribution 
Single 
Platform 
Partial 
Capabilities 
Multiple 
Platforms 
Full 
Capabilities 
Web Apps 
 Web developer skills 
 Instant updates 
 Unrestricted distribution 
Hybrid HTML5 Apps 
 Web developer skills 
 Access to native platform 
 App store distribution 
2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 3
Mobile HTML5 Web App Block Diagram 
HTML5 Web App 
Mobile Browser 
Device Libraries 
Mobile Device OS 
2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 4
Mobile Hybrid HTML5 WebView App Block Diagram 
Hybrid Extension 
Bridge 
Device Libraries 
HTML5 
WebView App 
Native WebView 
Mobile Device OS 
2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 5
Web vs. Hybrid vs. HTML5 Applications 
Web App 
limited 
sensor input 
Today Tomorrow 
Hybrid App 
full 
sensor input 
HTML5 App 
full 
device access 
Runs w/o network Yes Yes Yes 
Flexible Layout Yes Yes Yes 
Device APIs Limited Mostly Complete 
Distribution URL Native Binary URL/WGT 
Cross Platform Yes Yes & No Yes 
Runs in Web Browser Yes No No 
Runs in Web Runtime No Yes Yes 
The HTML5 standard is evolving to include device APIs 
2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 6
Just think of hybrid as a tasty “Black and Tan” 
Web App Stuff 
(stout) 
Native App Stuff 
(pale ale) 
/fōn•gap/ 
stuff 
(if you’re Irish or don’t like beer, think of it as an “Arnold Palmer”) 
p.s. it’s spelled “Cordova” but pronounced /fōn•gap/ 
2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 7
…with a dash of Cordova Plugins… 
Web App Stuff 
(stout) 
Native App Stuff 
(pale ale) 
/fōn•gap/ 
stuff 
file access 
status bar 
(if you’re Irish or don’t like beer, think of it as an “Arnold Palmer”) 
p.s. it’s spelled “Cordova” but pronounced /fōn•gap/ 
2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 8
..but I’m thirsty, so more Cordova Plugins… 
Web App Stuff 
(stout) 
Native App Stuff 
(pale ale) 
/fōn•gap/ 
file access 
status bar 
camera 
motion 
(if you’re Irish or don’t like beer, think of it as an “Arnold Palmer”) 
stuff 
p.s. it’s spelled “Cordova” but pronounced /fōn•gap/ 
2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 9
..it’s hot outside, need more Cordova Plugins… 
Web App Stuff 
(stout) 
Native App Stuff 
(pale ale) 
file access 
status bar 
camera 
motion 
advertisements 
push 
(if you’re Irish or don’t like beer, think of it as an “Arnold Palmer”) 
/fōn•gap/ 
stuff 
p.s. it’s spelled “Cordova” but pronounced /fōn•gap/ 
2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 10
Where do I get Cordova Plugins? 
2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 11
Where do I get Cordova Plugins? 
2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 12
Where do I get Cordova Plugins? 
2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 13
Which do I use? 
Which author? 
Which version? 
What platform? 
Most popular? 
How much? 
2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 14
Which version should I use? 
2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 15
Which platforms does my plugin support? 
2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 16
Too Many Plugins to Choose From! 
2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 17
Insert Amazing Demo Here! 
…well, maybe just an interesting demo… 
2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 18
Hybrid App Debug Options 
Desktop Browser 
 Standard HTML5 APIs 
 No device APIs 
 Emulate device viewport 
 No WebView capability emulation 
Device Simulator or Emulator 
 Visual rendering close to real device 
 Many device APIs not present 
 Some device APIs poorly simulated 
Chrome Browser + Ripple 
 Adds many (not all) standard device APIs 
 Overly optimistic device and API 
representation 
Weinre + Real Device 
 Accurate rendering 
 Accurate features and device API 
 No JavaScript debug 
 Fragile debug connection 
Remote Web Inspector or 
Remote Chrome Dev Tools 
 Accurate rendering 
 Accurate features and device API 
 Full debug features 
 Includes JavaScript debug 
2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 19
Inside a Browser vs. Inside a WebView 
Desktop Browser Mobile Browser Native WebView 
2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 20
Weinre Remote Debug -- Elements 
2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 21
Weinre Remote Debug -- Console 
2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 22
23 
HTML5 Cross-platform Development Environment 
Intel® XDK is a free download for Windows*, OS X*, and Ubuntu* Linux 
http://XDK.Intel.com 
2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins
Intel® Developer Zone 
Tools. Knowledge. Community. 
Free tools and code samples 
Technical articles, 
forums and tutorials 
Connect with Intel 
and industry experts 
Get development support 
software.intel.com
Intel® XDK: Hybrid HTML5 Mobile App Development 
Debug and Test Tools 
• HTML5 Brackets* Editor 
• App Designer Layout Editor 
• Ripple* Cordova* Emulator 
• Intel App Preview Debugger 
• Remote Chrome* DevTools* 
• “weinre” Remote Inspector 
• On Device Live Preview 
Services and Content 
thru APIs and Plugins 
Mashery* (et al) 
Multiple Form Factors 
and Platforms 
• iOS* iPhone* and iPad* 
• Android* x86 and ARM* 
• Crosswalk* x86 and ARM 
• Windows* 8 Store “Metro” UI 
• Windows 8 Phone 
• HTML5 Packaged Web Apps: 
- Tizen*, Firefox* and Chrome 
2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 25
Download App Preview onto Your Device 
Trouble scanning? Try using Google* Goggles or RedLaser* Barcode. 
Android* 
bit.ly/1i8VEgl 
iOS* 
bit.ly/1a3W7Bk 
Windows* 8 
bit.ly/1j8rxdJ 
2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 26
Hybrid HTML5 Apps… 
…allow developers to build apps using 
these skills and tools… 
…that can be distributed 
in native app stores. 
2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 27
Intel® XDK Handles (fōn•gap) Cordova! 
The Intel® XDK facilitates the development of hybrid HTML5 
applications for iOS*, Android*, Windows* 8 and other mobile devices. 
Visit the Intel Developer Zone  xdk.intel.com 
2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 28
Intel XDK Emulate and On-Device Debug 
29 
Intel® XDK Emulator 
 Preview in various phone and tablet formats 
 iPhone*, iPad*, Android* devices, Windows* 8 tablet… 
 Simulate device-specific features 
 accelerometer, compass, GPS, vibrate, orientation… 
 Debug using standard Chrome DevTools (CDT) 
 Simulation of intel.xdk and cordova APIs 
 Intel XDK 4.0.0 and Cordova 2.9.0 API levels 
App Preview  On-Device Previewer 
 Quickly load and run projects directly on real devices 
 Access to indel.xdk and cordova device APIs 
App Debugger  On-Device Remote Debug 
 Remote access to device JavaScript console (aka CDT) 
2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins

More Related Content

What's hot

Building Beautiful Apps using Google Flutter
Building Beautiful Apps using Google FlutterBuilding Beautiful Apps using Google Flutter
Building Beautiful Apps using Google FlutterAhmed Abu Eldahab
 
Flutter A year of creativity!
Flutter A year of creativity!Flutter A year of creativity!
Flutter A year of creativity!Ahmed Abu Eldahab
 
Building beautiful apps using google flutter
Building beautiful apps using google flutterBuilding beautiful apps using google flutter
Building beautiful apps using google flutterAhmed Abu Eldahab
 
Mobile Apps Using AngularJS - Adam Klein @ AngularJS IL
Mobile Apps Using AngularJS - Adam Klein @ AngularJS ILMobile Apps Using AngularJS - Adam Klein @ AngularJS IL
Mobile Apps Using AngularJS - Adam Klein @ AngularJS ILRon Gershinsky
 
Google flutter the easy and practical way
Google flutter the easy and practical wayGoogle flutter the easy and practical way
Google flutter the easy and practical wayAhmed Abu Eldahab
 
The Magic of flutter Comex oman 2019
The Magic of flutter Comex oman 2019The Magic of flutter Comex oman 2019
The Magic of flutter Comex oman 2019Ahmed Abu Eldahab
 
Tizen Native Application Development with C/C++
Tizen Native Application Development with C/C++Tizen Native Application Development with C/C++
Tizen Native Application Development with C/C++Gilang Mentari Hamidy
 
Teams progress presenation
Teams progress presenationTeams progress presenation
Teams progress presenationOleg Seriaga
 
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...EnlightenmentProject
 
Apps with Apache Cordova and Phonegap
Apps with Apache Cordova and PhonegapApps with Apache Cordova and Phonegap
Apps with Apache Cordova and PhonegapChristian Grobmeier
 
Building beautiful apps using google flutter
Building beautiful apps using google flutterBuilding beautiful apps using google flutter
Building beautiful apps using google flutterAhmed Abu Eldahab
 
Null safety in dart and flutter , the whole story!
Null safety in dart and flutter , the whole story!Null safety in dart and flutter , the whole story!
Null safety in dart and flutter , the whole story!Ahmed Abu Eldahab
 
Cross platform mobile application development
Cross platform mobile application developmentCross platform mobile application development
Cross platform mobile application developmentwebprogr.com
 
Time to learn flutter or stick to native development
Time to learn flutter or stick to native development Time to learn flutter or stick to native development
Time to learn flutter or stick to native development Concetto Labs
 
Google flutter the easy and practical way
Google flutter the easy and practical wayGoogle flutter the easy and practical way
Google flutter the easy and practical wayAhmed Abu Eldahab
 
PhoneGap: a brief history and apologia
PhoneGap: a brief history and apologiaPhoneGap: a brief history and apologia
PhoneGap: a brief history and apologialorinbeer
 
Enterprise ipad Development with notes
Enterprise ipad Development with notesEnterprise ipad Development with notes
Enterprise ipad Development with notesjaxarcsig
 

What's hot (20)

Building Beautiful Apps using Google Flutter
Building Beautiful Apps using Google FlutterBuilding Beautiful Apps using Google Flutter
Building Beautiful Apps using Google Flutter
 
Flutter A year of creativity!
Flutter A year of creativity!Flutter A year of creativity!
Flutter A year of creativity!
 
6 x1 flutter_talk
6 x1 flutter_talk6 x1 flutter_talk
6 x1 flutter_talk
 
Building beautiful apps using google flutter
Building beautiful apps using google flutterBuilding beautiful apps using google flutter
Building beautiful apps using google flutter
 
Mobile Apps Using AngularJS - Adam Klein @ AngularJS IL
Mobile Apps Using AngularJS - Adam Klein @ AngularJS ILMobile Apps Using AngularJS - Adam Klein @ AngularJS IL
Mobile Apps Using AngularJS - Adam Klein @ AngularJS IL
 
Google flutter the easy and practical way
Google flutter the easy and practical wayGoogle flutter the easy and practical way
Google flutter the easy and practical way
 
The Magic of flutter Comex oman 2019
The Magic of flutter Comex oman 2019The Magic of flutter Comex oman 2019
The Magic of flutter Comex oman 2019
 
Flutter - DevFestDC
Flutter - DevFestDCFlutter - DevFestDC
Flutter - DevFestDC
 
Tizen Native Application Development with C/C++
Tizen Native Application Development with C/C++Tizen Native Application Development with C/C++
Tizen Native Application Development with C/C++
 
Teams progress presenation
Teams progress presenationTeams progress presenation
Teams progress presenation
 
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...
 
Apps with Apache Cordova and Phonegap
Apps with Apache Cordova and PhonegapApps with Apache Cordova and Phonegap
Apps with Apache Cordova and Phonegap
 
Building beautiful apps using google flutter
Building beautiful apps using google flutterBuilding beautiful apps using google flutter
Building beautiful apps using google flutter
 
Null safety in dart and flutter , the whole story!
Null safety in dart and flutter , the whole story!Null safety in dart and flutter , the whole story!
Null safety in dart and flutter , the whole story!
 
Cross platform mobile application development
Cross platform mobile application developmentCross platform mobile application development
Cross platform mobile application development
 
Time to learn flutter or stick to native development
Time to learn flutter or stick to native development Time to learn flutter or stick to native development
Time to learn flutter or stick to native development
 
Google flutter the easy and practical way
Google flutter the easy and practical wayGoogle flutter the easy and practical way
Google flutter the easy and practical way
 
tittanium
tittaniumtittanium
tittanium
 
PhoneGap: a brief history and apologia
PhoneGap: a brief history and apologiaPhoneGap: a brief history and apologia
PhoneGap: a brief history and apologia
 
Enterprise ipad Development with notes
Enterprise ipad Development with notesEnterprise ipad Development with notes
Enterprise ipad Development with notes
 

Similar to The Power, and Pain, of Cordova Plugins

Mobile Web Apps and the Intel® XDK
Mobile Web Apps and the Intel® XDKMobile Web Apps and the Intel® XDK
Mobile Web Apps and the Intel® XDKIntel® Software
 
Crosswalk and the Intel XDK
Crosswalk and the Intel XDKCrosswalk and the Intel XDK
Crosswalk and the Intel XDKIntel® Software
 
Cross-platform Mobile Development on Open Source
Cross-platform Mobile Development on Open SourceCross-platform Mobile Development on Open Source
Cross-platform Mobile Development on Open SourceAll Things Open
 
Cordova Developer Landscape 2015/09
Cordova Developer Landscape 2015/09Cordova Developer Landscape 2015/09
Cordova Developer Landscape 2015/09Carl Vorster
 
Flutter 2.8 features and updates
Flutter 2.8 features and updatesFlutter 2.8 features and updates
Flutter 2.8 features and updatesAhmed Abu Eldahab
 
Flutter latest updates and features 2022
Flutter latest updates and features 2022Flutter latest updates and features 2022
Flutter latest updates and features 2022Ahmed Abu Eldahab
 
Getting Started with Titanium
Getting Started with TitaniumGetting Started with Titanium
Getting Started with TitaniumKevin Whinnery
 
adaptTo() 2014 - Mobile app dev with Cordova, Sling, and AEM
adaptTo() 2014 - Mobile app dev with Cordova, Sling, and AEMadaptTo() 2014 - Mobile app dev with Cordova, Sling, and AEM
adaptTo() 2014 - Mobile app dev with Cordova, Sling, and AEMrbl002
 
Cross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioCross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioMizanur Sarker
 
Developing cross platforms mobile applications using the Apache Cordova
Developing cross platforms mobile applications using the Apache CordovaDeveloping cross platforms mobile applications using the Apache Cordova
Developing cross platforms mobile applications using the Apache CordovaMahmoud Tolba
 
Começando com Android
Começando com AndroidComeçando com Android
Começando com AndroidDextra
 
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014Hazem Saleh
 
Apache Cordova - State of the Union 2014
Apache Cordova  - State of the Union 2014Apache Cordova  - State of the Union 2014
Apache Cordova - State of the Union 2014Shazron Abdullah
 
Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Ryan Cuprak
 
Hybrid Mobile Apps - Meetup
Hybrid Mobile Apps - MeetupHybrid Mobile Apps - Meetup
Hybrid Mobile Apps - MeetupSanjay Patel
 
Android Development...Using Web Technologies
Android Development...Using Web TechnologiesAndroid Development...Using Web Technologies
Android Development...Using Web TechnologiesCommonsWare
 
Getting Acquainted with PhoneGap
Getting Acquainted with PhoneGapGetting Acquainted with PhoneGap
Getting Acquainted with PhoneGapJoseph Labrecque
 

Similar to The Power, and Pain, of Cordova Plugins (20)

Mobile Web Apps and the Intel® XDK
Mobile Web Apps and the Intel® XDKMobile Web Apps and the Intel® XDK
Mobile Web Apps and the Intel® XDK
 
Crosswalk and the Intel XDK
Crosswalk and the Intel XDKCrosswalk and the Intel XDK
Crosswalk and the Intel XDK
 
Cross-platform Mobile Development on Open Source
Cross-platform Mobile Development on Open SourceCross-platform Mobile Development on Open Source
Cross-platform Mobile Development on Open Source
 
Cordova Developer Landscape 2015/09
Cordova Developer Landscape 2015/09Cordova Developer Landscape 2015/09
Cordova Developer Landscape 2015/09
 
Flutter 2.8 features and updates
Flutter 2.8 features and updatesFlutter 2.8 features and updates
Flutter 2.8 features and updates
 
Flutter latest updates and features 2022
Flutter latest updates and features 2022Flutter latest updates and features 2022
Flutter latest updates and features 2022
 
Getting Started with Titanium
Getting Started with TitaniumGetting Started with Titanium
Getting Started with Titanium
 
Getting Started with Titanium
Getting Started with TitaniumGetting Started with Titanium
Getting Started with Titanium
 
adaptTo() 2014 - Mobile app dev with Cordova, Sling, and AEM
adaptTo() 2014 - Mobile app dev with Cordova, Sling, and AEMadaptTo() 2014 - Mobile app dev with Cordova, Sling, and AEM
adaptTo() 2014 - Mobile app dev with Cordova, Sling, and AEM
 
Cross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioCross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual Studio
 
Developing cross platforms mobile applications using the Apache Cordova
Developing cross platforms mobile applications using the Apache CordovaDeveloping cross platforms mobile applications using the Apache Cordova
Developing cross platforms mobile applications using the Apache Cordova
 
A WebRTC Overview
A WebRTC OverviewA WebRTC Overview
A WebRTC Overview
 
Começando com Android
Começando com AndroidComeçando com Android
Começando com Android
 
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014
 
Apache cordova
Apache cordovaApache cordova
Apache cordova
 
Apache Cordova - State of the Union 2014
Apache Cordova  - State of the Union 2014Apache Cordova  - State of the Union 2014
Apache Cordova - State of the Union 2014
 
Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and
 
Hybrid Mobile Apps - Meetup
Hybrid Mobile Apps - MeetupHybrid Mobile Apps - Meetup
Hybrid Mobile Apps - Meetup
 
Android Development...Using Web Technologies
Android Development...Using Web TechnologiesAndroid Development...Using Web Technologies
Android Development...Using Web Technologies
 
Getting Acquainted with PhoneGap
Getting Acquainted with PhoneGapGetting Acquainted with PhoneGap
Getting Acquainted with PhoneGap
 

More from Intel® Software

AI for All: Biology is eating the world & AI is eating Biology
AI for All: Biology is eating the world & AI is eating Biology AI for All: Biology is eating the world & AI is eating Biology
AI for All: Biology is eating the world & AI is eating Biology Intel® Software
 
Python Data Science and Machine Learning at Scale with Intel and Anaconda
Python Data Science and Machine Learning at Scale with Intel and AnacondaPython Data Science and Machine Learning at Scale with Intel and Anaconda
Python Data Science and Machine Learning at Scale with Intel and AnacondaIntel® Software
 
Streamline End-to-End AI Pipelines with Intel, Databricks, and OmniSci
Streamline End-to-End AI Pipelines with Intel, Databricks, and OmniSciStreamline End-to-End AI Pipelines with Intel, Databricks, and OmniSci
Streamline End-to-End AI Pipelines with Intel, Databricks, and OmniSciIntel® Software
 
AI for good: Scaling AI in science, healthcare, and more.
AI for good: Scaling AI in science, healthcare, and more.AI for good: Scaling AI in science, healthcare, and more.
AI for good: Scaling AI in science, healthcare, and more.Intel® Software
 
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...Intel® Software
 
Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...
Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...
Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...Intel® Software
 
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...Intel® Software
 
AWS & Intel Webinar Series - Accelerating AI Research
AWS & Intel Webinar Series - Accelerating AI ResearchAWS & Intel Webinar Series - Accelerating AI Research
AWS & Intel Webinar Series - Accelerating AI ResearchIntel® Software
 
Intel AIDC Houston Summit - Overview Slides
Intel AIDC Houston Summit - Overview SlidesIntel AIDC Houston Summit - Overview Slides
Intel AIDC Houston Summit - Overview SlidesIntel® Software
 
AIDC NY: BODO AI Presentation - 09.19.2019
AIDC NY: BODO AI Presentation - 09.19.2019AIDC NY: BODO AI Presentation - 09.19.2019
AIDC NY: BODO AI Presentation - 09.19.2019Intel® Software
 
AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019
AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019
AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019Intel® Software
 
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...Intel® Software
 
Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Ses...
Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Ses...Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Ses...
Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Ses...Intel® Software
 
Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...
Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...
Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...Intel® Software
 
RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...
RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...
RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...Intel® Software
 
AIDC India - Intel Movidius / Open Vino Slides
AIDC India - Intel Movidius / Open Vino SlidesAIDC India - Intel Movidius / Open Vino Slides
AIDC India - Intel Movidius / Open Vino SlidesIntel® Software
 
AIDC India - AI Vision Slides
AIDC India - AI Vision SlidesAIDC India - AI Vision Slides
AIDC India - AI Vision SlidesIntel® Software
 
Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...
Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...
Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...Intel® Software
 

More from Intel® Software (20)

AI for All: Biology is eating the world & AI is eating Biology
AI for All: Biology is eating the world & AI is eating Biology AI for All: Biology is eating the world & AI is eating Biology
AI for All: Biology is eating the world & AI is eating Biology
 
Python Data Science and Machine Learning at Scale with Intel and Anaconda
Python Data Science and Machine Learning at Scale with Intel and AnacondaPython Data Science and Machine Learning at Scale with Intel and Anaconda
Python Data Science and Machine Learning at Scale with Intel and Anaconda
 
Streamline End-to-End AI Pipelines with Intel, Databricks, and OmniSci
Streamline End-to-End AI Pipelines with Intel, Databricks, and OmniSciStreamline End-to-End AI Pipelines with Intel, Databricks, and OmniSci
Streamline End-to-End AI Pipelines with Intel, Databricks, and OmniSci
 
AI for good: Scaling AI in science, healthcare, and more.
AI for good: Scaling AI in science, healthcare, and more.AI for good: Scaling AI in science, healthcare, and more.
AI for good: Scaling AI in science, healthcare, and more.
 
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...
 
Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...
Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...
Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...
 
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...
 
AWS & Intel Webinar Series - Accelerating AI Research
AWS & Intel Webinar Series - Accelerating AI ResearchAWS & Intel Webinar Series - Accelerating AI Research
AWS & Intel Webinar Series - Accelerating AI Research
 
Intel Developer Program
Intel Developer ProgramIntel Developer Program
Intel Developer Program
 
Intel AIDC Houston Summit - Overview Slides
Intel AIDC Houston Summit - Overview SlidesIntel AIDC Houston Summit - Overview Slides
Intel AIDC Houston Summit - Overview Slides
 
AIDC NY: BODO AI Presentation - 09.19.2019
AIDC NY: BODO AI Presentation - 09.19.2019AIDC NY: BODO AI Presentation - 09.19.2019
AIDC NY: BODO AI Presentation - 09.19.2019
 
AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019
AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019
AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019
 
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...
 
Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Ses...
Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Ses...Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Ses...
Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Ses...
 
Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...
Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...
Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...
 
RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...
RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...
RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...
 
AIDC India - AI on IA
AIDC India  - AI on IAAIDC India  - AI on IA
AIDC India - AI on IA
 
AIDC India - Intel Movidius / Open Vino Slides
AIDC India - Intel Movidius / Open Vino SlidesAIDC India - Intel Movidius / Open Vino Slides
AIDC India - Intel Movidius / Open Vino Slides
 
AIDC India - AI Vision Slides
AIDC India - AI Vision SlidesAIDC India - AI Vision Slides
AIDC India - AI Vision Slides
 
Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...
Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...
Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...
 

Recently uploaded

Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
🐬 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
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 

The Power, and Pain, of Cordova Plugins

  • 1. The Power, and Pain, of Cordova Plugins Paul Fischer, Intel Corporation Software and Services Group Technical Consulting Engineer paul.a.fischer@intel.com @xmnboy
  • 2. abstract An explosion in the number and variety of Cordova (pronounced /fōn•gap/) plugins are invading hybrid HTML5 mobile apps. Cordova plugins provide the extra ingredient that distinguishes a “vanilla” web app from a “mint chocolate chip” hybrid web app. Where do plugins come from? How do I use them with my HTML5 app? Which ones are okay and which are not? How do I debug an app that contains plugins? 2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 2
  • 3. Hybrid HTML5 App Advantage Native Apps  Advanced UI interactions  Smoothest performance  App store distribution Single Platform Partial Capabilities Multiple Platforms Full Capabilities Web Apps  Web developer skills  Instant updates  Unrestricted distribution Hybrid HTML5 Apps  Web developer skills  Access to native platform  App store distribution 2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 3
  • 4. Mobile HTML5 Web App Block Diagram HTML5 Web App Mobile Browser Device Libraries Mobile Device OS 2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 4
  • 5. Mobile Hybrid HTML5 WebView App Block Diagram Hybrid Extension Bridge Device Libraries HTML5 WebView App Native WebView Mobile Device OS 2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 5
  • 6. Web vs. Hybrid vs. HTML5 Applications Web App limited sensor input Today Tomorrow Hybrid App full sensor input HTML5 App full device access Runs w/o network Yes Yes Yes Flexible Layout Yes Yes Yes Device APIs Limited Mostly Complete Distribution URL Native Binary URL/WGT Cross Platform Yes Yes & No Yes Runs in Web Browser Yes No No Runs in Web Runtime No Yes Yes The HTML5 standard is evolving to include device APIs 2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 6
  • 7. Just think of hybrid as a tasty “Black and Tan” Web App Stuff (stout) Native App Stuff (pale ale) /fōn•gap/ stuff (if you’re Irish or don’t like beer, think of it as an “Arnold Palmer”) p.s. it’s spelled “Cordova” but pronounced /fōn•gap/ 2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 7
  • 8. …with a dash of Cordova Plugins… Web App Stuff (stout) Native App Stuff (pale ale) /fōn•gap/ stuff file access status bar (if you’re Irish or don’t like beer, think of it as an “Arnold Palmer”) p.s. it’s spelled “Cordova” but pronounced /fōn•gap/ 2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 8
  • 9. ..but I’m thirsty, so more Cordova Plugins… Web App Stuff (stout) Native App Stuff (pale ale) /fōn•gap/ file access status bar camera motion (if you’re Irish or don’t like beer, think of it as an “Arnold Palmer”) stuff p.s. it’s spelled “Cordova” but pronounced /fōn•gap/ 2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 9
  • 10. ..it’s hot outside, need more Cordova Plugins… Web App Stuff (stout) Native App Stuff (pale ale) file access status bar camera motion advertisements push (if you’re Irish or don’t like beer, think of it as an “Arnold Palmer”) /fōn•gap/ stuff p.s. it’s spelled “Cordova” but pronounced /fōn•gap/ 2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 10
  • 11. Where do I get Cordova Plugins? 2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 11
  • 12. Where do I get Cordova Plugins? 2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 12
  • 13. Where do I get Cordova Plugins? 2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 13
  • 14. Which do I use? Which author? Which version? What platform? Most popular? How much? 2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 14
  • 15. Which version should I use? 2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 15
  • 16. Which platforms does my plugin support? 2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 16
  • 17. Too Many Plugins to Choose From! 2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 17
  • 18. Insert Amazing Demo Here! …well, maybe just an interesting demo… 2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 18
  • 19. Hybrid App Debug Options Desktop Browser  Standard HTML5 APIs  No device APIs  Emulate device viewport  No WebView capability emulation Device Simulator or Emulator  Visual rendering close to real device  Many device APIs not present  Some device APIs poorly simulated Chrome Browser + Ripple  Adds many (not all) standard device APIs  Overly optimistic device and API representation Weinre + Real Device  Accurate rendering  Accurate features and device API  No JavaScript debug  Fragile debug connection Remote Web Inspector or Remote Chrome Dev Tools  Accurate rendering  Accurate features and device API  Full debug features  Includes JavaScript debug 2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 19
  • 20. Inside a Browser vs. Inside a WebView Desktop Browser Mobile Browser Native WebView 2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 20
  • 21. Weinre Remote Debug -- Elements 2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 21
  • 22. Weinre Remote Debug -- Console 2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 22
  • 23. 23 HTML5 Cross-platform Development Environment Intel® XDK is a free download for Windows*, OS X*, and Ubuntu* Linux http://XDK.Intel.com 2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins
  • 24. Intel® Developer Zone Tools. Knowledge. Community. Free tools and code samples Technical articles, forums and tutorials Connect with Intel and industry experts Get development support software.intel.com
  • 25. Intel® XDK: Hybrid HTML5 Mobile App Development Debug and Test Tools • HTML5 Brackets* Editor • App Designer Layout Editor • Ripple* Cordova* Emulator • Intel App Preview Debugger • Remote Chrome* DevTools* • “weinre” Remote Inspector • On Device Live Preview Services and Content thru APIs and Plugins Mashery* (et al) Multiple Form Factors and Platforms • iOS* iPhone* and iPad* • Android* x86 and ARM* • Crosswalk* x86 and ARM • Windows* 8 Store “Metro” UI • Windows 8 Phone • HTML5 Packaged Web Apps: - Tizen*, Firefox* and Chrome 2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 25
  • 26. Download App Preview onto Your Device Trouble scanning? Try using Google* Goggles or RedLaser* Barcode. Android* bit.ly/1i8VEgl iOS* bit.ly/1a3W7Bk Windows* 8 bit.ly/1j8rxdJ 2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 26
  • 27. Hybrid HTML5 Apps… …allow developers to build apps using these skills and tools… …that can be distributed in native app stores. 2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 27
  • 28. Intel® XDK Handles (fōn•gap) Cordova! The Intel® XDK facilitates the development of hybrid HTML5 applications for iOS*, Android*, Windows* 8 and other mobile devices. Visit the Intel Developer Zone  xdk.intel.com 2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins 28
  • 29. Intel XDK Emulate and On-Device Debug 29 Intel® XDK Emulator  Preview in various phone and tablet formats  iPhone*, iPad*, Android* devices, Windows* 8 tablet…  Simulate device-specific features  accelerometer, compass, GPS, vibrate, orientation…  Debug using standard Chrome DevTools (CDT)  Simulation of intel.xdk and cordova APIs  Intel XDK 4.0.0 and Cordova 2.9.0 API levels App Preview  On-Device Previewer  Quickly load and run projects directly on real devices  Access to indel.xdk and cordova device APIs App Debugger  On-Device Remote Debug  Remote access to device JavaScript console (aka CDT) 2014 October 20 HTML5 DevConf - Power & Pain of Cordova Plugins

Editor's Notes

  1. Native Apps- Built using the native programming language for the platform (iPhone and iPad apps are built using Objective-C and Android are built with Java). Native apps are fast, provide a native user experience and interface and have access to all device features on the platform. The down side of native apps are their restricted reach: e.g., an android app cannot be run on an iPhone and vice versa. If you want to cover a larger target market, across all platforms, you must build separate native apps for each target. Web Apps - A website built using HTML5, CSS3 and JavaScript which resembles an application and can be accessed through a browser is called a web app. The biggest advantage of web apps is that it can be used across all platforms and devices. However, web apps are not accepted in any of the native app stores thereby cutting off an important distribution channel for app developers. Also, web apps cannot access or use the native APIs or device specific hardware features.
  2. This simple block diagram gives you a sense of how a web application works. Your HTML5 web app runs within the confines of the browser. It’s only interaction with the actual platform is dictated by the browser application. For security reasons, browsers do not provide unlimited access to device features and data; because they can execute arbitrary code that originates from any location on the web they must be overly protective of the platform. Thus, web apps are very limited in their ability to provide an integrated application experience.
  3. This very simple block diagram does not represent all the interactions between the hybrid extension or container, the webview and the underlying native platform. However, it should give you a sense of how a hybrid HTML5 application works. Your HTML5 application talks directly with the container’s JavaScript extension library (e.g., cordova.js). It then interacts with platform-specific code to provide the native device features that can only be executed outside the webview.
  4. Before we venture into the world of building HTML5 mobile device applications it is worth talking about the different kinds of HTML5 apps that exist today. Today there are primarily two types of HTML5 applications: “web apps” and “hybrid apps.” Web apps are really just a web page that appears like an app on a device, but does not actually “install” on that device, it runs inside the mobile device’s browser and is served up by a web server over the Internet. On iOS (Apple) devices there are clever techniques available to hide the fact that you are viewing a web page, special “tags” can be used inside your HTML page(s) to place an icon on an iOS desktop that instructs the browser to load and run this web site. Also, pages within such a “web app” can be cached locally, on the device, in order to accommodate a faster startup that does not depend on a network connection. However, ultimately, these are nothing more than clever URL bookmarks saved on the device screen. These apps cannot be hosted in the Apple store nor are they every truly “installed” on the device. And, unfortunately, this “web app bookmark” trick that works so nicely on iOS devices does not work on Android and other mobile devices. More importantly, these special “web apps” do not have access to device features like the accelerometer, compass, GPS, camera(s), contacts, etc. They are limited by browser security restrictions, and therefore are not considered to be “trusted” applications for the purpose of device and user data access. “Hybrid apps” can be thought of as “web apps” that have been “wrapped” inside a native container so the application can actually be submitted to a device store (Apple store, Android store, etc.) and downloaded for installation on a user’s mobile device. In addition, because hybrid apps are installable apps they have access to device features, so they can more intimately interact with the end user. An “HTML5 app” goes one step beyond a hybrid app. A true HTML5 app is a collection of the HTML5 files (HTML, CSS, JavaScript and related asset files, such as image files) that make up the application. In this case, the collection of files are delivered in a signed ZIP format that is recognized by the target system as a “runnable” application that can be “installed” on the device. Firefox OS applications and Tizen HTML5 applications are such HTML5 apps (of tomorrow). They do not require a special “wrapper” or “container” to turn them into native executables that can be installed and run on a device, they consist only of the HTML5 parts that are necessary to run as HTML5 applications. And the device platform (e.g., Firefox OS and Tizen) provides a complete JavaScript API that allows the applications access to device-specific features, such as sensors, cameras, contact databases, SMS messaging, etc. – access to features you cannot get from a typical browser. The last two rows of this table are particularly important. Notice that hybrid apps and the HTML5 apps (of tomorrow) run inside a “web runtime” as opposed to inside a web browser. This is a very important distinction. The “web browser” is that agent you normally use to “browse the web.” It is Chrome or Firefox or IE or Opera or Safari… The “web runtime” or “webview” is a builtin native programming object that can be used by native applications to display web content within a window or “view” as part of the native application. The “native container” that “wraps” an HTML5 hybrid application uses this webview to run the HTML5 application on a device. While the “web browser” on a device can be easily updated by redistributing and installing a new browser (for instance, by installing a new instance of the Chrome browser on your Android device), the builtin “web runtime” or “webview” is not so easily updated. It is generally built into the ROM of the device and will only be updated if the device OS is updated. Additionally, there may be features present in the mobile browser (e.g., Safari on iOS and Chrome on Android) that do not exist within the webview. It is important to understand this distinction because it can impact how you write your HTML5 application as well as how you debug that application. Some typical differences include a more limited memory footprint as well as more limited use of hardware acceleration (this especially impacts certain CSS features). In essence, you cannot assume that just because something works well in a browser that it will work equally well in a webview. Web Apps: ‘Pure’ HTML/CSS/JavaScript. Typically, just a URL that will run in a browser Universal across platforms Limited or no access to device data and sensors (GPS, Accelerometer,…) Hybrid Apps: Mostly HTML5, but wrapped in a ‘native webview’ Must be build for each platform. Distributed as native executable Packaged as native apps JavaScript APIs for access to device data HTML5 Apps: Web Apps with Device Data access through standardized APIs App code stored locally
  5. Intel XDK Overview
  6. These three images show a simple web app that requires access to some device specific features (simply reporting some device data) that is only available to a native application. The first two screenshots are of the application running inside a browser: the first is running in the Chrome desktop browser running on a Windows laptop and the second is the application running inside a mobile browser on an iPhone. The third screenshot shows the application running inside a webview on an Android phone. Note how only the third screenshot includes the device-specific data that can only be obtained with device access. Also, notice how the third screenshot does not contain any browser “chrome,” meaning there is no address bar, there are no browser tabs and there are no browser navigation elements. Even though this is an HTML5 application it occupies the entire screen, like any native application would.
  7. SWPC 2013
  8. The Intel XDK makes it easy for developers to check the look and feel of their apps using on-screen emulation of a wide variety of devices. The App Tester allows you to test on a physical device.