SlideShare a Scribd company logo
1 of 122
Download to read offline
The Future of the Web
@robertnyman
Willkommen nach
Deutschland
I'm from Sweden
Credit: https://www.flickr.com/photos/stephenbove/184201987
I'm from Sweden
Credit: https://www.pinterest.com/pin/313352086545358825/
Web life
Web developer since
1999
Mozilla community
from 2009
Mozilla employee
2011-2014
The web as of today
Web declared dead in 2010
Web declared dead in 2010
Web very much alive in 2016!
Nov 2015, 800 Million users
May 2016, 1 Billion users
The web is dead?
Apps
Credit: http://imgs.xkcd.com/comics/app.png
Apps
Web is all browsers
The web & Chrome
Web as of today => Progressive Web Apps
Instant Loading
Service Workers
Both for offline and poor

network situations
Add to Home Screen
Shortcut on Homescreen
Install banners
Push Notifications
Re-engagement
Relevant, timely, and contextual
notifications
Fast
Smooth animations, scrolling 

and navigation
Secure
HTTPS
Secure
Responsive
Adapting content to any screen size
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
WebVR
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
66%Fewer conversions on
mobile websites vs. desktop
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: Kenneth Rohde Christiansen
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 BLE 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); }
WebNFC
navigator.nfc.watch((message) => {
for (let record of message.data) {
let article =/[aeio]/.test(record.data.title) ? "an" : "a";
console.log(
`$(record.data.name) is $(article) $(record.data.title)`
);
}
}, { url: document.baseURI, recordType: "json" });
Danish hero Kenneth Christiansen - @kennethrohde
Generic Sensors
let sensor = new DirectTirePressureSensor({ position: "rear", side: "left" });
sensor.onchange = event => console.log(event.reading.pressure);
try { // No need to feature detect thanks to try..catch block.
let sensor = new GeolocationSensor({});
sensor.start();
sensor.onerror = error => gracefullyDegrade(error);
sensor.onchange = event => updatePosition(event.reading.coords);
} catch(error) {
gracefullyDegrade(error);
}
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); });
}
Virtual Reality, WebVR
WebVR API 1.0 progress!
Landing in browsers:
Firefox Nightly 2 weeks ago

Chrome later this year
Edge has begun development
Daydream
Daydream
https://aframe.io/
VR View
Oculus CEO & co-founder
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
Credit: https://github.com/alrra/browser-logos
Working together on making the web better Credit: https://twitter.com/simonnricketts/
status/699198327338987520
The Future of the Web
Robert Nyman
robertnyman.com

nyman@google.com

Google
@robertnyman

More Related Content

What's hot

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
Chris Love
 

What's hot (20)

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...
 
Predictability for the Web
Predictability for the WebPredictability for the Web
Predictability for the Web
 
The Case for Progressive Web Apps
The Case for Progressive Web AppsThe Case for Progressive Web Apps
The Case for Progressive Web Apps
 
Offline-First Progressive Web Apps
Offline-First Progressive Web AppsOffline-First Progressive Web Apps
Offline-First Progressive 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]
 
Progressive Web App Challenges
Progressive Web App ChallengesProgressive Web App Challenges
Progressive Web App Challenges
 
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
 
Cutting the Fat by Tiffany Conroy
Cutting the Fat by Tiffany ConroyCutting the Fat by Tiffany Conroy
Cutting the Fat by Tiffany Conroy
 
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
 
Codemotion Rome 2015 Bluemix Lab Tutorial
Codemotion Rome 2015 Bluemix Lab TutorialCodemotion Rome 2015 Bluemix Lab Tutorial
Codemotion Rome 2015 Bluemix Lab Tutorial
 
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
 
Make mobile web apps rock
Make mobile web apps rockMake mobile web apps rock
Make mobile web apps rock
 
The Physical World meets the Web
The Physical World meets the WebThe Physical World meets the Web
The Physical World meets the Web
 
Planning Your Progressive Web App
Planning Your Progressive Web AppPlanning Your Progressive Web App
Planning Your Progressive Web App
 
Responsive Images and Performance
Responsive Images and PerformanceResponsive Images and Performance
Responsive Images and Performance
 
Future of web development
Future of web developmentFuture of web development
Future of web development
 
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
 

Viewers also liked

