SlideShare a Scribd company logo
Building Cross Platform Web
Apps
David Rousset
Senior Program Manager PAX / Experiences & Devices
@davrous
Large Ecosystem of frameworks
How to build a cross-platform web app today?
1 – Progressive Web App aka PWA
2 - Electron
3 – Hybrid app
4 – JavaScript-driven Native
PWA
A PWA is
Progressive
Works on any device and enhance
functionality progressively.
Discoverable
Better discovery and integration with
search.
Linkable
Ability to retain or reload its state
and be shareable from a link.
Responsive
Fit any device’s form factor and
screen size.
App-like
Looks like a native app and uses the
application shell model with minimal
page refreshes.
Connectivity-agnostic
Works with low connectivity or offline.
Installable
Install on the device’s desktop,
start menu, or task bar making it
readily available.
Current
Application and content is up to date
when connected to the Internet.
Re-engageable
Promotes re-engagement through
features such as push notifications.
Performant
Works as fast or faster than a native app.
Connected to users
Direct feedback to you through
ratings and reviews
Devices + IoT Mobile PC Xbox Surface Hub HoloLens
A C R O S S W I N D O W S
C R O S S P L A T F O R M
P R O G R E S S I V E W E B A P P S
X
HTTPS Web App Manifest Service Worker
Minimum Viable

Progressive Web App
Web Application
Manifest
{
"lang": "en",
"short_name": "Wash Post",
"name": "The Washington Post",
"icons": [
{
"src": "img/launcher-icon-2x.png",
"sizes": "96x96",
"type": "image/png"
},
{
"src": "img/launcher-icon-4x.png",
"sizes": ”512x512",
"type": "image/png"
}
],
"start_url": "/pwa/?utm_source=homescreen",
"display": "standalone",
"orientation": "portrait",
"background_color": "black"
}
Web Application
Manifest
{
"lang": "en",
"short_name": "Wash Post",
"name": "The Washington Post",
"icons": [
{
"src": "img/launcher-icon-2x.png",
"sizes": "96x96",
"type": "image/png"
},
{
"src": "img/launcher-icon-4x.png",
"sizes": ”512x512",
"type": "image/png"
}
],
"start_url": "/pwa/?utm_source=homescreen",
"display": "standalone",
"orientation": "portrait",
"background_color": "black"
}
Web Application
Manifest
{
"lang": "en",
"short_name": "Wash Post",
"name": "The Washington Post",
"icons": [
{
"src": "img/launcher-icon-2x.png",
"sizes": "96x96",
"type": "image/png"
},
{
"src": "img/launcher-icon-4x.png",
"sizes": ”512x512",
"type": "image/png"
}
],
"start_url": "/pwa/?utm_source=homescreen",
"display": "standalone",
"orientation": "portrait",
"background_color": "black"
}
Web Application
Manifest
{
"lang": "en",
"short_name": "Wash Post",
"name": "The Washington Post",
"icons": [
{
"src": "img/launcher-icon-2x.png",
"sizes": "96x96",
"type": "image/png"
},
{
"src": "img/launcher-icon-4x.png",
"sizes": ”512x512",
"type": "image/png"
}
],
"start_url": "/pwa/?utm_source=homescreen",
"display": "standalone",
"orientation": "portrait",
"background_color": "black"
}
DEMO – Add to Home Screen

https://aka.ms/applescrusher
Building cross platform web apps
Network request:

Typical
Web App
Network
Network request:

Service Worker 

in play
Web App
Service

Worker
Network Cache
DEMO – Offline with SW

