SlideShare uma empresa Scribd logo
1 de 53
Baixar para ler offline
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
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
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
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
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
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


Mais conteúdo relacionado

Mais procurados

Wso2 product release webinar introducing jaggery
Wso2 product release webinar   introducing jaggeryWso2 product release webinar   introducing jaggery
Wso2 product release webinar introducing jaggeryWSO2
 
Progressive Web Apps and React
Progressive Web Apps and ReactProgressive Web Apps and React
Progressive Web Apps and ReactMike Melusky
 
Modern Web App Architectures
Modern Web App ArchitecturesModern Web App Architectures
Modern Web App ArchitecturesRaphael 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 @CygnismediaClark 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 applicationsChris 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 technologiesn_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 howRiza Fahmi
 
Alfresco Digital Business Platform Builder Experience
Alfresco Digital Business Platform Builder ExperienceAlfresco Digital Business Platform Builder Experience
Alfresco Digital Business Platform Builder ExperienceRay 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 CloudCraig 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 BusinessLets 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 WebinarCraig Dickson
 
Creating an Effective Mobile API
Creating an Effective Mobile API Creating an Effective Mobile API
Creating an Effective Mobile API Nick DeNardis
 

Mais procurados (20)

Progressive Web App
Progressive Web AppProgressive Web App
Progressive Web App
 
Browser Developer Tools
Browser Developer ToolsBrowser Developer Tools
Browser Developer Tools
 
Wso2 product release webinar introducing jaggery
Wso2 product release webinar   introducing jaggeryWso2 product release webinar   introducing jaggery
Wso2 product release webinar introducing jaggery
 
Progressive Web Apps and React
Progressive Web Apps and ReactProgressive Web Apps and React
Progressive Web Apps and React
 
Modern Web App Architectures
Modern Web App ArchitecturesModern Web App Architectures
Modern Web App Architectures
 
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
 
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
 
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...
 
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
 
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
 
PWA
PWAPWA
PWA
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
 
Vaadin codemotion 2014
Vaadin codemotion 2014Vaadin codemotion 2014
Vaadin codemotion 2014
 
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
 
Alfresco Digital Business Platform Builder Experience
Alfresco Digital Business Platform Builder ExperienceAlfresco Digital Business Platform Builder Experience
Alfresco Digital Business Platform Builder Experience
 
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
 
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
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
 
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
 
Creating an Effective Mobile API
Creating an Effective Mobile API Creating an Effective Mobile API
Creating an Effective Mobile API
 

Semelhante a Building cross platform web apps

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 teamBrian Benz
 
Exploring pwa for shopware
Exploring pwa for shopwareExploring pwa for shopware
Exploring pwa for shopwareSander Mangel
 
Universal Applications with Universal JavaScript
Universal Applications with Universal JavaScriptUniversal Applications with Universal JavaScript
Universal Applications with Universal JavaScriptThomas Joseph
 
Introducing Mobile Cross Promotion Framework
Introducing Mobile Cross Promotion FrameworkIntroducing Mobile Cross Promotion Framework
Introducing Mobile Cross Promotion FrameworkXin 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 webAngelo 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 Apps and more
Web Apps and moreWeb Apps and more
Web Apps and moreYan Shi
 
Web app and more
Web app and moreWeb app and more
Web app and morefaming su
 
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 reviewUday Kothari
 
Introduction phonegap
Introduction phonegapIntroduction phonegap
Introduction phonegapRakesh Jha
 
Advanced programing in phonegap
Advanced programing in phonegapAdvanced programing in phonegap
Advanced programing in phonegapRakesh 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 AnalysisLawrence 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 devicesWindows Developer
 
Basic Understanding of Progressive Web Apps
Basic Understanding of Progressive Web AppsBasic Understanding of Progressive Web Apps
Basic Understanding of Progressive Web AppsAnjaliTanpure1
 

Semelhante a 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
 
Exploring pwa for shopware
Exploring pwa for shopwareExploring pwa for shopware
Exploring pwa for shopware
 
Universal Applications with Universal JavaScript
Universal Applications with Universal JavaScriptUniversal Applications with Universal JavaScript
Universal Applications with Universal JavaScript
 
Introducing Mobile Cross Promotion Framework
Introducing Mobile Cross Promotion FrameworkIntroducing Mobile Cross Promotion Framework
Introducing Mobile Cross Promotion Framework
 
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
 
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
 
Web assembly with PWA
Web assembly with PWA Web assembly with PWA
Web assembly with PWA
 
Web Apps and more
Web Apps and moreWeb Apps and more
Web Apps and more
 
Web app and more
Web app and moreWeb app and more
Web app and more
 
.NET Core on Mac
.NET Core on Mac.NET Core on Mac
.NET Core on Mac
 
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
 
Apache cordova
Apache cordovaApache cordova
Apache cordova
 
Introduction phonegap
Introduction phonegapIntroduction phonegap
Introduction phonegap
 
Advanced programing in phonegap
Advanced programing in phonegapAdvanced programing in phonegap
Advanced programing in phonegap
 