Grafico diario del dax perfomance index para el 08 03-2013
Grafico diario del dax perfomance index para el 08 03-2013Grafico diario del dax perfomance index para el 08 03-2013
Grafico diario del dax perfomance index para el 08 03-2013
Experiencia Trading
 
The Psychology of Earlystage Investing
The Psychology of Earlystage InvestingThe Psychology of Earlystage Investing
The Psychology of Earlystage Investing
Andy Forbes
 
Guia de estudio de la materia de ciencias de la comunicacion ii
Guia de estudio de la materia de ciencias de la comunicacion iiGuia de estudio de la materia de ciencias de la comunicacion ii
Guia de estudio de la materia de ciencias de la comunicacion ii
Aleyda Ortiz
 

Viewers also liked (13)

Introduction to Google Daydream
Introduction to Google DaydreamIntroduction to Google Daydream
Introduction to Google Daydream
 
Zacarias monsalbe educacion fisica
Zacarias monsalbe educacion fisicaZacarias monsalbe educacion fisica
Zacarias monsalbe educacion fisica
 
Grafico diario del dax perfomance index para el 08 03-2013
Grafico diario del dax perfomance index para el 08 03-2013Grafico diario del dax perfomance index para el 08 03-2013
Grafico diario del dax perfomance index para el 08 03-2013
 
5 Secrets of Growth by Lincoln Murphy
5 Secrets of Growth by Lincoln Murphy5 Secrets of Growth by Lincoln Murphy
5 Secrets of Growth by Lincoln Murphy
 
5 Signs Your Business Is Suffering Because You Haven't Documented Your Busine...
5 Signs Your Business Is Suffering Because You Haven't Documented Your Busine...5 Signs Your Business Is Suffering Because You Haven't Documented Your Busine...
5 Signs Your Business Is Suffering Because You Haven't Documented Your Busine...
 
The Psychology of Earlystage Investing
The Psychology of Earlystage InvestingThe Psychology of Earlystage Investing
The Psychology of Earlystage Investing
 
Guia de estudio de la materia de ciencias de la comunicacion ii
Guia de estudio de la materia de ciencias de la comunicacion iiGuia de estudio de la materia de ciencias de la comunicacion ii
Guia de estudio de la materia de ciencias de la comunicacion ii
 
Symantec Infographic: The psychology of trust in websites
Symantec Infographic: The psychology of trust in websitesSymantec Infographic: The psychology of trust in websites
Symantec Infographic: The psychology of trust in websites
 
柱梁箍筋自動化與 營建節能減碳
柱梁箍筋自動化與營建節能減碳柱梁箍筋自動化與營建節能減碳
柱梁箍筋自動化與 營建節能減碳
 
Trulia American Dream Survey - Fall 2011
Trulia American Dream Survey - Fall 2011Trulia American Dream Survey - Fall 2011
Trulia American Dream Survey - Fall 2011
 
Contrataciones empleo con apoyo.
Contrataciones empleo con apoyo.Contrataciones empleo con apoyo.
Contrataciones empleo con apoyo.
 
2014-04-05 - SPSPhilly - Authentication and Authorization
2014-04-05 - SPSPhilly - Authentication and Authorization2014-04-05 - SPSPhilly - Authentication and Authorization
2014-04-05 - SPSPhilly - Authentication and Authorization
 
NLP meetup 2016.10.05 - Szabó Martina Katalin: Precognox
NLP meetup 2016.10.05 - Szabó Martina Katalin: PrecognoxNLP meetup 2016.10.05 - Szabó Martina Katalin: Precognox
NLP meetup 2016.10.05 - Szabó Martina Katalin: Precognox
 

Similar to The Future of Progressive Web Apps - View Source conference, Berlin 2016

HTML5 - The 2012 of the Web
HTML5 - The 2012 of the WebHTML5 - The 2012 of the Web
HTML5 - The 2012 of the Web
Robert Nyman
 

Similar to The Future of Progressive Web Apps - View Source conference, Berlin 2016 (20)

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
 
Developing Applications for WebOS
Developing Applications for WebOSDeveloping Applications for WebOS
Developing Applications for WebOS
 
Monetizing your apps with PayPal API:s
Monetizing your apps with PayPal API:sMonetizing your apps with PayPal API:s
Monetizing your apps with PayPal API:s
 