https://aka.ms/applescrusher
Building cross platform web apps
https://www.telerik.com/blogs/choose-between-progressive-web-apps-react-native-
PWABuilder.com to help you
Create / Manage your manifest
Create the various images / icons
Provide some Service Workers bootstraps
Package your web app for the Windows Store or for Cordova
Building cross platform web apps
Building cross platform web apps
Building cross platform web apps
Building cross platform web apps
Building cross platform web apps
PWA ?
PROs
• It’s a web site!
• Easy updates on the web server
• Same code everywhere
• Use your favorite framework (Angular, Vue, React) or language (TypeScript,
JavaScript)
• High reach / Any device
• Indexable
CONs
• Same UI/UX on all platforms
• Don’t have a full access to the platform / hardware
Building cross platform web apps
Electron
Visual Studio Code
Microsoft Teams
Electron Reach
Windows
iOS & macOSAndroid
Electron App
Electron
Chromium
Open Source Project
Node JS Electron API
BuildSystem
App Code Win7 App
Win10 App
Mac App
Linux App
Win8 App
Electron ?
PROs
• Use your favorite web stack (front + node.js)
• Controlled browser’s engine
• Can interact with the system via native calls
• Linux / MacOS / Windows easy targeted
CONs
• Embed a full Chromium
• Size
• Security updates
• Desktop only
Hybrid app
2 main options
Cordova / PhoneGap
Native app with a WebView
XAML/C#
Swift / Objective C
Java
Camera Plugin
Native JS
Plugin
Native JS
AppCode
Cordova
WebView
Packaged
App
Hybrid App?
PROs
• Can better integrate with the hardware / platform than PWA
CONs
• Still Web UI ! It’s difficult to mimic native controls
• Mainly just an enhanced WebView
• Updates on Stores
JavaScript-driven Native
Telerik’s NativeScript
Use JavaScript (or TypeScript) and CSS to write native mobile
applications.
No webview involved in rendering the app
UI is rendered by the native platform's rendering engine
Because of that the apps entire UX is native
Use specific XML or Vue or Angular approach
At runtime, executed on the JS engine.
In Cross platform abstraction
On Android
var file = new File(path);Cross-platform
Cross-platform API
File file = new
java.io.File(path);
On iOS
NSFileManager.defaultManager();
fileManager.createFileAtPathContentsAttributes(
path);
DEMO – NativeScript
Building cross platform web apps
React Native
Write your business and view logic in JavaScript, remove the
major need for native UI expertise
Business logic is shared across all platforms in JavaScript:
iOS, Android, Web, macOS
Write JS once, create UX for all platforms extremely quickly
Learn Once, Write Anywhere
React (Web) Components
• Written in JSX [documentation]
• (props, state) => DOM
React Native Components
• Also written in JSX
• (props, state) => DOM native views
React Native: Hello World
Markup called
“JSX”
React Native: Using Variables
React Native: Styles (CSS Lite)
React Native Apps
Teams client architecture
Browsers: Edge, IE11, latest Chrome, latest Firefox | Desktop: Windows 10, 8.1, 7(SP1), Mac OS X 10.10+
IOS Android
Swift Java
Optimized for agility
auto-updates
Angular ! React
jQuery, lodash etc.. (200+ Open Source Components)
TypeScript, Node, SASS
HTML5/CSS
C++ Objective C
Windows MacWeb AndroidiPhone/iPad
Deskto
p
Mobile
Electron
React native
JavaScript Native?
PROs
• Rich Native UI & perfect platform integration
• Re-use your JavaScript business layer / logic
• Target iOS & Android with a unique UI code
CONs
• Need to learn the native controls / syntax
• Debugging can be more complex than just F12
• Less reach than PWA
Conclusion
“The Web is for audience reach and native apps are for rich
experiences. Both are strategic. Both are valuable. So when it comes
to mobile, it’s not Web vs. Native. It’s both.”
https://www.lukew.com/ff/entry.asp?1954
Conclusion
Web can now build high quality apps for any device
PWA should be considered first for the higher reach & high portability
if non-native UX is not a blocker

if you don’t need to access to specific hardware
Interesting combos with Angular/Vue/React:
- PWA + JavaScript Native for mobiles
- PWA + Electron for desktop
- Electron + JavaScript Native
Thank you.







@davrous



@MSEdgeDev



PWABuilder.com



www.davrous.com


More Related Content

PPTX
BlackBerry WebWorks
PDF
Progressive Web Apps - NPD Meet
PDF
Anatomy of an HTML 5 mobile web app
PDF
RIM Casual Meetup - Bandung #DevIDBdg
PPT
Training on webwroks1
PDF
Mobile web or native app
PDF
Anatomy of a Progressive Web App
PDF
Unlocking the power of the APEX Plugin Architecture
BlackBerry WebWorks
Progressive Web Apps - NPD Meet
Anatomy of an HTML 5 mobile web app
RIM Casual Meetup - Bandung #DevIDBdg
Training on webwroks1
Mobile web or native app
Anatomy of a Progressive Web App
Unlocking the power of the APEX Plugin Architecture

What's hot (20)

