SlideShare une entreprise Scribd logo
1  sur  83
Télécharger pour lire hors ligne
Robert Nyman
Developer Relations Program Manager
@robertnyman
Apa kabar?
Future of Progressive
Web Apps
I'm from Sweden
I'm from Sweden
Credit: https://www.flickr.com/photos/stephenbove/184201987
I'm from Sweden
Credit: https://www.pinterest.com/pin/313352086545358825/
Selamat Datang di Swedia!
Service workers allow
for offline caching
and instant loading.
Smooth animations,
scrolling and
navigations keep the
experience silky
smooth.
Push notifications
and add to
homescreen help
users re-engage.
HTTPS secures the
connection between you
and your users.
Reliable Fast Engaging Secure
Progressive Web Apps, today
We've come a long way
The web is almighty powerful
It's just the beginning
What we do now is the beginning
What's needed to play
Table stakes
What about the future?
Credit: https://www.flickr.com/photos/mssarakelly/9422242223
Things we'll talk about today
Knowing who the user is
Credentials Management
Paying for things on the web
Connecting with hardware
Physical Web
Knowing who the user is
Credit: https://commons.wikimedia.org/wiki/File:Steal_password.jpg
Title Text
Password
Forgot password?
Login
LOGIN
Don’t have an account? Sign up!
Did I use that?
$%&§”%$?!
Hm?
Most likely!
Yes, but which one?Email address
It's hard to type on a mobile device
Most popular password in 2015
123456
2nd most popular password in 2015
password
Smart Lock for passwords
sign-ins assisted per month
8 billion
Sign Up Form
<form id="signup" action="signup.php" method="post">

<input name="display-name" type="text">

<input name="phone" type="text">
<input name="email" type="text">

<input name="password" type="password">
<input type="submit" value="Sign Up!">

</form>
Friendly name?
Identifier?
Idunno?
Sign Up Form
<form id="signup" action="signup.php" method="post">

<input name="display-name" type="text" autocomplete="name">

<input name="phone" type="text" autocomplete="home tel">
<input name="email" type="text" autocomplete="username">

<input name="password" type="password">
<input type="submit" value="Sign Up!">

</form>
Aha!
Sign In Form
<form id="login" action="login.php" method="post">
<input name="username" type="text" autocomplete="username">

<input name="password" type="password" autocomplete="current-password">
<input type="submit" value="Sign In!">

</form>
Sign Up Form
<form id="signup" action="signup.php" method="post">

<input name="display-name" type="text" autocomplete="name">

<input name="phone" type="text" autocomplete="home tel">
<input name="email" type="text" autocomplete="username">

<input name="password" type="password" autocomplete="new-password">
<input type="submit" value="Sign Up!">

</form>
password
auto-generated password
7nUvA8jyowEk44
the Credentials Management API
Credit: https://commons.wikimedia.org/wiki/File:Michael_de_la_Force_Leaders_Magazine_Press_Credentials_2013.jpg
Automatic Sign-in
navigator.credentials.get({

"password": true, "unmediated":
true

}).then(c => {
if (!c) return;
// Hooray, we have a credential!
signInToYourApplication(c);
});
Automatic Sign-in
Chrome will offer automatic sign-in if and only if:
✓Automatic sign-in is enabled
✓Only one credential is saved for the site
Automatic Sign-in
✓navigator.credentials is
restricted to secure contexts

✓Passwords are not directly
exposed to JavaScript

✓fetch() will only submit
credentials to same-site endpoint
function signInToYourApplication(c) {

fetch("/signin", {
"method": "POST", "credentials": c
}).then(r => {
if (r.status == 200)
renderSignedInExperience(r);
else
renderUsefulErrorMessage();
});
}
One-tap Sign-in
navigator.credentials.get({

"password": true
}).then(c => {
if (!c) return;
// Hooray, we have a credential!
signInToYourApplication(c);
});
Storing credentials
var f =
document.querySelector("#form");
var c = new PasswordCredential(f);
navigator.credentials.store(c)
.then(_ => {
// ...
});
Federated log-ins
var c = new FederatedCredential({
"id": "username",
"provider": "https://
accounts.google.com"
});
navigator.credentials.store(c)
.then(_ => {
// ...
});
navigator.credentials
.requireUserMediation()
.then(_ => {
// Sign the user
out.
});
Logging out
Paying for things on the web
Credit: http://www.publicdomainpictures.net/view-image.php?image=149197
66%
of purchases on
mobile are on web
The web is dead?
66%Fewer conversions on
mobile websites
Have you ever
abandoned a purchase
because of the
checkout form?
Manual Tedious Slow N-taps
Checkout forms today
Autofill
Fill web forms 

with a single click
Card and address
saved to Chrome
Automatic form
detection
95+ ACCURACY
Form filled
automatically
How Autofill works
XYZ
25 Increase in conversion
rate from Autofill
%
Manual Tedious Slow N-taps
Checkout with Autofill
Automatic Simple
Imagine a world