phonegap with angular js for freshers
phonegap with angular js for freshers    phonegap with angular js for freshers
phonegap with angular js for freshers
 
Enterprise Hybrid Feasibility Analysis
Enterprise Hybrid Feasibility AnalysisEnterprise Hybrid Feasibility Analysis
Enterprise Hybrid Feasibility Analysis
 
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
 
What is Adobe Flex ?
What is Adobe Flex  ?What is Adobe Flex  ?
What is Adobe Flex ?
 
Adobe® Flex™
Adobe® Flex™Adobe® Flex™
Adobe® Flex™
 
Basic Understanding of Progressive Web Apps
Basic Understanding of Progressive Web AppsBasic Understanding of Progressive Web Apps
Basic Understanding of Progressive Web Apps
 

Mais de 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 incubatorITEM
 
Как глобальные тренды и инновации повлияют на аутсорсинг в Украине
Как глобальные тренды и инновации повлияют на аутсорсинг в УкраинеКак глобальные тренды и инновации повлияют на аутсорсинг в Украине
Как глобальные тренды и инновации повлияют на аутсорсинг в Украине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 companyITEM
 
Redesign of management methodologies
Redesign of management methodologiesRedesign of management methodologies
Redesign of management methodologiesITEM
 
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 teamsITEM
 
Превращая риски в продажи
Превращая риски в продажиПревращая риски в продажи
Превращая риски в продажи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-endITEM
 
Communication with clients
Communication with clientsCommunication with clients
Communication with clientsITEM
 
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 organizationITEM
 

Mais de ITEM (20)

Тестирование искусственного интеллекта: с какой стороны подступиться?
Тестирование искусственного интеллекта: с какой стороны подступиться?Тестирование искусственного интеллекта: с какой стороны подступиться?
Тестирование искусственного интеллекта: с какой стороны подступиться?
 
Сделать свой продукт, или убить в себе перфекциониста
Сделать свой продукт, или убить в себе перфекционистаСделать свой продукт, или убить в себе перфекциониста
Сделать свой продукт, или убить в себе перфекциониста
 
Upwork as a service company incubator
Upwork as a service company incubatorUpwork as a service company incubator
Upwork as a service company incubator
 
Как глобальные тренды и инновации повлияют на аутсорсинг в Украине
Как глобальные тренды и инновации повлияют на аутсорсинг в УкраинеКак глобальные тренды и инновации повлияют на аутсорсинг в Украине
Как глобальные тренды и инновации повлияют на аутсорсинг в Украине
 
Внедрение локационных сервисов: теория vs практика
Внедрение локационных сервисов: теория vs практика Внедрение локационных сервисов: теория vs практика
Внедрение локационных сервисов: теория vs практика
 
Automated Vulnerability Assessment and Management
Automated Vulnerability Assessment and Management Automated Vulnerability Assessment and Management
Automated Vulnerability Assessment and Management
 
Как понять в кого вкладывать деньги?
Как понять в кого вкладывать деньги? Как понять в кого вкладывать деньги?
Как понять в кого вкладывать деньги?
 
Как аутсорсинговые компании свои продукты разрабатывали и что из этого вышло.
Как аутсорсинговые компании свои продукты разрабатывали и что из этого вышло.Как аутсорсинговые компании свои продукты разрабатывали и что из этого вышло.
Как аутсорсинговые компании свои продукты разрабатывали и что из этого вышло.
 
Внутренние стартапы. Долго, дорого, никогда.
Внутренние стартапы. Долго, дорого, никогда. Внутренние стартапы. Долго, дорого, никогда.
Внутренние стартапы. Долго, дорого, никогда.
 
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
 
Redesign of management methodologies
Redesign of management methodologiesRedesign of management methodologies
Redesign of management methodologies
 
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...
 
Тернистый путь к самоорганизации
Тернистый путь к самоорганизацииТернистый путь к самоорганизации
Тернистый путь к самоорганизации
 
Lessons learned scrum mastering distributed teams
Lessons learned scrum mastering distributed teamsLessons learned scrum mastering distributed teams
Lessons learned scrum mastering distributed teams
 
Превращая риски в продажи
Превращая риски в продажиПревращая риски в продажи
Превращая риски в продажи
 
Internet marketing for IT companies
Internet marketing for IT companies Internet marketing for IT companies
Internet marketing for IT 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.
Success of foreign investment attraction by outsource/service companies.
 
Outsourcing is a dead-end
Outsourcing is a dead-endOutsourcing is a dead-end
Outsourcing is a dead-end
 
Communication with clients
Communication with clientsCommunication with clients
Communication with clients
 
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
 

Último

TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 

Último (20)

TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 

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
  • 13.
  • 15. Network request:
 Service Worker 
 in play Web App Service
 Worker Network Cache
  • 16. DEMO – Offline with SW
 https://aka.ms/applescrusher
  • 17.
  • 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
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 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
  • 26.
  • 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);
  • 41.
  • 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