PPTX
Progressive Web App
PPTX
Browser Developer Tools
PDF
Wso2 product release webinar introducing jaggery
PPTX
Progressive Web Apps and React
PDF
Modern Web App Architectures
PPTX
Web Application Development Process presented by @Cygnismedia
ODP
The Autonomo.us Open Software Services Evolution, featuring Identi.ca
PDF
The future of web development write once, run everywhere with angular js an...
PPTX
Disrupting the application eco system with progressive web applications
PDF
Building a Next Generation Mobile Browser using Web technologies
PPTX
Progressive Web Apps
PDF
Vaadin codemotion 2014
PDF
Progressive Web Apps. What, why and how
PPTX
Alfresco Digital Business Platform Builder Experience
PPTX
Dead-Simple Deployment: Headache-Free Java Web Applications in the Cloud
PPTX
Why Progressive Web App is what you need for your Business
PDF
Progressive Web Apps
PPTX
Amazon Webservices for Java Developers - UCI Webinar
PDF
Creating an Effective Mobile API
Progressive Web App
Browser Developer Tools
Wso2 product release webinar introducing jaggery
Progressive Web Apps and React
Modern Web App Architectures
Web Application Development Process presented by @Cygnismedia
The Autonomo.us Open Software Services Evolution, featuring Identi.ca
The future of web development write once, run everywhere with angular js an...
Disrupting the application eco system with progressive web applications
Building a Next Generation Mobile Browser using Web technologies
Progressive Web Apps
Vaadin codemotion 2014
Progressive Web Apps. What, why and how
Alfresco Digital Business Platform Builder Experience
Dead-Simple Deployment: Headache-Free Java Web Applications in the Cloud
Why Progressive Web App is what you need for your Business
Progressive Web Apps
Amazon Webservices for Java Developers - UCI Webinar
Creating an Effective Mobile API
Ad

Similar to Building cross platform web apps (20)

PDF
Mobile Vue.js – From PWA to Native
PDF
How OutSystems Accelerates PWA Development
PDF
Progressive Web App
PDF
NATIVE VS PWA APPS – A COMPLETE GUIDE
PPTX
Progressive Web Apps
PPTX
Centric - PWA WebCast
PPTX
Overview of Progressive Web Apps (PWAs).pptx
PDF
WTF R PWAs?
PDF
Building PWAs: ScalaCode’s Comprehensive Frameworks & Tools Handbook
PDF
Progressive Web Apps –The Future of Apps
PPTX
Why progressive apps for WordPress - WordSesh 2020
PPTX
Basic Understanding of Progressive Web Apps
PPTX
PWA basics for developers
PPTX
Why Progressive Web Apps For WordPress - WordCamp Finland
PDF
pwa-capability-report.pdfgdhshsdhdbdhdjh
PDF
Guidance on how to develop a progressive web app using react native!
PDF
Next Generation Mobile Web - PWA (Progressive Web App)
PDF
Build Fast, Reliable, and Engaging Apps with Progressive Web Development.pdf
PDF
Taking the P out of PWA
PDF
Progressive Web Apps – The Future of the Web World
Mobile Vue.js – From PWA to Native
How OutSystems Accelerates PWA Development
Progressive Web App
NATIVE VS PWA APPS – A COMPLETE GUIDE
Progressive Web Apps
Centric - PWA WebCast
Overview of Progressive Web Apps (PWAs).pptx
WTF R PWAs?
Building PWAs: ScalaCode’s Comprehensive Frameworks & Tools Handbook
Progressive Web Apps –The Future of Apps
Why progressive apps for WordPress - WordSesh 2020
Basic Understanding of Progressive Web Apps
PWA basics for developers
Why Progressive Web Apps For WordPress - WordCamp Finland
pwa-capability-report.pdfgdhshsdhdbdhdjh
Guidance on how to develop a progressive web app using react native!
Next Generation Mobile Web - PWA (Progressive Web App)
Build Fast, Reliable, and Engaging Apps with Progressive Web Development.pdf
Taking the P out of PWA
Progressive Web Apps – The Future of the Web World
Ad

More from ITEM (20)

PPTX
Тестирование искусственного интеллекта: с какой стороны подступиться?
PPTX
Сделать свой продукт, или убить в себе перфекциониста
PPTX
Upwork as a service company incubator
PPTX
Как глобальные тренды и инновации повлияют на аутсорсинг в Украине
PDF
Внедрение локационных сервисов: теория vs практика
PDF
Automated Vulnerability Assessment and Management
PDF
Как понять в кого вкладывать деньги?
PDF
Как аутсорсинговые компании свои продукты разрабатывали и что из этого вышло.
PDF
Внутренние стартапы. Долго, дорого, никогда.
PDF
First steps in digitalization and modernization of (huge) non-IT company
PDF
Redesign of management methodologies
PDF
Through Trial and Error: How to Prepare a Trainee to the Wild World of Custom...
PDF
Тернистый путь к самоорганизации
PDF
Lessons learned scrum mastering distributed teams
PPTX
Превращая риски в продажи
PPTX
Internet marketing for IT companies
PPTX
Success of foreign investment attraction by outsource/service companies.
PPTX
Outsourcing is a dead-end
PDF
Communication with clients
PDF
Harnessing the creative genius within your organization
Тестирование искусственного интеллекта: с какой стороны подступиться?
Сделать свой продукт, или убить в себе перфекциониста
Upwork as a service company incubator
Как глобальные тренды и инновации повлияют на аутсорсинг в Украине
Внедрение локационных сервисов: теория vs практика
Automated Vulnerability Assessment and Management
Как понять в кого вкладывать деньги?
Как аутсорсинговые компании свои продукты разрабатывали и что из этого вышло.
Внутренние стартапы. Долго, дорого, никогда.
First steps in digitalization and modernization of (huge) non-IT company
Redesign of management methodologies
Through Trial and Error: How to Prepare a Trainee to the Wild World of Custom...
Тернистый путь к самоорганизации
Lessons learned scrum mastering distributed teams
Превращая риски в продажи
Internet marketing for IT companies
Success of foreign investment attraction by outsource/service companies.
Outsourcing is a dead-end
Communication with clients
Harnessing the creative genius within your organization

