The document discusses Cordova plugins and their use in hybrid mobile applications. It begins by explaining that Cordova plugins provide access to native device capabilities and distinguish hybrid apps from regular web apps. It then discusses where to find plugins, considerations for choosing plugins, and challenges with debugging hybrid apps. Throughout, it uses metaphors likening a hybrid app to a "Black and Tan" beer with ingredients from both the web and native worlds.
Making a Headless Android Device (Oslo Embedded Meetup 2018)Patricia Aas
This talk explores the options when trying to bing up a device using an Android Board Support Package (BSP) or AOSP. In particular the options when you don't want to ship a traditional Android device or you have an existing Embedded Linux code base, but all you have available is Android. Headless can mean both be an Android without Java and a device without a display, both are discussed.
This talk explores the options when trying to bing up a device using an Android Board Support Package (BSP) or AOSP. In particular the options when you don't want to ship a traditional Android device or you have an existing Embedded Linux code base, but all you have available is Android. Headless can mean both be an Android without Java and a device without a display, both are discussed.
Making a Headless Android Device (Oslo Embedded Meetup 2018)Patricia Aas
This talk explores the options when trying to bing up a device using an Android Board Support Package (BSP) or AOSP. In particular the options when you don't want to ship a traditional Android device or you have an existing Embedded Linux code base, but all you have available is Android. Headless can mean both be an Android without Java and a device without a display, both are discussed.
This talk explores the options when trying to bing up a device using an Android Board Support Package (BSP) or AOSP. In particular the options when you don't want to ship a traditional Android device or you have an existing Embedded Linux code base, but all you have available is Android. Headless can mean both be an Android without Java and a device without a display, both are discussed.
Flutter can save your time and money, as it's now is a portable framework that allows you to compile your application for 6 different platforms and more with the same code base
Let's take a look at how promising Flutter looks to be by implementing a conference app. We'll first take a look at Dart, see its similarities & differences compared to Java. Then take a look at what it takes to write an app with one codebase for Android & iOS. Finally we'll pull our conference data into our app using Firebase as our datasource.
Presentation material for Indonesia's Tizen Developer Workshop in developing Tizen Native Application Development. It describes on how to develop native application, beginning from Hello Tizen app.
It also covers the overview of Enlightenment Framework Libraries and how to use it on Tizen. Native application styling using EDJE is also covered in App Layouting section, with brief concept on how to code EDC and load it on the runtime.
Finally it gives brief information how developing natively in Tizen is flexible, where we can also utilizes C++ in conjunction with the provided C libraries. It is possible to use external libraries in Tizen if we find that the preloaded Native API is not enough.
The goal of this presentation is to give overview of native application concept while at the same time giving depth concepts to the developers so they can begin developing native Tizen application without hesitation.
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...EnlightenmentProject
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel Kolesa)
at Enlightenment Developers Day North America 2015
https://phab.enlightenment.org/w/events/enlightenment_developer_day_us_2015/
The talk will be about Null Safety in Dart, and why I should care as a Flutter Developer
Talk points:
- The Billion Dollar Mistake
- Are null references really a bad thing
- Benefits of Null Safety
- Null Safety in Dart
- Flutter Null Safety support
- How to protect my code from runtime expectations
- How to migrate your code to be Null safety ready
Cross platform mobile application developmentwebprogr.com
High performance Cross Platform PhoneGap application development framework is a perfect complement to Adobe’s broad family of developer solutions, and will allow all of us to continue to provide content publishers and developers with the best, cutting-edge solutions for creating innovative applications across platforms and devices.It is a real rapid application development tool.
Developing Phonegap apps are best suited for Enterprise apps and Enterprise mobile solutions
Time to learn flutter or stick to native development Concetto Labs
Both app development languages React Native & Flutter have their own pros and cons. But, if you see, Flutter is a clear winner in this app development race.
A presentation for HackReactor on PhoneGap, a history of the project. The slides provide backdrop to the talk, and do not contain all the material discussed.
Flutter can save your time and money, as it's now is a portable framework that allows you to compile your application for 6 different platforms and more with the same code base
Let's take a look at how promising Flutter looks to be by implementing a conference app. We'll first take a look at Dart, see its similarities & differences compared to Java. Then take a look at what it takes to write an app with one codebase for Android & iOS. Finally we'll pull our conference data into our app using Firebase as our datasource.
Presentation material for Indonesia's Tizen Developer Workshop in developing Tizen Native Application Development. It describes on how to develop native application, beginning from Hello Tizen app.
It also covers the overview of Enlightenment Framework Libraries and how to use it on Tizen. Native application styling using EDJE is also covered in App Layouting section, with brief concept on how to code EDC and load it on the runtime.
Finally it gives brief information how developing natively in Tizen is flexible, where we can also utilizes C++ in conjunction with the provided C libraries. It is possible to use external libraries in Tizen if we find that the preloaded Native API is not enough.
The goal of this presentation is to give overview of native application concept while at the same time giving depth concepts to the developers so they can begin developing native Tizen application without hesitation.
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...EnlightenmentProject
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel Kolesa)
at Enlightenment Developers Day North America 2015
https://phab.enlightenment.org/w/events/enlightenment_developer_day_us_2015/
The talk will be about Null Safety in Dart, and why I should care as a Flutter Developer
Talk points:
- The Billion Dollar Mistake
- Are null references really a bad thing
- Benefits of Null Safety
- Null Safety in Dart
- Flutter Null Safety support
- How to protect my code from runtime expectations
- How to migrate your code to be Null safety ready
Cross platform mobile application developmentwebprogr.com
High performance Cross Platform PhoneGap application development framework is a perfect complement to Adobe’s broad family of developer solutions, and will allow all of us to continue to provide content publishers and developers with the best, cutting-edge solutions for creating innovative applications across platforms and devices.It is a real rapid application development tool.
Developing Phonegap apps are best suited for Enterprise apps and Enterprise mobile solutions
Time to learn flutter or stick to native development Concetto Labs
Both app development languages React Native & Flutter have their own pros and cons. But, if you see, Flutter is a clear winner in this app development race.
A presentation for HackReactor on PhoneGap, a history of the project. The slides provide backdrop to the talk, and do not contain all the material discussed.
adaptTo() 2014 - Mobile app dev with Cordova, Sling, and AEMrbl002
From http://adapt.to/2014/en/schedule/mobile-app-development-with-apache-cordova-and-aem.html:
This talk will focus on patterns and tools for bringing your Sling and web expertise to the world of mobile applications. Centre stage will be Cordova, an Apache project with PhoneGap origins - built to enable cross-platform mobile apps and in turn, advance the open web. I'll introduce techniques for solving common use cases with Sling as the backend, complete with sample code to get you started today. Lastly, we'll take a look at the integration of Cordova and AEM (affectionately known as PhoneGap Enterprise) featured in the 6.0 release.
This presentation explains what WebRTC is as a technology, the jobs to be done it deals with and where it meets the telecom industry.
This presentation was given as the opening session of the WebRTC day at Informa's Rich Communications 2014 event.
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014Hazem Saleh
Apache Cordova is a platform for building native mobile applications using common Web technologies (HTML, CSS and JavaScript). Apache Cordova offers a set of APIs that allow the mobile application developers to access mobile native functions such as (Audio, Camera, File, Battery, Contacts …etc) using JavaScript. Although there are many JavaScript mobile application frameworks, jQuery mobile is one of the best mobile web application frameworks which allows the web developers to develop web applications that are mobile friendly. This session illustrates how to use Apache Cordova with the combination of jQuery mobile in order to develop a native Android hybrid application and deploy on a real Android device. The demo application (“Memo” application) utilizes mobile native functions (Audio and Camera) using pure JavaScript.
Get the session recording from SoundCloud:
http://tinyurl.com/cordova2014
All content use to the apache cordova in this presantation .this presantation developed by Ankit Kavaiya any kind of help in this regarding to the topic contact by me Contact No:+918460432858.
AI for All: Biology is eating the world & AI is eating Biology Intel® Software
Advances in cell biology and creation of an immense amount of data are converging with advances in Machine learning to analyze this data. Biology is experiencing its AI moment and driving the massive computation involved in understanding biological mechanisms and driving interventions. Learn about how cutting edge technologies such as Software Guard Extensions (SGX) in the latest Intel Xeon Processors and Open Federated Learning (OpenFL), an open framework for federated learning developed by Intel, are helping advance AI in gene therapy, drug design, disease identification and more.
Python Data Science and Machine Learning at Scale with Intel and AnacondaIntel® Software
Python is the number 1 language for data scientists, and Anaconda is the most popular python platform. Intel and Anaconda have partnered to bring scalability and near-native performance to Python with simple installations. Learn how data scientists can now access oneAPI-optimized Python packages such as NumPy, Scikit-Learn, Modin, Pandas, and XGBoost directly from the Anaconda repository through simple installation and minimal code changes.
Streamline End-to-End AI Pipelines with Intel, Databricks, and OmniSciIntel® Software
Preprocess, visualize, and Build AI Faster at-Scale on Intel Architecture. Develop end-to-end AI pipelines for inferencing including data ingestion, preprocessing, and model inferencing with tabular, NLP, RecSys, video and image using Intel oneAPI AI Analytics Toolkit and other optimized libraries. Build at-scale performant pipelines with Databricks and end-to-end Xeon optimizations. Learn how to visualize with the OmniSci Immerse Platform and experience a live demonstration of the Intel Distribution of Modin and OmniSci.
AI for good: Scaling AI in science, healthcare, and more.Intel® Software
How do we scale AI to its full potential to enrich the lives of everyone on earth? Learn about AI hardware and software acceleration and how Intel AI technologies are being used to solve critical problems in high energy physics, cancer research, financial inclusion, and more. Get started on your AI Developer Journey @ software.intel.com/ai
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...Intel® Software
Software AI Accelerators deliver orders of magnitude performance gain for AI across deep learning, classical machine learning, and graph analytics and are key to enabling AI Everywhere. Get started on your AI Developer Journey @ software.intel.com/ai.
Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...Intel® Software
Learn about the algorithms and associated implementations that power SigOpt, a platform for efficiently conducting model development and hyperparameter optimization. Get started on your AI Developer Journey @ software.intel.com/ai.
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...Intel® Software
oneDNN Graph API extends oneDNN with a graph interface which reduces deep learning integration costs and maximizes compute efficiency across a variety of AI hardware including AI accelerators. Get started on your AI Developer Journey @ software.intel.com/ai.
AWS & Intel Webinar Series - Accelerating AI ResearchIntel® Software
Scale your research workloads faster with Intel on AWS. Learn how the performance and productivity of Intel Hardware and Software help bridge the gap between ideation and results in Data Science. Get started on your AI Developer Journey @ software.intel.com/ai.
Whether you are an AI, HPC, IoT, Graphics, Networking or Media developer, visit the Intel Developer Zone today to access the latest software products, resources, training, and support. Test-drive the latest Intel hardware and software products on DevCloud, our online development sandbox, and use DevMesh, our online collaboration portal, to meet and work with other innovators and product leaders. Get started by joining the Intel Developer Community @ software.intel.com.
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...Intel® Software
Explore practical elements, such as performance profiling, debugging, and porting advice. Get an overview of advanced programming topics, like common design patterns, SIMD lane interoperability, data conversions, and more.
Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Ses...Intel® Software
Explore how to build a unified framework based on FFmpeg and GStreamer to enable video analytics on all Intel® hardware, including CPUs, GPUs, VPUs, FPGAs, and in-circuit emulators.
Review state-of-the-art techniques that use neural networks to synthesize motion, such as mode-adaptive neural network and phase-functioned neural networks. See how next-generation CPUs with reinforcement learning can offer better performance.
RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...Intel® Software
This talk focuses on the newest release in RenderMan* 22.5 and its adoption at Pixar Animation Studios* for rendering future movies. With native support for Intel® Advanced Vector Extensions, Intel® Advanced Vector Extensions 2, and Intel® Advanced Vector Extensions 512, it includes enhanced library features, debugging support, and an extensive test framework.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
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
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.
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.
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.
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
Intel XDK Overview
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.
SWPC 2013
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.