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

Ad

More Related Content

What's hot (20)

Progressive Web App
Progressive Web AppProgressive Web App
Progressive Web App
SaleemMalik52
 
Browser Developer Tools
Browser Developer ToolsBrowser Developer Tools
Browser Developer Tools
Christian Rokitta
 
Wso2 product release webinar introducing jaggery
Wso2 product release webinar   introducing jaggeryWso2 product release webinar   introducing jaggery
Wso2 product release webinar introducing jaggery
WSO2
 
Progressive Web Apps and React
Progressive Web Apps and ReactProgressive Web Apps and React
Progressive Web Apps and React
Mike Melusky
 
Modern Web App Architectures
Modern Web App ArchitecturesModern Web App Architectures
Modern Web App Architectures
Raphael Stary
 
Web Application Development Process presented by @Cygnismedia
Web Application Development Process presented by @CygnismediaWeb Application Development Process presented by @Cygnismedia
Web Application Development Process presented by @Cygnismedia
Clark Davidson
 
The Autonomo.us Open Software Services Evolution, featuring Identi.ca
The Autonomo.us Open Software Services Evolution, featuring Identi.ca The Autonomo.us Open Software Services Evolution, featuring Identi.ca
The Autonomo.us Open Software Services Evolution, featuring Identi.ca
Jon Phillips
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...
Mark Leusink
 
Disrupting the application eco system with progressive web applications
Disrupting the application eco system with progressive web applicationsDisrupting the application eco system with progressive web applications
Disrupting the application eco system with progressive web applications
Chris Love
 
Building a Next Generation Mobile Browser using Web technologies
Building a Next Generation Mobile Browser using Web technologiesBuilding a Next Generation Mobile Browser using Web technologies
Building a Next Generation Mobile Browser using Web technologies
n_adam_stanley
 
PWA
PWAPWA
PWA
Anuradha Malalasena
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
Allison Clemens
 
Vaadin codemotion 2014
Vaadin codemotion 2014Vaadin codemotion 2014
Vaadin codemotion 2014
Manuel Carrasco Moñino
 
Progressive Web Apps. What, why and how
Progressive Web Apps. What, why and howProgressive Web Apps. What, why and how
Progressive Web Apps. What, why and how
Riza Fahmi
 
Alfresco Digital Business Platform Builder Experience
Alfresco Digital Business Platform Builder ExperienceAlfresco Digital Business Platform Builder Experience
Alfresco Digital Business Platform Builder Experience
Ray Gauss
 
Dead-Simple Deployment: Headache-Free Java Web Applications in the Cloud
Dead-Simple Deployment: Headache-Free Java Web Applications in the CloudDead-Simple Deployment: Headache-Free Java Web Applications in the Cloud
Dead-Simple Deployment: Headache-Free Java Web Applications in the Cloud
Craig Dickson
 
Why Progressive Web App is what you need for your Business
Why Progressive Web App is what you need for your BusinessWhy Progressive Web App is what you need for your Business
Why Progressive Web App is what you need for your Business
Lets Grow Business
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
Saikiran Sheshagiri
 
Amazon Webservices for Java Developers - UCI Webinar
Amazon Webservices for Java Developers - UCI WebinarAmazon Webservices for Java Developers - UCI Webinar
Amazon Webservices for Java Developers - UCI Webinar
Craig Dickson
 
Creating an Effective Mobile API
Creating an Effective Mobile API Creating an Effective Mobile API
Creating an Effective Mobile API
Nick DeNardis
 
Wso2 product release webinar introducing jaggery
Wso2 product release webinar   introducing jaggeryWso2 product release webinar   introducing jaggery
Wso2 product release webinar introducing jaggery
WSO2
 
Progressive Web Apps and React
Progressive Web Apps and ReactProgressive Web Apps and React
Progressive Web Apps and React
Mike Melusky
 
Modern Web App Architectures
Modern Web App ArchitecturesModern Web App Architectures
Modern Web App Architectures
Raphael Stary
 
Web Application Development Process presented by @Cygnismedia
Web Application Development Process presented by @CygnismediaWeb Application Development Process presented by @Cygnismedia
Web Application Development Process presented by @Cygnismedia
Clark Davidson
 