Bootstrapping an App for Launch
Bootstrapping an App for LaunchBootstrapping an App for Launch
Bootstrapping an App for Launch
 
A2Lab - Payment Request API
A2Lab - Payment Request APIA2Lab - Payment Request API
A2Lab - Payment Request API
 
Monetize with PayPal X Payments Platform
Monetize with PayPal X Payments PlatformMonetize with PayPal X Payments Platform
Monetize with PayPal X Payments Platform
 
Repaso rápido a los nuevos estándares web
Repaso rápido a los nuevos estándares webRepaso rápido a los nuevos estándares web
Repaso rápido a los nuevos estándares web
 
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
 
Social Gold In-Flash Payments Webinar
Social Gold In-Flash Payments WebinarSocial Gold In-Flash Payments Webinar
Social Gold In-Flash Payments Webinar
 
Integrating WordPress With Web APIs
Integrating WordPress With Web APIsIntegrating WordPress With Web APIs
Integrating WordPress With Web APIs
 
Chris Wilson: Progressive Web Apps
Chris Wilson: Progressive Web AppsChris Wilson: Progressive Web Apps
Chris Wilson: Progressive Web Apps
 
HTML5 - The 2012 of the Web
HTML5 - The 2012 of the WebHTML5 - The 2012 of the Web
HTML5 - The 2012 of the Web
 
Enterprise AIR Development for JavaScript Developers
Enterprise AIR Development for JavaScript DevelopersEnterprise AIR Development for JavaScript Developers
Enterprise AIR Development for JavaScript Developers
 
Best And Worst Practices Building Ria with Adobe and Microsoft
Best And Worst Practices Building Ria with Adobe and MicrosoftBest And Worst Practices Building Ria with Adobe and Microsoft
Best And Worst Practices Building Ria with Adobe and Microsoft
 
Distributed Parcel Tracking/Management System Overview
Distributed Parcel Tracking/Management System OverviewDistributed Parcel Tracking/Management System Overview
Distributed Parcel Tracking/Management System Overview
 
Mobile for web developers
Mobile for web developersMobile for web developers
Mobile for web developers
 
DODN2009 - Jump Start Silverlight
DODN2009 - Jump Start SilverlightDODN2009 - Jump Start Silverlight
DODN2009 - Jump Start Silverlight
 
Windows Azure: Connecting the Dots for a Mobile Workforce
Windows Azure: Connecting the Dots for a Mobile WorkforceWindows Azure: Connecting the Dots for a Mobile Workforce
Windows Azure: Connecting the Dots for a Mobile Workforce
 
srdc.msstate.edu
srdc.msstate.edusrdc.msstate.edu
srdc.msstate.edu
 

More from Robert 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 2014
Robert Nyman
 
Streem - Water footprint, behavior and awareness
Streem - Water footprint, behavior and awarenessStreem - Water footprint, behavior and awareness
Streem - Water footprint, behavior and awareness
Robert 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.mobile
Robert Nyman
 
Five Stages of Development - Nordic.js
Five Stages of Development  - Nordic.jsFive Stages of Development  - Nordic.js
Five Stages of Development - Nordic.js
Robert Nyman
 
Five stages of development - at Vaimo
Five stages of development - at VaimoFive stages of development - at Vaimo
Five stages of development - at Vaimo
Robert Nyman
 
Five Stages of Development
Five Stages of DevelopmentFive Stages of Development
Five Stages of Development
Robert 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ås
Robert Nyman
 
Firefox OS, the Open Web & WebAPIs - Geek Meet Västerås
Firefox OS, the Open Web & WebAPIs - Geek Meet VästeråsFirefox OS, the Open Web & WebAPIs - Geek Meet Västerås
Firefox OS, the Open Web & WebAPIs - Geek Meet Västerås
Robert Nyman
 

More from Robert Nyman (20)

Have you tried listening?
Have you tried listening?Have you tried listening?
Have you tried listening?
 
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
 
Firefox OS, the Open Web & WebAPIs - Geek Meet Västerås
Firefox OS, the Open Web & WebAPIs - Geek Meet VästeråsFirefox OS, the Open Web & WebAPIs - Geek Meet Västerås
Firefox OS, the Open Web & WebAPIs - Geek Meet Västerås
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Recently uploaded (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 

The Future of Progressive Web Apps - View Source conference, Berlin 2016