without forms...
PaymentRequest
A W3C API to eliminate
checkout forms for users and
standardize payment
collection for sites
Designing PaymentRequest at W3C
Cross-browser
Designing PaymentRequest at W3C
Cross-browser Open ecosystemCross-platform
N-tapsSlowManual Tedious
Checkout with PaymentRequest
Automatic Simple Fast 1-tap
new PaymentRequest(

[“visa“, “mastercard“, “amex“, “discover“], {

items: [

{

id: "basket", label: "Sub-total",

amount: { currencyCode: "USD", value: "55.00" }, // $55.00

},

{

id: "tax", label: "Sales Tax",

amount: { currencyCode: "USD", value: "5.00" }, // $5.00

},

{

id: "total", label: "Total excluding shipping",

amount: { currencyCode: "USD", value: "60.00" }, // $60.00

}

]

},

{ 

requestShipping: true 

}

).show().then(response => { /* process payment */ }).catch(error => { /* handle */ });
new PaymentRequest(

[“visa“, “mastercard“, “amex“, “discover“], {

items: [

{

id: "basket", label: "Sub-total",

amount: { currencyCode: "USD", value: "55.00" }, // $55.00

},

{

id: "tax", label: "Sales Tax",

amount: { currencyCode: "USD", value: "5.00" }, // $5.00

},

{

id: "total", label: "Total excluding shipping",

amount: { currencyCode: "USD", value: "60.00" }, // $60.00

}

]

},

{ 

requestShipping: true 

}

).show().then(response => { /* process payment */ }).catch(error => { /* handle */ });
var request = new PaymentRequest(

[“visa”, ..., “https://android.com/pay”], // add Android Pay as supported

{

items: [...]

},

{ 

requestShipping: true 

},

{
// add Android Pay application specific parameters

"https://android.com/pay": {

"gateway": "stripe",

"stripe:publishableKey": "put_your_stripe_publishable_key_here",

"stripe:version": "2015-10-16 (latest)"

}

}

);
PaymentRequest with
Autofill cards in
Chrome Dev Android
PaymentRequest
available in Chrome
Beta on mobile;
Android Pay
Support for all
platforms & 3rd party
payment apps
May 2016 Aug 2016 Early 2017
When can I use PaymentRequest?
Connecting with hardware
Credit: https://en.wikipedia.org/wiki/Open-source_hardware
The evolution of transfer rates
Wi-Fi (Mbps)
802.11: 2
802.11b: 11
802.11g: 54
802.11n: 135
Ethernet (Mbps)
802.3i: 10
802.3u: 100
802.3ab: 1000
802.3an: 10000
Bluetooth (Mbps)
1.1: 1
2.0: 3
3.0: 54
4.0: 0.3
Demo time!
https://webbluetoothcg.github.io/demos/playbulb-candle/
Basic BTLE terms to know...
“Central” device (my phone)
“Peripheral” device (candle)
GATT (Generic ATTribute profile)
var options = { filters: [{ services: [’battery_service’] }] };
navigator.bluetooth.requestDevice(options)
.then(device => {
console.log(device.name);
...
})
.catch(error => { console.log(error); });
var options = { filters: [{ services: [’battery_service’] }] };
navigator.bluetooth.requestDevice(options)
.then(device => device.gatt.connect())
.then(server => { ... })
.catch(error => { console.log(error); });
var options = { filters: [{ services: [’battery_service'] }] };
navigator.bluetooth.requestDevice(options)
.then(device => device.gatt.connect())
.then(server => server.getPrimaryService(’battery_service’))
.then(service => service.getCharacteristic(’battery_level’))
.then(characteristic => characteristic.readValue())
.then(value => {
console.log(’Battery percentage is ’ + value.getUint8(0));
})
.catch(error => { console.log(error); });
var options = { filters: [{ services: [CANDLE_SERVICE_UUID] }],
optionalServices: ['battery_service'] };
navigator.bluetooth.requestDevice(options)
.then(device => device.gatt.connect())
.then(server => server.getPrimaryService(CANDLE_SERVICE_UUID))
.then(service => service.getCharacteristic(CANDLE_COLOR_UUID))
.then(characteristic => {
let data = [0x00, r, g, b, 0x05, 0x00, 0x01, 0x00];
return characteristic.writeValue(new Uint8Array(data));
})
.catch(error => { console.log(error); });
Android Developer Options
var options = { filters: [{ services: [CANDLE_SERVICE_UUID] }] };
navigator.bluetooth.requestDevice(options)
.then(device => device.gatt.connect())
.then(server => server.getPrimaryService(CANDLE_SERVICE_UUID))
.then(service =>
service.getCharacteristic(CANDLE_BLOW_NOTIFICATIONS_UUID))
.then(characteristic => {
characteristic.addEventListener(’characteristicvaluechanged’, blow);
return characteristic.startNotifications(); })
.catch(error => { console.log(error); });
function blow(event) { console.log(event.target.value); }
The Physical Web
http://www.physical-web.org
Credit: https://en.wikipedia.org/wiki/Spider_web
/* Awesomeness to come */
var referringDevice = navigator.bluetooth.referringDevice;
if (referringDevice) {
referringDevice.gatt.connect()
.then(server => { ... })
.catch(error => { console.log(error); });
}
Tell us what you need
Report bug

https://crbug.com
Feature status

https://chromestatus.com
Slack

https://goo.gl/jCWx5m
Videos

https://www.youtube.com/user/
ChromeDevelopers
@ChromiumDev
Robert Nyman
@robertnyman
Terima kasih!

Contenu connexe

Tendances

Predictability for the Web
Predictability for the WebPredictability for the Web
Predictability for the WebRobert Nyman
 
Progressive web apps with polymer
Progressive web apps with polymerProgressive web apps with polymer
Progressive web apps with polymerMarcus Hellberg
 
Codemotion Progressive Web Applications Pwa Webinar - Jorge Ferreiro - @jgfer...
Codemotion Progressive Web Applications Pwa Webinar - Jorge Ferreiro - @jgfer...Codemotion Progressive Web Applications Pwa Webinar - Jorge Ferreiro - @jgfer...
Codemotion Progressive Web Applications Pwa Webinar - Jorge Ferreiro - @jgfer...Jorge Ferreiro
 
The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...
The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...
The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...Robert Nyman
 
Offline-First Progressive Web Apps
Offline-First Progressive Web AppsOffline-First Progressive Web Apps
Offline-First Progressive Web AppsAditya Punjani
 
The Case for Progressive Web Apps
The Case for Progressive Web AppsThe Case for Progressive Web Apps
The Case for Progressive Web AppsJason Grigsby
 
PWA - The hidden stories about the future of the web
PWA - The hidden stories about the future of the webPWA - The hidden stories about the future of the web
PWA - The hidden stories about the future of the webRomulo Cintra
 
Progressive Web App Challenges
Progressive Web App ChallengesProgressive Web App Challenges
Progressive Web App ChallengesJason Grigsby
 
Dreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile designDreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile designDee Sadler
 
That's crazy! how to build single page web apps
That's crazy! how to build single page web appsThat's crazy! how to build single page web apps
That's crazy! how to build single page web appsChris Love
 
There Are No “Buts” in Progressive Enhancement [Øredev 2015]
There Are No “Buts” in Progressive Enhancement [Øredev 2015]There Are No “Buts” in Progressive Enhancement [Øredev 2015]
There Are No “Buts” in Progressive Enhancement [Øredev 2015]Aaron Gustafson
 
Cutting the Fat by Tiffany Conroy
Cutting the Fat by Tiffany ConroyCutting the Fat by Tiffany Conroy
Cutting the Fat by Tiffany ConroyCodemotion
 
Progressive Web Apps for Education
Progressive Web Apps for EducationProgressive Web Apps for Education
Progressive Web Apps for EducationChris Love
 
Codemotion Rome 2015 Bluemix Lab Tutorial
Codemotion Rome 2015 Bluemix Lab TutorialCodemotion Rome 2015 Bluemix Lab Tutorial
Codemotion Rome 2015 Bluemix Lab Tutorialgjuljo
 
Why Progressive Web Apps will transform your website
Why Progressive Web Apps will transform your websiteWhy Progressive Web Apps will transform your website
Why Progressive Web Apps will transform your websiteJason Grigsby
 
Make mobile web apps rock
Make mobile web apps rockMake mobile web apps rock
Make mobile web apps rockChris Love
 
QuickConnect
QuickConnectQuickConnect
QuickConnectAnnu G
 
10 things to make you a Great Mobile Web Developer
10 things to make you a Great Mobile Web Developer10 things to make you a Great Mobile Web Developer
10 things to make you a Great Mobile Web DeveloperChris Love
 
The Physical World meets the Web
The Physical World meets the WebThe Physical World meets the Web
The Physical World meets the WebMaximiliano Firtman
 
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise
Doing Modern Web, aka JavaScript and HTML5 in the EnterpriseDoing Modern Web, aka JavaScript and HTML5 in the Enterprise
Doing Modern Web, aka JavaScript and HTML5 in the EnterpriseChris Love
 

Tendances (20)

Predictability for the Web
Predictability for the WebPredictability for the Web
Predictability for the Web
 
Progressive web apps with polymer
Progressive web apps with polymerProgressive web apps with polymer
Progressive web apps with polymer
 
Codemotion Progressive Web Applications Pwa Webinar - Jorge Ferreiro - @jgfer...
Codemotion Progressive Web Applications Pwa Webinar - Jorge Ferreiro - @jgfer...Codemotion Progressive Web Applications Pwa Webinar - Jorge Ferreiro - @jgfer...
Codemotion Progressive Web Applications Pwa Webinar - Jorge Ferreiro - @jgfer...
 
The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...
The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...
The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...
 
Offline-First Progressive Web Apps
Offline-First Progressive Web AppsOffline-First Progressive Web Apps
Offline-First Progressive Web Apps
 
The Case for Progressive Web Apps
The Case for Progressive Web AppsThe Case for Progressive Web Apps
The Case for Progressive Web Apps
 
PWA - The hidden stories about the future of the web
PWA - The hidden stories about the future of the webPWA - The hidden stories about the future of the web
PWA - The hidden stories about the future of the web
 
Progressive Web App Challenges
Progressive Web App ChallengesProgressive Web App Challenges
Progressive Web App Challenges
 
Dreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile designDreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile design
 
That's crazy! how to build single page web apps
That's crazy! how to build single page web appsThat's crazy! how to build single page web apps
That's crazy! how to build single page web apps
 
There Are No “Buts” in Progressive Enhancement [Øredev 2015]
There Are No “Buts” in Progressive Enhancement [Øredev 2015]There Are No “Buts” in Progressive Enhancement [Øredev 2015]
There Are No “Buts” in Progressive Enhancement [Øredev 2015]
 
Cutting the Fat by Tiffany Conroy
Cutting the Fat by Tiffany ConroyCutting the Fat by Tiffany Conroy
Cutting the Fat by Tiffany Conroy
 
Progressive Web Apps for Education
Progressive Web Apps for EducationProgressive Web Apps for Education
Progressive Web Apps for Education
 
Codemotion Rome 2015 Bluemix Lab Tutorial
Codemotion Rome 2015 Bluemix Lab TutorialCodemotion Rome 2015 Bluemix Lab Tutorial
Codemotion Rome 2015 Bluemix Lab Tutorial
 
Why Progressive Web Apps will transform your website
Why Progressive Web Apps will transform your websiteWhy Progressive Web Apps will transform your website
Why Progressive Web Apps will transform your website
 
Make mobile web apps rock
Make mobile web apps rockMake mobile web apps rock
Make mobile web apps rock
 
QuickConnect
QuickConnectQuickConnect
QuickConnect
 
10 things to make you a Great Mobile Web Developer
10 things to make you a Great Mobile Web Developer10 things to make you a Great Mobile Web Developer
10 things to make you a Great Mobile Web Developer
 
The Physical World meets the Web
The Physical World meets the WebThe Physical World meets the Web
The Physical World meets the Web
 
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise
Doing Modern Web, aka JavaScript and HTML5 in the EnterpriseDoing Modern Web, aka JavaScript and HTML5 in the Enterprise
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise
 

En vedette

Grain News : FMCG Packaging Evolution - WHISKAS®
Grain News : FMCG Packaging Evolution - WHISKAS®Grain News : FMCG Packaging Evolution - WHISKAS®
Grain News : FMCG Packaging Evolution - WHISKAS®paperdoll_design
 
Wie funkionniert-amazons-preisoptimierung
Wie funkionniert-amazons-preisoptimierungWie funkionniert-amazons-preisoptimierung
Wie funkionniert-amazons-preisoptimierungRepricerExpress
 
Campamento multiaventura 2º stage de judo - escuela de judo josé antonio ma...
Campamento multiaventura   2º stage de judo - escuela de judo josé antonio ma...Campamento multiaventura   2º stage de judo - escuela de judo josé antonio ma...
Campamento multiaventura 2º stage de judo - escuela de judo josé antonio ma...Cole Navalazarza
 
Its your love spanish
Its your love   spanishIts your love   spanish
Its your love spanishcamilo
 
App109 -eddymotor
App109 -eddymotorApp109 -eddymotor
App109 -eddymotorISATECK
 
Robbins Mass Cusotmization in b2 b information services-2011
Robbins Mass Cusotmization in b2 b information services-2011Robbins Mass Cusotmization in b2 b information services-2011
Robbins Mass Cusotmization in b2 b information services-2011Jane Robbins
 
Jahresbericht 2012
Jahresbericht 2012Jahresbericht 2012
Jahresbericht 2012kmgneanne
 
Sophy Mut-CV-2016
Sophy Mut-CV-2016Sophy Mut-CV-2016
Sophy Mut-CV-2016Sophy Mut
 
Seminario sobre sistemas de recomendación
Seminario sobre sistemas de recomendaciónSeminario sobre sistemas de recomendación
Seminario sobre sistemas de recomendaciónalmudena ruiz
 
Jung c.g. formacionesdeloinconsciente
Jung c.g. formacionesdeloinconscienteJung c.g. formacionesdeloinconsciente
Jung c.g. formacionesdeloinconscientevidadeluz
 
Computacion Movil
Computacion MovilComputacion Movil
Computacion Movilzaidil24
 
Ley 786 creación Palos Blancos
Ley 786 creación Palos BlancosLey 786 creación Palos Blancos
Ley 786 creación Palos BlancosDoctora Edilicia
 
Financial planning process design 6 powerpoint ppt slides.
Financial planning process design 6 powerpoint ppt slides.Financial planning process design 6 powerpoint ppt slides.
Financial planning process design 6 powerpoint ppt slides.SlideTeam.net
 
Why solar energy is set to boom in Argentina - Argentina Renewables Analysis
Why solar energy is set to boom in Argentina - Argentina Renewables AnalysisWhy solar energy is set to boom in Argentina - Argentina Renewables Analysis
Why solar energy is set to boom in Argentina - Argentina Renewables AnalysisTomas Ocampo
 

En vedette (20)

Grain News : FMCG Packaging Evolution - WHISKAS®
Grain News : FMCG Packaging Evolution - WHISKAS®Grain News : FMCG Packaging Evolution - WHISKAS®
Grain News : FMCG Packaging Evolution - WHISKAS®
 
Wie funkionniert-amazons-preisoptimierung
Wie funkionniert-amazons-preisoptimierungWie funkionniert-amazons-preisoptimierung
Wie funkionniert-amazons-preisoptimierung
 
Campamento multiaventura 2º stage de judo - escuela de judo josé antonio ma...
Campamento multiaventura   2º stage de judo - escuela de judo josé antonio ma...Campamento multiaventura   2º stage de judo - escuela de judo josé antonio ma...
Campamento multiaventura 2º stage de judo - escuela de judo josé antonio ma...
 
Its your love spanish
Its your love   spanishIts your love   spanish
Its your love spanish
 
Global Gold
Global GoldGlobal Gold
Global Gold
 
App109 -eddymotor
App109 -eddymotorApp109 -eddymotor
App109 -eddymotor
 
Emisión centralizada parte 1
Emisión centralizada parte 1Emisión centralizada parte 1
Emisión centralizada parte 1
 
Hazmat
HazmatHazmat
Hazmat
 
Robbins Mass Cusotmization in b2 b information services-2011
Robbins Mass Cusotmization in b2 b information services-2011Robbins Mass Cusotmization in b2 b information services-2011
Robbins Mass Cusotmization in b2 b information services-2011
 
Jahresbericht 2012
Jahresbericht 2012Jahresbericht 2012
Jahresbericht 2012
 
Sophy Mut-CV-2016
Sophy Mut-CV-2016Sophy Mut-CV-2016
Sophy Mut-CV-2016
 
Seminario sobre sistemas de recomendación
Seminario sobre sistemas de recomendaciónSeminario sobre sistemas de recomendación
Seminario sobre sistemas de recomendación
 
Jung c.g. formacionesdeloinconsciente
Jung c.g. formacionesdeloinconscienteJung c.g. formacionesdeloinconsciente
Jung c.g. formacionesdeloinconsciente
 
Computacion Movil
Computacion MovilComputacion Movil
Computacion Movil
 
Pp jepang
Pp jepangPp jepang
Pp jepang
 
Animación
AnimaciónAnimación
Animación
 
Using endnote
Using endnoteUsing endnote
Using endnote
 
Ley 786 creación Palos Blancos
Ley 786 creación Palos BlancosLey 786 creación Palos Blancos
Ley 786 creación Palos Blancos
 
Financial planning process design 6 powerpoint ppt slides.
Financial planning process design 6 powerpoint ppt slides.Financial planning process design 6 powerpoint ppt slides.
Financial planning process design 6 powerpoint ppt slides.
 
Why solar energy is set to boom in Argentina - Argentina Renewables Analysis
Why solar energy is set to boom in Argentina - Argentina Renewables AnalysisWhy solar energy is set to boom in Argentina - Argentina Renewables Analysis
Why solar energy is set to boom in Argentina - Argentina Renewables Analysis
 

Similaire à The Future of Progressive Web Apps - Google for Indonesia

Integrating WordPress With Web APIs
Integrating WordPress With Web APIsIntegrating WordPress With Web APIs
Integrating WordPress With Web APIsrandyhoyt
 
Distributed Parcel Tracking/Management System Overview
Distributed Parcel Tracking/Management System OverviewDistributed Parcel Tracking/Management System Overview
Distributed Parcel Tracking/Management System OverviewMark Cheeseman
 
Google+ for Mobile Apps on iOS and Android
Google+ for Mobile Apps on iOS and AndroidGoogle+ for Mobile Apps on iOS and Android
Google+ for Mobile Apps on iOS and AndroidPeter Friese
 
Mozilla Web Apps - Super-VanJS
Mozilla Web Apps - Super-VanJSMozilla Web Apps - Super-VanJS
Mozilla Web Apps - Super-VanJSRobert Nyman
 
Andriy Vandakurov about "Frontend. Global domination"
Andriy Vandakurov about  "Frontend. Global domination" Andriy Vandakurov about  "Frontend. Global domination"
Andriy Vandakurov about "Frontend. Global domination" Pivorak MeetUp
 
Building a WiFi Hotspot with NodeJS: Cisco Meraki - ExCap API
Building a WiFi Hotspot with NodeJS: Cisco Meraki - ExCap APIBuilding a WiFi Hotspot with NodeJS: Cisco Meraki - ExCap API
Building a WiFi Hotspot with NodeJS: Cisco Meraki - ExCap APICisco DevNet
 
Bootstrapping an App for Launch
Bootstrapping an App for LaunchBootstrapping an App for Launch
Bootstrapping an App for LaunchCraig Phares
 
Go Mobile with Apache Cordova, Zagreb 2014
Go Mobile with Apache Cordova, Zagreb 2014Go Mobile with Apache Cordova, Zagreb 2014
Go Mobile with Apache Cordova, Zagreb 2014Christian Grobmeier
 
Web APIs & Apps - Mozilla
Web APIs & Apps - MozillaWeb APIs & Apps - Mozilla
Web APIs & Apps - MozillaRobert Nyman
 
Chris Wilson: Progressive Web Apps
Chris Wilson: Progressive Web AppsChris Wilson: Progressive Web Apps
Chris Wilson: Progressive Web AppsDanielle A Vincent
 
Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd
Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd
Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd Sencha
 
Petr Dvořák: Mobilní webové služby pohledem iPhone developera
Petr Dvořák: Mobilní webové služby pohledem iPhone developeraPetr Dvořák: Mobilní webové služby pohledem iPhone developera
Petr Dvořák: Mobilní webové služby pohledem iPhone developeraWebExpo
 
PHP on Windows and on Azure
PHP on Windows and on AzurePHP on Windows and on Azure
PHP on Windows and on AzureMaarten Balliauw
 
Social Gold In-Flash Payments Webinar
Social Gold In-Flash Payments WebinarSocial Gold In-Flash Payments Webinar
Social Gold In-Flash Payments WebinarSocial Gold
 
Social Gold in-Flash Webinar Jan 2010
Social Gold in-Flash Webinar Jan 2010Social Gold in-Flash Webinar Jan 2010
Social Gold in-Flash Webinar Jan 2010Social Gold
 
Node.js: scalability tips - Azure Dev Community Vijayawada
Node.js: scalability tips - Azure Dev Community VijayawadaNode.js: scalability tips - Azure Dev Community Vijayawada
Node.js: scalability tips - Azure Dev Community VijayawadaLuciano Mammino
 

Similaire à The Future of Progressive Web Apps - Google for Indonesia (20)

Integrating WordPress With Web APIs
Integrating WordPress With Web APIsIntegrating WordPress With Web APIs
Integrating WordPress With Web APIs
 
Distributed Parcel Tracking/Management System Overview
Distributed Parcel Tracking/Management System OverviewDistributed Parcel Tracking/Management System Overview
Distributed Parcel Tracking/Management System Overview
 
Google+ for Mobile Apps on iOS and Android
Google+ for Mobile Apps on iOS and AndroidGoogle+ for Mobile Apps on iOS and Android
Google+ for Mobile Apps on iOS and Android
 
Mozilla Web Apps - Super-VanJS
Mozilla Web Apps - Super-VanJSMozilla Web Apps - Super-VanJS
Mozilla Web Apps - Super-VanJS
 
Andriy Vandakurov about "Frontend. Global domination"
Andriy Vandakurov about  "Frontend. Global domination" Andriy Vandakurov about  "Frontend. Global domination"
Andriy Vandakurov about "Frontend. Global domination"
 
Pivorak.javascript.global domination
Pivorak.javascript.global dominationPivorak.javascript.global domination
Pivorak.javascript.global domination
 
Building a WiFi Hotspot with NodeJS: Cisco Meraki - ExCap API
Building a WiFi Hotspot with NodeJS: Cisco Meraki - ExCap APIBuilding a WiFi Hotspot with NodeJS: Cisco Meraki - ExCap API
Building a WiFi Hotspot with NodeJS: Cisco Meraki - ExCap API
 
Bootstrapping an App for Launch
Bootstrapping an App for LaunchBootstrapping an App for Launch
Bootstrapping an App for Launch
 
Go Mobile with Apache Cordova, Zagreb 2014
Go Mobile with Apache Cordova, Zagreb 2014Go Mobile with Apache Cordova, Zagreb 2014
Go Mobile with Apache Cordova, Zagreb 2014
 
Web APIs & Apps - Mozilla
Web APIs & Apps - MozillaWeb APIs & Apps - Mozilla
Web APIs & Apps - Mozilla
 
Chris Wilson: Progressive Web Apps
Chris Wilson: Progressive Web AppsChris Wilson: Progressive Web Apps
Chris Wilson: Progressive Web Apps
 
PHP on Windows
PHP on WindowsPHP on Windows
PHP on Windows
 
PHP on Windows
PHP on WindowsPHP on Windows
PHP on Windows
 
Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd
Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd
Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd
 
Petr Dvořák: Mobilní webové služby pohledem iPhone developera
Petr Dvořák: Mobilní webové služby pohledem iPhone developeraPetr Dvořák: Mobilní webové služby pohledem iPhone developera
Petr Dvořák: Mobilní webové služby pohledem iPhone developera
 
- Webexpo 2010
- Webexpo 2010- Webexpo 2010
- Webexpo 2010
 
PHP on Windows and on Azure
PHP on Windows and on AzurePHP on Windows and on Azure
PHP on Windows and on Azure
 
Social Gold In-Flash Payments Webinar
Social Gold In-Flash Payments WebinarSocial Gold In-Flash Payments Webinar
Social Gold In-Flash Payments Webinar
 
Social Gold in-Flash Webinar Jan 2010
Social Gold in-Flash Webinar Jan 2010Social Gold in-Flash Webinar Jan 2010
Social Gold in-Flash Webinar Jan 2010
 
Node.js: scalability tips - Azure Dev Community Vijayawada
Node.js: scalability tips - Azure Dev Community VijayawadaNode.js: scalability tips - Azure Dev Community Vijayawada
Node.js: scalability tips - Azure Dev Community Vijayawada
 

Plus de Robert Nyman

Have you tried listening?
Have you tried listening?Have you tried listening?
Have you tried listening?Robert Nyman
 
Introduction to Google Daydream
Introduction to Google DaydreamIntroduction to Google Daydream
Introduction to Google DaydreamRobert Nyman
 
Google tech & products
Google tech & productsGoogle tech & products
Google tech & productsRobert Nyman
 
The web - What it has, what it lacks and where it must go - Istanbul
The web - What it has, what it lacks and where it must go - IstanbulThe web - What it has, what it lacks and where it must go - Istanbul
The web - What it has, what it lacks and where it must go - IstanbulRobert Nyman
 
The web - What it has, what it lacks and where it must go
The web - What it has, what it lacks and where it must goThe web - What it has, what it lacks and where it must go
The web - What it has, what it lacks and where it must goRobert Nyman
 
Google, the future and possibilities
Google, the future and possibilitiesGoogle, the future and possibilities
Google, the future and possibilitiesRobert Nyman
 
Developer Relations in the Nordics
Developer Relations in the NordicsDeveloper Relations in the Nordics
Developer Relations in the NordicsRobert Nyman
 
What is Developer Relations?
What is Developer Relations?What is Developer Relations?
What is Developer Relations?Robert Nyman
 
Android TV Introduction - Stockholm Android TV meetup
Android TV Introduction - Stockholm Android TV meetupAndroid TV Introduction - Stockholm Android TV meetup
Android TV Introduction - Stockholm Android TV meetupRobert Nyman
 
New improvements for web developers - frontend.fi, Helsinki
New improvements for web developers - frontend.fi, HelsinkiNew improvements for web developers - frontend.fi, Helsinki
New improvements for web developers - frontend.fi, HelsinkiRobert Nyman
 
Mobile phone trends, user data & developer climate - frontend.fi, Helsinki
Mobile phone trends, user data & developer climate - frontend.fi, HelsinkiMobile phone trends, user data & developer climate - frontend.fi, Helsinki
Mobile phone trends, user data & developer climate - frontend.fi, HelsinkiRobert Nyman
 
Google & gaming, IGDA - Helsinki
Google & gaming, IGDA - HelsinkiGoogle & gaming, IGDA - Helsinki
Google & gaming, IGDA - HelsinkiRobert Nyman
 
Firefox OS - mobile trends, learnings & visions, at FOKUS FUSECO Forum 2014
Firefox OS - mobile trends, learnings & visions, at FOKUS FUSECO Forum 2014Firefox OS - mobile trends, learnings & visions, at FOKUS FUSECO Forum 2014
Firefox OS - mobile trends, learnings & visions, at FOKUS FUSECO Forum 2014Robert Nyman
 
Streem - Water footprint, behavior and awareness
Streem - Water footprint, behavior and awarenessStreem - Water footprint, behavior and awareness
Streem - Water footprint, behavior and awarenessRobert Nyman
 
S tree model - building resilient cities
S tree model - building resilient citiesS tree model - building resilient cities
S tree model - building resilient citiesRobert Nyman
 
Firefox OS learnings & visions, WebAPIs - budapest.mobile
Firefox OS learnings & visions, WebAPIs - budapest.mobileFirefox OS learnings & visions, WebAPIs - budapest.mobile
Firefox OS learnings & visions, WebAPIs - budapest.mobileRobert Nyman
 
Five Stages of Development - Nordic.js
Five Stages of Development  - Nordic.jsFive Stages of Development  - Nordic.js
Five Stages of Development - Nordic.jsRobert Nyman
 
Five stages of development - at Vaimo
Five stages of development - at VaimoFive stages of development - at Vaimo
Five stages of development - at VaimoRobert Nyman
 
Five Stages of Development
Five Stages of DevelopmentFive Stages of Development
Five Stages of DevelopmentRobert Nyman
 
What are you going to do with your life? Geek Meet Västerås
What are you going to do with your life? Geek Meet VästeråsWhat are you going to do with your life? Geek Meet Västerås
What are you going to do with your life? Geek Meet VästeråsRobert Nyman
 

Plus de Robert Nyman (20)

Have you tried listening?
Have you tried listening?Have you tried listening?
Have you tried listening?
 
Introduction to Google Daydream
Introduction to Google DaydreamIntroduction to Google Daydream
Introduction to Google Daydream
 
Google tech & products
Google tech & productsGoogle tech & products
Google tech & products
 
The web - What it has, what it lacks and where it must go - Istanbul
The web - What it has, what it lacks and where it must go - IstanbulThe web - What it has, what it lacks and where it must go - Istanbul
The web - What it has, what it lacks and where it must go - Istanbul
 
The web - What it has, what it lacks and where it must go
The web - What it has, what it lacks and where it must goThe web - What it has, what it lacks and where it must go
The web - What it has, what it lacks and where it must go
 
Google, the future and possibilities
Google, the future and possibilitiesGoogle, the future and possibilities
Google, the future and possibilities
 
Developer Relations in the Nordics
Developer Relations in the NordicsDeveloper Relations in the Nordics
Developer Relations in the Nordics
 
What is Developer Relations?
What is Developer Relations?What is Developer Relations?
What is Developer Relations?
 
Android TV Introduction - Stockholm Android TV meetup
Android TV Introduction - Stockholm Android TV meetupAndroid TV Introduction - Stockholm Android TV meetup
Android TV Introduction - Stockholm Android TV meetup
 
New improvements for web developers - frontend.fi, Helsinki
New improvements for web developers - frontend.fi, HelsinkiNew improvements for web developers - frontend.fi, Helsinki
New improvements for web developers - frontend.fi, Helsinki
 
Mobile phone trends, user data & developer climate - frontend.fi, Helsinki
Mobile phone trends, user data & developer climate - frontend.fi, HelsinkiMobile phone trends, user data & developer climate - frontend.fi, Helsinki
Mobile phone trends, user data & developer climate - frontend.fi, Helsinki
 
Google & gaming, IGDA - Helsinki
Google & gaming, IGDA - HelsinkiGoogle & gaming, IGDA - Helsinki
Google & gaming, IGDA - Helsinki
 
Firefox OS - mobile trends, learnings & visions, at FOKUS FUSECO Forum 2014
Firefox OS - mobile trends, learnings & visions, at FOKUS FUSECO Forum 2014Firefox OS - mobile trends, learnings & visions, at FOKUS FUSECO Forum 2014
Firefox OS - mobile trends, learnings & visions, at FOKUS FUSECO Forum 2014
 
Streem - Water footprint, behavior and awareness
Streem - Water footprint, behavior and awarenessStreem - Water footprint, behavior and awareness
Streem - Water footprint, behavior and awareness
 
S tree model - building resilient cities
S tree model - building resilient citiesS tree model - building resilient cities
S tree model - building resilient cities
 
Firefox OS learnings & visions, WebAPIs - budapest.mobile
Firefox OS learnings & visions, WebAPIs - budapest.mobileFirefox OS learnings & visions, WebAPIs - budapest.mobile
Firefox OS learnings & visions, WebAPIs - budapest.mobile
 
Five Stages of Development - Nordic.js
Five Stages of Development  - Nordic.jsFive Stages of Development  - Nordic.js
Five Stages of Development - Nordic.js
 
Five stages of development - at Vaimo
Five stages of development - at VaimoFive stages of development - at Vaimo
Five stages of development - at Vaimo
 
Five Stages of Development
Five Stages of DevelopmentFive Stages of Development
Five Stages of Development
 
What are you going to do with your life? Geek Meet Västerås
What are you going to do with your life? Geek Meet VästeråsWhat are you going to do with your life? Geek Meet Västerås
What are you going to do with your life? Geek Meet Västerås
 

Dernier

Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
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
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
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
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
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
 
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
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 

Dernier (20)

Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
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
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
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
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
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
 
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
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 

The Future of Progressive Web Apps - Google for Indonesia

  • 1.
  • 2. Robert Nyman Developer Relations Program Manager @robertnyman
  • 6. I'm from Sweden Credit: https://www.flickr.com/photos/stephenbove/184201987
  • 7. I'm from Sweden Credit: https://www.pinterest.com/pin/313352086545358825/
  • 9. Service workers allow for offline caching and instant loading. Smooth animations, scrolling and navigations keep the experience silky smooth. Push notifications and add to homescreen help users re-engage. HTTPS secures the connection between you and your users. Reliable Fast Engaging Secure Progressive Web Apps, today
  • 10. We've come a long way
  • 11. The web is almighty powerful
  • 12. It's just the beginning What we do now is the beginning What's needed to play Table stakes
  • 13. What about the future? Credit: https://www.flickr.com/photos/mssarakelly/9422242223
  • 14. Things we'll talk about today Knowing who the user is Credentials Management Paying for things on the web Connecting with hardware Physical Web
  • 15. Knowing who the user is Credit: https://commons.wikimedia.org/wiki/File:Steal_password.jpg
  • 16. Title Text Password Forgot password? Login LOGIN Don’t have an account? Sign up! Did I use that? $%&§”%$?! Hm? Most likely! Yes, but which one?Email address
  • 17. It's hard to type on a mobile device
  • 18. Most popular password in 2015 123456
  • 19. 2nd most popular password in 2015 password
  • 20. Smart Lock for passwords
  • 21. sign-ins assisted per month 8 billion
  • 22. Sign Up Form <form id="signup" action="signup.php" method="post">
 <input name="display-name" type="text">
 <input name="phone" type="text"> <input name="email" type="text">
 <input name="password" type="password"> <input type="submit" value="Sign Up!">
 </form> Friendly name? Identifier? Idunno?
  • 23. Sign Up Form <form id="signup" action="signup.php" method="post">
 <input name="display-name" type="text" autocomplete="name">
 <input name="phone" type="text" autocomplete="home tel"> <input name="email" type="text" autocomplete="username">
 <input name="password" type="password"> <input type="submit" value="Sign Up!">
 </form> Aha!
  • 24. Sign In Form <form id="login" action="login.php" method="post"> <input name="username" type="text" autocomplete="username">
 <input name="password" type="password" autocomplete="current-password"> <input type="submit" value="Sign In!">
 </form>
  • 25. Sign Up Form <form id="signup" action="signup.php" method="post">
 <input name="display-name" type="text" autocomplete="name">
 <input name="phone" type="text" autocomplete="home tel"> <input name="email" type="text" autocomplete="username">
 <input name="password" type="password" autocomplete="new-password"> <input type="submit" value="Sign Up!">
 </form>
  • 28. the Credentials Management API Credit: https://commons.wikimedia.org/wiki/File:Michael_de_la_Force_Leaders_Magazine_Press_Credentials_2013.jpg
  • 30. navigator.credentials.get({
 "password": true, "unmediated": true
 }).then(c => { if (!c) return; // Hooray, we have a credential! signInToYourApplication(c); });
  • 31. Automatic Sign-in Chrome will offer automatic sign-in if and only if: ✓Automatic sign-in is enabled ✓Only one credential is saved for the site
  • 32. Automatic Sign-in ✓navigator.credentials is restricted to secure contexts
 ✓Passwords are not directly exposed to JavaScript
 ✓fetch() will only submit credentials to same-site endpoint
  • 33. function signInToYourApplication(c) {
 fetch("/signin", { "method": "POST", "credentials": c }).then(r => { if (r.status == 200) renderSignedInExperience(r); else renderUsefulErrorMessage(); }); }
  • 35. navigator.credentials.get({
 "password": true }).then(c => { if (!c) return; // Hooray, we have a credential! signInToYourApplication(c); });
  • 37. var f = document.querySelector("#form"); var c = new PasswordCredential(f); navigator.credentials.store(c) .then(_ => { // ... });
  • 39. var c = new FederatedCredential({ "id": "username", "provider": "https:// accounts.google.com" }); navigator.credentials.store(c) .then(_ => { // ... });
  • 41.
  • 42. Paying for things on the web Credit: http://www.publicdomainpictures.net/view-image.php?image=149197
  • 44. The web is dead?
  • 46. Have you ever abandoned a purchase because of the checkout form?
  • 47. Manual Tedious Slow N-taps Checkout forms today
  • 48. Autofill Fill web forms 
 with a single click
  • 49. Card and address saved to Chrome Automatic form detection 95+ ACCURACY Form filled automatically How Autofill works XYZ
  • 50. 25 Increase in conversion rate from Autofill %
  • 51. Manual Tedious Slow N-taps Checkout with Autofill Automatic Simple
  • 53. PaymentRequest A W3C API to eliminate checkout forms for users and standardize payment collection for sites
  • 54. Designing PaymentRequest at W3C Cross-browser
  • 55. Designing PaymentRequest at W3C Cross-browser Open ecosystemCross-platform
  • 56. N-tapsSlowManual Tedious Checkout with PaymentRequest Automatic Simple Fast 1-tap
  • 57. new PaymentRequest(
 [“visa“, “mastercard“, “amex“, “discover“], {
 items: [
 {
 id: "basket", label: "Sub-total",
 amount: { currencyCode: "USD", value: "55.00" }, // $55.00
 },
 {
 id: "tax", label: "Sales Tax",
 amount: { currencyCode: "USD", value: "5.00" }, // $5.00
 },
 {
 id: "total", label: "Total excluding shipping",
 amount: { currencyCode: "USD", value: "60.00" }, // $60.00
 }
 ]
 },
 { 
 requestShipping: true 
 }
 ).show().then(response => { /* process payment */ }).catch(error => { /* handle */ });
  • 58. new PaymentRequest(
 [“visa“, “mastercard“, “amex“, “discover“], {
 items: [
 {
 id: "basket", label: "Sub-total",
 amount: { currencyCode: "USD", value: "55.00" }, // $55.00
 },
 {
 id: "tax", label: "Sales Tax",
 amount: { currencyCode: "USD", value: "5.00" }, // $5.00
 },
 {
 id: "total", label: "Total excluding shipping",
 amount: { currencyCode: "USD", value: "60.00" }, // $60.00
 }
 ]
 },
 { 
 requestShipping: true 
 }
 ).show().then(response => { /* process payment */ }).catch(error => { /* handle */ });
  • 59.
  • 60. var request = new PaymentRequest(
 [“visa”, ..., “https://android.com/pay”], // add Android Pay as supported
 {
 items: [...]
 },
 { 
 requestShipping: true 
 },
 { // add Android Pay application specific parameters
 "https://android.com/pay": {
 "gateway": "stripe",
 "stripe:publishableKey": "put_your_stripe_publishable_key_here",
 "stripe:version": "2015-10-16 (latest)"
 }
 }
 );
  • 61. PaymentRequest with Autofill cards in Chrome Dev Android PaymentRequest available in Chrome Beta on mobile; Android Pay Support for all platforms & 3rd party payment apps May 2016 Aug 2016 Early 2017 When can I use PaymentRequest?
  • 62.
  • 63. Connecting with hardware Credit: https://en.wikipedia.org/wiki/Open-source_hardware
  • 64.
  • 65. The evolution of transfer rates Wi-Fi (Mbps) 802.11: 2 802.11b: 11 802.11g: 54 802.11n: 135 Ethernet (Mbps) 802.3i: 10 802.3u: 100 802.3ab: 1000 802.3an: 10000 Bluetooth (Mbps) 1.1: 1 2.0: 3 3.0: 54 4.0: 0.3
  • 66.
  • 67.
  • 68.
  • 69.
  • 71. Basic BTLE terms to know... “Central” device (my phone) “Peripheral” device (candle) GATT (Generic ATTribute profile)
  • 72. var options = { filters: [{ services: [’battery_service’] }] }; navigator.bluetooth.requestDevice(options) .then(device => { console.log(device.name); ... }) .catch(error => { console.log(error); });
  • 73. var options = { filters: [{ services: [’battery_service’] }] }; navigator.bluetooth.requestDevice(options) .then(device => device.gatt.connect()) .then(server => { ... }) .catch(error => { console.log(error); });
  • 74. var options = { filters: [{ services: [’battery_service'] }] }; navigator.bluetooth.requestDevice(options) .then(device => device.gatt.connect()) .then(server => server.getPrimaryService(’battery_service’)) .then(service => service.getCharacteristic(’battery_level’)) .then(characteristic => characteristic.readValue()) .then(value => { console.log(’Battery percentage is ’ + value.getUint8(0)); }) .catch(error => { console.log(error); });
  • 75. var options = { filters: [{ services: [CANDLE_SERVICE_UUID] }], optionalServices: ['battery_service'] }; navigator.bluetooth.requestDevice(options) .then(device => device.gatt.connect()) .then(server => server.getPrimaryService(CANDLE_SERVICE_UUID)) .then(service => service.getCharacteristic(CANDLE_COLOR_UUID)) .then(characteristic => { let data = [0x00, r, g, b, 0x05, 0x00, 0x01, 0x00]; return characteristic.writeValue(new Uint8Array(data)); }) .catch(error => { console.log(error); });
  • 77. var options = { filters: [{ services: [CANDLE_SERVICE_UUID] }] }; navigator.bluetooth.requestDevice(options) .then(device => device.gatt.connect()) .then(server => server.getPrimaryService(CANDLE_SERVICE_UUID)) .then(service => service.getCharacteristic(CANDLE_BLOW_NOTIFICATIONS_UUID)) .then(characteristic => { characteristic.addEventListener(’characteristicvaluechanged’, blow); return characteristic.startNotifications(); }) .catch(error => { console.log(error); }); function blow(event) { console.log(event.target.value); }
  • 78. The Physical Web http://www.physical-web.org Credit: https://en.wikipedia.org/wiki/Spider_web
  • 79.
  • 80. /* Awesomeness to come */ var referringDevice = navigator.bluetooth.referringDevice; if (referringDevice) { referringDevice.gatt.connect() .then(server => { ... }) .catch(error => { console.log(error); }); }
  • 81.
  • 82. Tell us what you need Report bug
 https://crbug.com Feature status
 https://chromestatus.com Slack
 https://goo.gl/jCWx5m Videos
 https://www.youtube.com/user/ ChromeDevelopers @ChromiumDev