The Autonomo.us Open Software Services Evolution, featuring Identi.ca
The Autonomo.us Open Software Services Evolution, featuring Identi.ca The Autonomo.us Open Software Services Evolution, featuring Identi.ca
The Autonomo.us Open Software Services Evolution, featuring Identi.ca
Jon Phillips
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...
Mark Leusink
 
Disrupting the application eco system with progressive web applications
Disrupting the application eco system with progressive web applicationsDisrupting the application eco system with progressive web applications
Disrupting the application eco system with progressive web applications
Chris Love
 
Building a Next Generation Mobile Browser using Web technologies
Building a Next Generation Mobile Browser using Web technologiesBuilding a Next Generation Mobile Browser using Web technologies
Building a Next Generation Mobile Browser using Web technologies
n_adam_stanley
 
Progressive Web Apps. What, why and how
Progressive Web Apps. What, why and howProgressive Web Apps. What, why and how
Progressive Web Apps. What, why and how
Riza Fahmi
 
Alfresco Digital Business Platform Builder Experience
Alfresco Digital Business Platform Builder ExperienceAlfresco Digital Business Platform Builder Experience
Alfresco Digital Business Platform Builder Experience
Ray Gauss
 
Dead-Simple Deployment: Headache-Free Java Web Applications in the Cloud
Dead-Simple Deployment: Headache-Free Java Web Applications in the CloudDead-Simple Deployment: Headache-Free Java Web Applications in the Cloud
Dead-Simple Deployment: Headache-Free Java Web Applications in the Cloud
Craig Dickson
 
Why Progressive Web App is what you need for your Business
Why Progressive Web App is what you need for your BusinessWhy Progressive Web App is what you need for your Business
Why Progressive Web App is what you need for your Business
Lets Grow Business
 
Amazon Webservices for Java Developers - UCI Webinar
Amazon Webservices for Java Developers - UCI WebinarAmazon Webservices for Java Developers - UCI Webinar
Amazon Webservices for Java Developers - UCI Webinar
Craig Dickson
 
Creating an Effective Mobile API
Creating an Effective Mobile API Creating an Effective Mobile API
Creating an Effective Mobile API
Nick DeNardis
 

Similar to Building cross platform web apps (20)

Experiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure teamExperiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure team
Brian Benz
 
Exploring pwa for shopware
Exploring pwa for shopwareExploring pwa for shopware
Exploring pwa for shopware
Sander Mangel
 
Universal Applications with Universal JavaScript
Universal Applications with Universal JavaScriptUniversal Applications with Universal JavaScript
Universal Applications with Universal JavaScript
Thomas Joseph
 
Introducing Mobile Cross Promotion Framework
Introducing Mobile Cross Promotion FrameworkIntroducing Mobile Cross Promotion Framework
Introducing Mobile Cross Promotion Framework
Xin Hu
 
Progressive web app PWA - il futuro del web
Progressive web app PWA - il futuro del webProgressive web app PWA - il futuro del web
Progressive web app PWA - il futuro del web
Angelo Gino Varrati
 
Make your PWA feel more like an app
Make your PWA feel more like an appMake your PWA feel more like an app
Make your PWA feel more like an app
Önder Ceylan
 
Web assembly with PWA
Web assembly with PWA Web assembly with PWA
Web assembly with PWA
Shashank Sharma
 
Web app and more
Web app and moreWeb app and more
Web app and more
faming su
 
Web Apps and more
Web Apps and moreWeb Apps and more
Web Apps and more
Yan Shi
 
.NET Core on Mac
.NET Core on Mac.NET Core on Mac
.NET Core on Mac
Melania Andrisan (Danciu)
 
Cross platform mobile app development tools review
Cross platform mobile app development tools reviewCross platform mobile app development tools review
Cross platform mobile app development tools review
Uday Kothari
 
Apache cordova
Apache cordovaApache cordova
Apache cordova
Carlo Bernaschina
 