Recently uploaded (20)

PPT
Teaching material agriculture food technology
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Big Data Technologies - Introduction.pptx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Modernizing your data center with Dell and AMD
PDF
Machine learning based COVID-19 study performance prediction
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Approach and Philosophy of On baking technology
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
A Presentation on Artificial Intelligence
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Encapsulation theory and applications.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Teaching material agriculture food technology
The Rise and Fall of 3GPP – Time for a Sabbatical?
Digital-Transformation-Roadmap-for-Companies.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Big Data Technologies - Introduction.pptx
20250228 LYD VKU AI Blended-Learning.pptx
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Modernizing your data center with Dell and AMD
Machine learning based COVID-19 study performance prediction
Reach Out and Touch Someone: Haptics and Empathic Computing
Understanding_Digital_Forensics_Presentation.pptx
Approach and Philosophy of On baking technology
Agricultural_Statistics_at_a_Glance_2022_0.pdf
A Presentation on Artificial Intelligence
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Encapsulation theory and applications.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
CIFDAQ's Market Insight: SEC Turns Pro Crypto

Building cross platform web apps

  • 1. Building Cross Platform Web Apps David Rousset Senior Program Manager PAX / Experiences & Devices @davrous
  • 2. Large Ecosystem of frameworks
  • 3. How to build a cross-platform web app today? 1 – Progressive Web App aka PWA 2 - Electron 3 – Hybrid app 4 – JavaScript-driven Native
  • 4. PWA
  • 5. A PWA is Progressive Works on any device and enhance functionality progressively. Discoverable Better discovery and integration with search. Linkable Ability to retain or reload its state and be shareable from a link. Responsive Fit any device’s form factor and screen size. App-like Looks like a native app and uses the application shell model with minimal page refreshes. Connectivity-agnostic Works with low connectivity or offline. Installable Install on the device’s desktop, start menu, or task bar making it readily available. Current Application and content is up to date when connected to the Internet. Re-engageable Promotes re-engagement through features such as push notifications. Performant Works as fast or faster than a native app. Connected to users Direct feedback to you through ratings and reviews
  • 6. Devices + IoT Mobile PC Xbox Surface Hub HoloLens A C R O S S W I N D O W S C R O S S P L A T F O R M P R O G R E S S I V E W E B A P P S X
  • 7. HTTPS Web App Manifest Service Worker Minimum Viable
 Progressive Web App
  • 8. Web Application Manifest { "lang": "en", "short_name": "Wash Post", "name": "The Washington Post", "icons": [ { "src": "img/launcher-icon-2x.png", "sizes": "96x96", "type": "image/png" }, { "src": "img/launcher-icon-4x.png", "sizes": ”512x512", "type": "image/png" } ], "start_url": "/pwa/?utm_source=homescreen", "display": "standalone", "orientation": "portrait", "background_color": "black" }
  • 9. Web Application Manifest { "lang": "en", "short_name": "Wash Post", "name": "The Washington Post", "icons": [ { "src": "img/launcher-icon-2x.png", "sizes": "96x96", "type": "image/png" }, { "src": "img/launcher-icon-4x.png", "sizes": ”512x512", "type": "image/png" } ], "start_url": "/pwa/?utm_source=homescreen", "display": "standalone", "orientation": "portrait", "background_color": "black" }
  • 10. Web Application Manifest { "lang": "en", "short_name": "Wash Post", "name": "The Washington Post", "icons": [ { "src": "img/launcher-icon-2x.png", "sizes": "96x96", "type": "image/png" }, { "src": "img/launcher-icon-4x.png", "sizes": ”512x512", "type": "image/png" } ], "start_url": "/pwa/?utm_source=homescreen", "display": "standalone", "orientation": "portrait", "background_color": "black" }
  • 11. Web Application Manifest { "lang": "en", "short_name": "Wash Post", "name": "The Washington Post", "icons": [ { "src": "img/launcher-icon-2x.png", "sizes": "96x96", "type": "image/png" }, { "src": "img/launcher-icon-4x.png", "sizes": ”512x512", "type": "image/png" } ], "start_url": "/pwa/?utm_source=homescreen", "display": "standalone", "orientation": "portrait", "background_color": "black" }
  • 12. DEMO – Add to Home Screen
 https://aka.ms/applescrusher
  • 15. Network request:
 Service Worker 
 in play Web App Service
 Worker Network Cache
  • 16. DEMO – Offline with SW
 https://aka.ms/applescrusher
  • 19. PWABuilder.com to help you Create / Manage your manifest Create the various images / icons Provide some Service Workers bootstraps Package your web app for the Windows Store or for Cordova
  • 25. PWA ? PROs • It’s a web site! • Easy updates on the web server • Same code everywhere • Use your favorite framework (Angular, Vue, React) or language (TypeScript, JavaScript) • High reach / Any device • Indexable CONs • Same UI/UX on all platforms • Don’t have a full access to the platform / hardware
  • 31. Electron App Electron Chromium Open Source Project Node JS Electron API BuildSystem App Code Win7 App Win10 App Mac App Linux App Win8 App
  • 32. Electron ? PROs • Use your favorite web stack (front + node.js) • Controlled browser’s engine • Can interact with the system via native calls • Linux / MacOS / Windows easy targeted CONs • Embed a full Chromium • Size • Security updates • Desktop only
  • 34. 2 main options Cordova / PhoneGap Native app with a WebView XAML/C# Swift / Objective C Java
  • 35. Camera Plugin Native JS Plugin Native JS AppCode Cordova WebView Packaged App
  • 36. Hybrid App? PROs • Can better integrate with the hardware / platform than PWA CONs • Still Web UI ! It’s difficult to mimic native controls • Mainly just an enhanced WebView • Updates on Stores
  • 38. Telerik’s NativeScript Use JavaScript (or TypeScript) and CSS to write native mobile applications. No webview involved in rendering the app UI is rendered by the native platform's rendering engine Because of that the apps entire UX is native Use specific XML or Vue or Angular approach
  • 39. At runtime, executed on the JS engine. In Cross platform abstraction On Android var file = new File(path);Cross-platform Cross-platform API File file = new java.io.File(path); On iOS NSFileManager.defaultManager(); fileManager.createFileAtPathContentsAttributes( path);
  • 42. React Native Write your business and view logic in JavaScript, remove the major need for native UI expertise Business logic is shared across all platforms in JavaScript: iOS, Android, Web, macOS Write JS once, create UX for all platforms extremely quickly Learn Once, Write Anywhere
  • 43. React (Web) Components • Written in JSX [documentation] • (props, state) => DOM
  • 44. React Native Components • Also written in JSX • (props, state) => DOM native views
  • 45. React Native: Hello World Markup called “JSX”
  • 46. React Native: Using Variables
  • 47. React Native: Styles (CSS Lite)
  • 49. Teams client architecture Browsers: Edge, IE11, latest Chrome, latest Firefox | Desktop: Windows 10, 8.1, 7(SP1), Mac OS X 10.10+ IOS Android Swift Java Optimized for agility auto-updates Angular ! React jQuery, lodash etc.. (200+ Open Source Components) TypeScript, Node, SASS HTML5/CSS C++ Objective C Windows MacWeb AndroidiPhone/iPad Deskto p Mobile Electron React native
  • 50. JavaScript Native? PROs • Rich Native UI & perfect platform integration • Re-use your JavaScript business layer / logic • Target iOS & Android with a unique UI code CONs • Need to learn the native controls / syntax • Debugging can be more complex than just F12 • Less reach than PWA
  • 51. Conclusion “The Web is for audience reach and native apps are for rich experiences. Both are strategic. Both are valuable. So when it comes to mobile, it’s not Web vs. Native. It’s both.” https://www.lukew.com/ff/entry.asp?1954
  • 52. Conclusion Web can now build high quality apps for any device PWA should be considered first for the higher reach & high portability if non-native UX is not a blocker
 if you don’t need to access to specific hardware Interesting combos with Angular/Vue/React: - PWA + JavaScript Native for mobiles - PWA + Electron for desktop - Electron + JavaScript Native