Web Application Development. Web Application Frameworks
Web Application Development. Web Application FrameworksWeb Application Development. Web Application Frameworks
Web Application Development. Web Application Frameworks
SukhrobAtoev2
 
Web Application Development. Web Application Frameworks
Web Application Development. Web Application FrameworksWeb Application Development. Web Application Frameworks
Web Application Development. Web Application Frameworks
SukhrobAtoev2
 
Introduction phonegap
Introduction phonegapIntroduction phonegap
Introduction phonegap
Rakesh Jha
 
Advanced programing in phonegap
Advanced programing in phonegapAdvanced programing in phonegap
Advanced programing in phonegap
Rakesh Jha
 
phonegap with angular js for freshers
phonegap with angular js for freshers    phonegap with angular js for freshers
phonegap with angular js for freshers
dssprakash
 
Enterprise Hybrid Feasibility Analysis
Enterprise Hybrid Feasibility AnalysisEnterprise Hybrid Feasibility Analysis
Enterprise Hybrid Feasibility Analysis
Lawrence Nyakiso
 
Building Progressive Web Apps for Windows devices
Building Progressive Web Apps for Windows devicesBuilding Progressive Web Apps for Windows devices
Building Progressive Web Apps for Windows devices
Windows Developer
 
What is Adobe Flex ?
What is Adobe Flex  ?What is Adobe Flex  ?
What is Adobe Flex ?
Antonio Correia
 
Experiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure teamExperiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure team
Brian Benz
 
Exploring pwa for shopware
Exploring pwa for shopwareExploring pwa for shopware
Exploring pwa for shopware
Sander Mangel
 
Universal Applications with Universal JavaScript
Universal Applications with Universal JavaScriptUniversal Applications with Universal JavaScript
Universal Applications with Universal JavaScript
Thomas Joseph
 
Introducing Mobile Cross Promotion Framework
Introducing Mobile Cross Promotion FrameworkIntroducing Mobile Cross Promotion Framework
Introducing Mobile Cross Promotion Framework
Xin Hu
 
Progressive web app PWA - il futuro del web
Progressive web app PWA - il futuro del webProgressive web app PWA - il futuro del web
Progressive web app PWA - il futuro del web
Angelo Gino Varrati
 
Make your PWA feel more like an app
Make your PWA feel more like an appMake your PWA feel more like an app
Make your PWA feel more like an app
Önder Ceylan
 
Web app and more
Web app and moreWeb app and more
Web app and more
faming su
 
Web Apps and more
Web Apps and moreWeb Apps and more
Web Apps and more
Yan Shi
 
Cross platform mobile app development tools review
Cross platform mobile app development tools reviewCross platform mobile app development tools review
Cross platform mobile app development tools review
Uday Kothari
 
Web Application Development. Web Application Frameworks
Web Application Development. Web Application FrameworksWeb Application Development. Web Application Frameworks
Web Application Development. Web Application Frameworks
SukhrobAtoev2
 
Web Application Development. Web Application Frameworks
Web Application Development. Web Application FrameworksWeb Application Development. Web Application Frameworks
Web Application Development. Web Application Frameworks
SukhrobAtoev2
 
Introduction phonegap
Introduction phonegapIntroduction phonegap
Introduction phonegap
Rakesh Jha
 
Advanced programing in phonegap
Advanced programing in phonegapAdvanced programing in phonegap
Advanced programing in phonegap
Rakesh Jha
 
phonegap with angular js for freshers
phonegap with angular js for freshers    phonegap with angular js for freshers
phonegap with angular js for freshers
dssprakash
 
Enterprise Hybrid Feasibility Analysis
Enterprise Hybrid Feasibility AnalysisEnterprise Hybrid Feasibility Analysis
Enterprise Hybrid Feasibility Analysis
Lawrence Nyakiso
 
Building Progressive Web Apps for Windows devices
Building Progressive Web Apps for Windows devicesBuilding Progressive Web Apps for Windows devices
Building Progressive Web Apps for Windows devices
Windows Developer
 
Ad

More from ITEM (20)

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

Recently uploaded (20)

The Changing Compliance Landscape in 2025.pdf
The Changing Compliance Landscape in 2025.pdfThe Changing Compliance Landscape in 2025.pdf
The Changing Compliance Landscape in 2025.pdf
Precisely
 
Play It Safe: Manage Security Risks - Google Certificate
Play It Safe: Manage Security Risks - Google CertificatePlay It Safe: Manage Security Risks - Google Certificate
Play It Safe: Manage Security Risks - Google Certificate
VICTOR MAESTRE RAMIREZ
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Transcript: Canadian book publishing: Insights from the latest salary survey ...
Transcript: Canadian book publishing: Insights from the latest salary survey ...Transcript: Canadian book publishing: Insights from the latest salary survey ...
Transcript: Canadian book publishing: Insights from the latest salary survey ...
BookNet Canada
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
GyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
GyrusAI - Broadcasting & Streaming Applications Driven by AI and MLGyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
GyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
Gyrus AI
 
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Raffi Khatchadourian
 
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Markus Eisele
 
Bepents tech services - a premier cybersecurity consulting firm
Bepents tech services - a premier cybersecurity consulting firmBepents tech services - a premier cybersecurity consulting firm
Bepents tech services - a premier cybersecurity consulting firm
Benard76
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Q1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor PresentationQ1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor Presentation
Dropbox
 
Build 3D Animated Safety Induction - Tech EHS
Build 3D Animated Safety Induction - Tech EHSBuild 3D Animated Safety Induction - Tech EHS
Build 3D Animated Safety Induction - Tech EHS
TECH EHS Solution
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
The Future of Cisco Cloud Security: Innovations and AI Integration
The Future of Cisco Cloud Security: Innovations and AI IntegrationThe Future of Cisco Cloud Security: Innovations and AI Integration
The Future of Cisco Cloud Security: Innovations and AI Integration
Re-solution Data Ltd
 
Unlocking Generative AI in your Web Apps
Unlocking Generative AI in your Web AppsUnlocking Generative AI in your Web Apps
Unlocking Generative AI in your Web Apps
Maximiliano Firtman
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
The Changing Compliance Landscape in 2025.pdf
The Changing Compliance Landscape in 2025.pdfThe Changing Compliance Landscape in 2025.pdf
The Changing Compliance Landscape in 2025.pdf
Precisely
 
Play It Safe: Manage Security Risks - Google Certificate
Play It Safe: Manage Security Risks - Google CertificatePlay It Safe: Manage Security Risks - Google Certificate
Play It Safe: Manage Security Risks - Google Certificate
VICTOR MAESTRE RAMIREZ
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Transcript: Canadian book publishing: Insights from the latest salary survey ...
Transcript: Canadian book publishing: Insights from the latest salary survey ...Transcript: Canadian book publishing: Insights from the latest salary survey ...
Transcript: Canadian book publishing: Insights from the latest salary survey ...
BookNet Canada
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
GyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
GyrusAI - Broadcasting & Streaming Applications Driven by AI and MLGyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
GyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
Gyrus AI
 
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Raffi Khatchadourian
 
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Markus Eisele
 
Bepents tech services - a premier cybersecurity consulting firm
Bepents tech services - a premier cybersecurity consulting firmBepents tech services - a premier cybersecurity consulting firm
Bepents tech services - a premier cybersecurity consulting firm
Benard76
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Q1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor PresentationQ1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor Presentation
Dropbox
 
Build 3D Animated Safety Induction - Tech EHS
Build 3D Animated Safety Induction - Tech EHSBuild 3D Animated Safety Induction - Tech EHS
Build 3D Animated Safety Induction - Tech EHS
TECH EHS Solution
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
The Future of Cisco Cloud Security: Innovations and AI Integration
The Future of Cisco Cloud Security: Innovations and AI IntegrationThe Future of Cisco Cloud Security: Innovations and AI Integration
The Future of Cisco Cloud Security: Innovations and AI Integration
Re-solution Data Ltd
 
Unlocking Generative AI in your Web Apps
Unlocking Generative AI in your Web AppsUnlocking Generative AI in your Web Apps
Unlocking Generative AI in your Web Apps
Maximiliano Firtman
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 

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