SlideShare a Scribd company logo
The web becomes more „native“
Carsten Sandtner (@casarock)
WEBAPIs
Hi My name is
Head of development //mediaman GMBH
Mozilla Rep
Javascript enthusiast and web developer
since 1998.
Carsten Sandtner
@casarock
https://flic.kr/p/a5WzoV
Web APIs - MobileTech conference 2015 - @casarock
The first browser war...
Microsoft vs. Netscape!
Web APIs - MobileTech conference 2015 - @casarock
Arms race of features
Everyone invented new and "better" features!
support other features? Hell, NO!
Web APIs - MobileTech conference 2015 - @casarock
And this happened...
Web APIs - MobileTech conference 2015 - @casarock
Standards? Which standards?
"We know what you want!"
W3C - ignored...
Web APIs - MobileTech conference 2015 - @casarock
And Web Developers?
Implemented pretty good browser detection
Web APIs - MobileTech conference 2015 - @casarock
And Browser vendors?
Browser Vendors wanted to be "supported"
... and this happened:
Web APIs - MobileTech conference 2015 - @casarock
Faking User Agents
Mosaic/0.9 // grandmother of all!
Mozilla/2.02 [fr] (WinNT; I) // Netscapes first!
Mozilla/4.0 (compatible; MSIE 4.0; Windows 98) // IE4!
Funny? There are more…
Web APIs - MobileTech conference 2015 - @casarock
Faking User Agents - part 2
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11 // Firefox!
Mozilla/5.0 (compatible; Konqueror/Version; OS-or-CPU) KHTML/KHTMLVersion (like Gecko) // Konqueror
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/124 (KHTML, like Gecko) Safari/125.1 // Safari!
And chrome?
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko)
Chrome/0.2.149.29 Safari/525.13
But Opera?
Opera/8.0 (Windows NT 5.1; U; en)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.50
Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95
Safari/537.36 OPR/15.0.1147.153
Web APIs - MobileTech conference 2015 - @casarock
Faking User Agents - the End
And Spartan?
Mozilla/5.0 (Windows NT 6.4; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/36.0.1985.143 Safari/537.36 Edge/12.0
Web APIs - MobileTech conference 2015 - @casarock
At the end
Everything is a Mozilla...
Web APIs - MobileTech conference 2015 - @casarock
and Internet Explorer won the
first browser war
Development stopped for 5 years!
"Optimized for IE 6!"
Standards? IE was the standard!
Web APIs - MobileTech conference 2015 - @casarock
The second browser war...
The rise of the others
Web APIs - MobileTech conference 2015 - @casarock
The others
Other browser vendors raised
They keep standards in mind and develop
them together
Web APIs - MobileTech conference 2015 - @casarock
Standards, everywhere standards!
There is not only one "tool" for the internet
Web APIs - MobileTech conference 2015 - @casarock
New Feature: Implemented a
STANDARD!
Web APIs - MobileTech conference 2015 - @casarock
Competition?
Still exisits, but:
Performance!
Security!
Release cycles!
Web APIs - MobileTech conference 2015 - @casarock
Unique characteristic?
Add ons, technical features, developer tools etc..
Developers are being targeted.
Web APIs - MobileTech conference 2015 - @casarock
“Make the Internet a better place”
Web APIs - MobileTech conference 2015 - @casarock
The web Wins!
Web APIs - MobileTech conference 2015 - @casarock
The "mobile" Web
Web APIs - MobileTech conference 2015 - @casarock
The "real" mobile Web
Web APIs - MobileTech conference 2015 - @casarock
Everything changes...
Web developers want ...
... access to hardware features
... access Calendar, Addressbook
etc.
We got it!
But: Lessons learned from the past
Web APIs - MobileTech conference 2015 - @casarock
Standards!
Web APIs - MobileTech conference 2015 - @casarock
New technologies need new APIs
Vendors are working together
Service Workers (Google&Mozilla)
Web Components (Google&Mozilla)
WebGL etc.
Web APIs - MobileTech conference 2015 - @casarock
“The web is everywhere”
Web APIs - MobileTech conference 2015 - @casarock
“The web in your hands”
Web APIs - MobileTech conference 2015 - @casarock
Mobiles need new APIs
iPhone 2007: No SDK, just HTML5!
A smartphone without a browser? Unbelieveable!
Smartphones pushed HTML5
Web APIs - MobileTech conference 2015 - @casarock
HTML5 based OS
Web APIs - MobileTech conference 2015 - @casarock
HTML5 OS needs new APIs
Firefox OS is open source and with standards in mind
Mozilla introduced new APIs for mobile devices
Consistent use of APIs
Web APIs - MobileTech conference 2015 - @casarock
APIs submitted to W3C
Adopted by other mobile browsers ...
... and desktop browsers
more features, more fun!
Web APIs - MobileTech conference 2015 - @casarock
Web APIs
tell me more
Web APIs - MobileTech conference 2015 - @casarock
Definition
“WebAPI is a term used to refer to a suite of device compatibility and
access APIs that allow Web apps and content to access device
hardware (such as battery status or the device vibration hardware), as
well as access to data stored on the device (such as the calendar or
contacts list).
By adding these APIs, we hope to expand what the Web can do today
and only proprietary platforms were able to do in the past.”
Web APIs - MobileTech conference 2015 - @casarock
Disclaimer
Some WebAPIs are not (yet) a standard
I've marked them with a *
Web APIs - MobileTech conference 2015 - @casarock
Categories
Web APIs could be categorized
Communication
Datamanagement
Hardware access
"other"
Web APIs - MobileTech conference 2015 - @casarock
Communication
Network Information API
Bluetooth*, Mobile Connection API*,Network Stats API*, TCP Socket API*, Telephony*,
WebSMS*,
Web APIs - MobileTech conference 2015 - @casarock
Datamanagement
IndexedDB, Contacts API
FileHandle API*, Device Storage API*,
Web APIs - MobileTech conference 2015 - @casarock
Hardware access
Light events, Battery status, Geolocation, Pointer Lock,
Proximity, Device orientation, Screen orientation, Vibration API
WebFM API*, Camera API*, Power Management API*
Web APIs - MobileTech conference 2015 - @casarock
"Other"
Alarm API, Push API, Web Notifications, Service Worker
Apps API*, Web Activities*, WebPayment API*, Browser API*, Permissions API*, Time/
Clock API*
Web APIs - MobileTech conference 2015 - @casarock
Examples?
Web APIs - MobileTech conference 2015 - @casarock
Network Connection
var connection = navigator.connection ||
navigator.mozConnection ||
navigator.webkitConnection;
var type = connection.type;
function updateConnectionStatus() {
console.log("Connection type is change from " + type + " to " + connection.type);
type = connection.type;
}
connection.addEventListener('typechange', updateConnectionStatus);
Information about the system's connection
Firefox 12+, Firefox Mobile, Firefox OS, Android 2.2+
Web APIs - MobileTech conference 2015 - @casarock
BBC News
Network Information API
Warns when cellular connection detected
and video should be played
Web APIs - MobileTech conference 2015 - @casarock
Firefox Marketplace
Network Information API
Paying via carrier billing - Cellular detected
Web APIs - MobileTech conference 2015 - @casarock
Firefox Marketplace
Network Information API
When WIFI is detected
Confirmation code via SMS
Web APIs - MobileTech conference 2015 - @casarock
Notification
// At first, let's check if we have permission for notification
// If not, let's ask for it
if (Notification && Notification.permission !== "granted") {
Notification.requestPermission(function (status) {
if (Notification.permission !== status) {
Notification.permission = status;
}
});
}
if (Notification && Notification.permission === "granted") {
var n = new Notification("Hi!");
}
Desktop: Chrome 5+, Firefox 4+, Opera 25, Safari 6+
Mobile: Firefox Mobile 4+, Firefox OS
Web APIs - MobileTech conference 2015 - @casarock
Google KEEP
Notifications
Web APIs - MobileTech conference 2015 - @casarock
Light Events
window.ondevicelight = function(event) {
// Read out the lux value
console.log(event.value);
};
Get current ambient light intensity
Desktop: Firefox 22+
Mobile: Firefox Mobile
Web APIs - MobileTech conference 2015 - @casarock
Battery Status (old)
var battery = navigator.battery ||
navigator.mozBattery ||
navigator.webkitBattery,
info = {
charging: battery.charging,
chargingTime: parseInt(battery.chargingTime / 60, 10),
dischargingTime: parseInt(battery.dischargingTime / 60, 10),
level: Math.round(battery.level * 1 00)
};
function updateBatteryStatus() {
batterylevel.innerHTML = battery.level * 100 + " %";
batterystatus.innerHTML = battery.charging ? "" : "not";
}
battery.addEventListener("chargingchange", updateBatteryStatus);
battery.addEventListener("levelchange", updateBatteryStatus);
Information about the system's battery charge level and lets you be
notified by events that are sent when the battery level changes
Desktop: Firefox 10+
Mobile: Firefox Mobile 10+
Web APIs - MobileTech conference 2015 - @casarock
Battery Status (NEW)
function updateBatteryStatus(battery) {
// do stuff
}
navigator.getBattery().then(function(battery) {
// Update the battery status initially when the promise resolves ...
updateBatteryStatus(battery);
// .. and for any subsequent updates.
battery.onchargingchange = function () {
updateBatteryStatus(battery);
};
battery.onlevelchange = function () {
updateBatteryStatus(battery);
};
battery.ondischargingtimechange = function () {
updateBatteryStatus(battery);
};
});
Chrome at least
Web APIs - MobileTech conference 2015 - @casarock
Detecting device orientation
window.addEventListener("deviceorientation", handleOrientation, true);
function handleOrientation(event) {
var alpha = event.alpha; // Z-Axis
var beta = event.beta; // Y-Axis
var gamma = event.gamma; // X-Axis
// Do stuff with the new orientation data
}
Detection orientation and motion events
Desktop: Chrome 7+, 3.6+
Mobile: Android 3.0, Firefox Mobile 3.6+, Safari Mobile 4.2+
Web APIs - MobileTech conference 2015 - @casarock
Detecting device orientation
window.addEventListener("devicemotion", handleMotion, true);
function handleMotion(event) {
var x = event.accelerationIncludingGravity.x;
var y = event.accelerationIncludingGravity.y;
var z = event.accelerationIncludingGravity.z;
var r = event.rotationRate;
}
Information about the speed of changes for the device's position
and orientation.
Desktop: Chrome 7+, 3.6+
Mobile: Android 3.0, Firefox Mobile 3.6+, Safari Mobile 4.2+
Web APIs - MobileTech conference 2015 - @casarock
Vibration API
var pattern = [200, 100, 200, 200, 100],
goodVibration = navigator.vibrate(pattern);
Rumble in your pocket!
Mobile: Android, Firefox Mobile 11+
Web APIs - MobileTech conference 2015 - @casarock
Screen orientation
screen.addEventListener("orientationchange", function () {
console.log("The orientation of the screen is: " + screen.orientation);
});
Listening orientation change
Support is complex: This API is experimental and currently available on Firefox OS and
Firefox for Android with a moz prefix, and for Internet Explorer on Windows 8.1 and above
with a ms prefix.
screen.lockOrientation('landscape');
Preventing orientation change
Web APIs - MobileTech conference 2015 - @casarock
Page visibility
The Page Visibility API lets you know when a webpage is visible or
in focus
Desktop: Chrome, Firefox 30+, Safari 7+, Opera 24+, IE10+
Mobile: Chrome Android, Android 4.4+, Firefox Mobile, Firefox OS
if (document.hidden) {
// stop video etc.
}
document.addEventListener("visibilitychange", handleVisibilityChange, false);
function handleVisibilityChange() {
if (document.hidden) {
// stop something. e.g. stop a video, audio etc...
} else {
// do something else ;) play video, audio... you got it?
}
}
Web APIs - MobileTech conference 2015 - @casarock
Service Workers
navigator.serviceWorker.register('/myworker.js').then(function(reg) {
console.log('Registered', reg);
}, function(err) {
console.log('Error', err);
});
ServiceWorker is a background worker. It is complex. This is a
simplified explanation!
Desktop:
Mobile:
Web APIs - MobileTech conference 2015 - @casarock
Service Workers cont.
console.log("started");
self.addEventListener('install', function(event) {
console.log("installed");
});
self.addEventListener('activate', function(event) {
console.log("activated");
});
self.addEventListener('fetch', function(event) {
console.log("fetch");
event.respondWith(new Response("My response!!"));
});
myworker.js
Web APIs - MobileTech conference 2015 - @casarock
Service Workers caching
importScripts('serviceworker-cache-polyfill.js');
self.addEventListener('install', function(event) {
event.waitUntil(
caches.open('name-my-cache-v1').then(function(cache) {
return cache.addAll([
'/',
'/styles/all.css',
'/imgs/myimg.png',
'/scripts/awesome.js'
]);
})
)
});
self.addEventListener('fetch', function(event) {
event.respondWith(
caches.match(event.request).then(function(response) {
return response || fetch(event.request);
})
);
});
cache some stuff.
Web APIs - MobileTech conference 2015 - @casarock
Google IO 2015
Service Worker
Web APIs - MobileTech conference 2015 - @casarock
OK
Some live examples...
Web APIs - MobileTech conference 2015 - @casarock
Ambient light
Ambient Light Demo
Web APIs - MobileTech conference 2015 - @casarock
Notifications
Notifications Demo
Web APIs - MobileTech conference 2015 - @casarock
Battery
Battery API Demo
Web APIs - MobileTech conference 2015 - @casarock
And of course: Have FUN!
Fun, fun, fun
https://www.youtube.com/watch?
v=kqvBvIV8mCE
Web APIs - MobileTech conference 2015 - @casarock
Service Worker
Web APIs - MobileTech conference 2015 - @casarock
Conclusion
Standards are cool!
WebAPIs allow us to build cooler web apps
WebAPIs are not a "mobile"-thingy!
The "Web" becomes (more) "native"
Thank you!
@casarock
Slides & Examples: casarock.github.io
Carsten Sandtner

More Related Content

What's hot

API Marketing: First Comes Usability, Then Discoverability
API Marketing: First Comes Usability, Then DiscoverabilityAPI Marketing: First Comes Usability, Then Discoverability
API Marketing: First Comes Usability, Then Discoverability
Bill Doerrfeld
 
apiDoc Introduction
apiDoc IntroductionapiDoc Introduction
apiDoc Introduction
Peter Rottmann
 
Building Self Documenting REST APIs
Building Self Documenting REST APIsBuilding Self Documenting REST APIs
Building Self Documenting REST APIs
Yan Pritzker
 
WSO2 API Manager : Going beyond the just API Management
WSO2 API Manager : Going beyond the just API ManagementWSO2 API Manager : Going beyond the just API Management
WSO2 API Manager : Going beyond the just API Management
Edgar Silva
 
Workshop: API Management
Workshop: API ManagementWorkshop: API Management
Workshop: API Management
WSO2
 
The Architecture of an API Platform
The Architecture of an API PlatformThe Architecture of an API Platform
The Architecture of an API Platform
Johannes Ridderstedt
 
API Introduction - API Management Workshop Munich from Ronnie Mitra
API Introduction - API Management Workshop Munich from Ronnie MitraAPI Introduction - API Management Workshop Munich from Ronnie Mitra
API Introduction - API Management Workshop Munich from Ronnie Mitra
CA API Management
 
API360 – A How-To Guide for Enterprise APIs - Learn how to position your ente...
API360 – A How-To Guide for Enterprise APIs - Learn how to position your ente...API360 – A How-To Guide for Enterprise APIs - Learn how to position your ente...
API360 – A How-To Guide for Enterprise APIs - Learn how to position your ente...
CA API Management
 
WSO2 Product Release Webinar - WSO2 App Factory 2.1
WSO2 Product Release Webinar - WSO2 App Factory 2.1WSO2 Product Release Webinar - WSO2 App Factory 2.1
WSO2 Product Release Webinar - WSO2 App Factory 2.1
WSO2
 
GlueCon 2019: Beyond REST - Moving to Event-Based APIs and Streaming
GlueCon 2019: Beyond REST - Moving to Event-Based APIs and StreamingGlueCon 2019: Beyond REST - Moving to Event-Based APIs and Streaming
GlueCon 2019: Beyond REST - Moving to Event-Based APIs and Streaming
LaunchAny
 
A Self-Service API Portal for Developers
A Self-Service API Portal for DevelopersA Self-Service API Portal for Developers
A Self-Service API Portal for Developers
CA Technologies
 
Transforming Your Business Through APIs
Transforming Your Business Through APIsTransforming Your Business Through APIs
Transforming Your Business Through APIs
Apigee | Google Cloud
 
API Management - Why it matters!
API Management - Why it matters!API Management - Why it matters!
API Management - Why it matters!
Sven Bernhardt
 
Open API and API Management - Introduction and Comparison of Products: TIBCO ...
Open API and API Management - Introduction and Comparison of Products: TIBCO ...Open API and API Management - Introduction and Comparison of Products: TIBCO ...
Open API and API Management - Introduction and Comparison of Products: TIBCO ...
Kai Wähner
 
apidays LIVE Australia 2021 - API Horror Stories from an Unnamed Coworking Co...
apidays LIVE Australia 2021 - API Horror Stories from an Unnamed Coworking Co...apidays LIVE Australia 2021 - API Horror Stories from an Unnamed Coworking Co...
apidays LIVE Australia 2021 - API Horror Stories from an Unnamed Coworking Co...
apidays
 
Create and Manage APIs with API Connect, Swagger and Bluemix
Create and Manage APIs with API Connect, Swagger and BluemixCreate and Manage APIs with API Connect, Swagger and Bluemix
Create and Manage APIs with API Connect, Swagger and Bluemix
Dev_Events
 
Takeaways from API Security Breaches Webinar
Takeaways from API Security Breaches WebinarTakeaways from API Security Breaches Webinar
Takeaways from API Security Breaches Webinar
CA API Management
 
Continuous API Strategies for Integrated Platforms
 Continuous API Strategies for Integrated Platforms Continuous API Strategies for Integrated Platforms
Continuous API Strategies for Integrated Platforms
Bill Doerrfeld
 
Adapt or Die Sydney - API Security
Adapt or Die Sydney - API SecurityAdapt or Die Sydney - API Security
Adapt or Die Sydney - API Security
Apigee | Google Cloud
 
Api for dummies
Api for dummies  Api for dummies
Api for dummies
Patrick Bouillaud
 

What's hot (20)

API Marketing: First Comes Usability, Then Discoverability
API Marketing: First Comes Usability, Then DiscoverabilityAPI Marketing: First Comes Usability, Then Discoverability
API Marketing: First Comes Usability, Then Discoverability
 
apiDoc Introduction
apiDoc IntroductionapiDoc Introduction
apiDoc Introduction
 
Building Self Documenting REST APIs
Building Self Documenting REST APIsBuilding Self Documenting REST APIs
Building Self Documenting REST APIs
 
WSO2 API Manager : Going beyond the just API Management
WSO2 API Manager : Going beyond the just API ManagementWSO2 API Manager : Going beyond the just API Management
WSO2 API Manager : Going beyond the just API Management
 
Workshop: API Management
Workshop: API ManagementWorkshop: API Management
Workshop: API Management
 
The Architecture of an API Platform
The Architecture of an API PlatformThe Architecture of an API Platform
The Architecture of an API Platform
 
API Introduction - API Management Workshop Munich from Ronnie Mitra
API Introduction - API Management Workshop Munich from Ronnie MitraAPI Introduction - API Management Workshop Munich from Ronnie Mitra
API Introduction - API Management Workshop Munich from Ronnie Mitra
 
API360 – A How-To Guide for Enterprise APIs - Learn how to position your ente...
API360 – A How-To Guide for Enterprise APIs - Learn how to position your ente...API360 – A How-To Guide for Enterprise APIs - Learn how to position your ente...
API360 – A How-To Guide for Enterprise APIs - Learn how to position your ente...
 
WSO2 Product Release Webinar - WSO2 App Factory 2.1
WSO2 Product Release Webinar - WSO2 App Factory 2.1WSO2 Product Release Webinar - WSO2 App Factory 2.1
WSO2 Product Release Webinar - WSO2 App Factory 2.1
 
GlueCon 2019: Beyond REST - Moving to Event-Based APIs and Streaming
GlueCon 2019: Beyond REST - Moving to Event-Based APIs and StreamingGlueCon 2019: Beyond REST - Moving to Event-Based APIs and Streaming
GlueCon 2019: Beyond REST - Moving to Event-Based APIs and Streaming
 
A Self-Service API Portal for Developers
A Self-Service API Portal for DevelopersA Self-Service API Portal for Developers
A Self-Service API Portal for Developers
 
Transforming Your Business Through APIs
Transforming Your Business Through APIsTransforming Your Business Through APIs
Transforming Your Business Through APIs
 
API Management - Why it matters!
API Management - Why it matters!API Management - Why it matters!
API Management - Why it matters!
 
Open API and API Management - Introduction and Comparison of Products: TIBCO ...
Open API and API Management - Introduction and Comparison of Products: TIBCO ...Open API and API Management - Introduction and Comparison of Products: TIBCO ...
Open API and API Management - Introduction and Comparison of Products: TIBCO ...
 
apidays LIVE Australia 2021 - API Horror Stories from an Unnamed Coworking Co...
apidays LIVE Australia 2021 - API Horror Stories from an Unnamed Coworking Co...apidays LIVE Australia 2021 - API Horror Stories from an Unnamed Coworking Co...
apidays LIVE Australia 2021 - API Horror Stories from an Unnamed Coworking Co...
 
Create and Manage APIs with API Connect, Swagger and Bluemix
Create and Manage APIs with API Connect, Swagger and BluemixCreate and Manage APIs with API Connect, Swagger and Bluemix
Create and Manage APIs with API Connect, Swagger and Bluemix
 
Takeaways from API Security Breaches Webinar
Takeaways from API Security Breaches WebinarTakeaways from API Security Breaches Webinar
Takeaways from API Security Breaches Webinar
 
Continuous API Strategies for Integrated Platforms
 Continuous API Strategies for Integrated Platforms Continuous API Strategies for Integrated Platforms
Continuous API Strategies for Integrated Platforms
 
Adapt or Die Sydney - API Security
Adapt or Die Sydney - API SecurityAdapt or Die Sydney - API Security
Adapt or Die Sydney - API Security
 
Api for dummies
Api for dummies  Api for dummies
Api for dummies
 

Similar to Web APIs - Mobiletech Conference 2015

Firefox OS - A (mobile) Web Developers dream - DWX14
Firefox OS - A (mobile) Web Developers dream - DWX14Firefox OS - A (mobile) Web Developers dream - DWX14
Firefox OS - A (mobile) Web Developers dream - DWX14
Carsten Sandtner
 
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignalBuilding modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
Alessandro Pilotti
 
ITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignal
ITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignalITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignal
ITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignal
ITCamp
 
Web APIs – expand what the Web can do
Web APIs – expand what the Web can doWeb APIs – expand what the Web can do
Web APIs – expand what the Web can do
Carsten Sandtner
 
Wading through the mobile WebRTC developer gauntlet (IIT RTC Conference sessi...
Wading through the mobile WebRTC developer gauntlet (IIT RTC Conference sessi...Wading through the mobile WebRTC developer gauntlet (IIT RTC Conference sessi...
Wading through the mobile WebRTC developer gauntlet (IIT RTC Conference sessi...
Brian Pulito
 
Fixing the mobile web - Internet World Romania
Fixing the mobile web - Internet World RomaniaFixing the mobile web - Internet World Romania
Fixing the mobile web - Internet World Romania
Christian Heilmann
 
Keypoints html5
Keypoints html5Keypoints html5
Keypoints html5
dynamis
 
Firefox OS, Web APIs & Hybrid Application
Firefox OS, Web APIs & Hybrid ApplicationFirefox OS, Web APIs & Hybrid Application
Firefox OS, Web APIs & Hybrid Application
Rizky Ariestiyansyah
 
Change by HTML5
Change by HTML5Change by HTML5
Change by HTML5
dynamis
 
Serverless Security: A How-to Guide @ SnowFROC 2019
Serverless Security: A How-to Guide @ SnowFROC 2019Serverless Security: A How-to Guide @ SnowFROC 2019
Serverless Security: A How-to Guide @ SnowFROC 2019
James Wickett
 
Integrate any Angular Project into WebSphere Portal
Integrate any Angular Project into WebSphere PortalIntegrate any Angular Project into WebSphere Portal
Integrate any Angular Project into WebSphere Portal
Himanshu Mendiratta
 
SAPTechED 2015 UX114 -Building custom SAP Fiori Apps Using SAP Web IDE
SAPTechED 2015 UX114 -Building custom SAP Fiori Apps Using SAP Web IDESAPTechED 2015 UX114 -Building custom SAP Fiori Apps Using SAP Web IDE
SAPTechED 2015 UX114 -Building custom SAP Fiori Apps Using SAP Web IDE
Markus Van Kempen
 
FEDM Meetup: Introducing Mojito
FEDM Meetup: Introducing MojitoFEDM Meetup: Introducing Mojito
FEDM Meetup: Introducing Mojito
Caridy Patino
 
【BS1】What’s new in visual studio 2022 and c# 10
【BS1】What’s new in visual studio 2022 and c# 10【BS1】What’s new in visual studio 2022 and c# 10
【BS1】What’s new in visual studio 2022 and c# 10
日本マイクロソフト株式会社
 
Samsung
SamsungSamsung
Alex lakatos state of mobile web
Alex lakatos   state of mobile webAlex lakatos   state of mobile web
Alex lakatos state of mobile web
Codecamp Romania
 
Testing IoT Apps with the Cloud
Testing IoT Apps with the CloudTesting IoT Apps with the Cloud
Testing IoT Apps with the Cloud
Josiah Renaudin
 
Firefox OS - HTML5 for a truly world-wide-web
Firefox OS - HTML5 for a truly world-wide-webFirefox OS - HTML5 for a truly world-wide-web
Firefox OS - HTML5 for a truly world-wide-web
Christian Heilmann
 
WSO2 Product Release webinar - WSO2 BAM 2.5
WSO2 Product Release webinar - WSO2 BAM 2.5WSO2 Product Release webinar - WSO2 BAM 2.5
WSO2 Product Release webinar - WSO2 BAM 2.5
WSO2
 
Ugly truths about html5 moosecon - robert virkus - 2013-03-07
Ugly truths about html5   moosecon - robert virkus - 2013-03-07Ugly truths about html5   moosecon - robert virkus - 2013-03-07
Ugly truths about html5 moosecon - robert virkus - 2013-03-07
Enough Software
 

Similar to Web APIs - Mobiletech Conference 2015 (20)

Firefox OS - A (mobile) Web Developers dream - DWX14
Firefox OS - A (mobile) Web Developers dream - DWX14Firefox OS - A (mobile) Web Developers dream - DWX14
Firefox OS - A (mobile) Web Developers dream - DWX14
 
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignalBuilding modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
 
ITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignal
ITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignalITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignal
ITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignal
 
Web APIs – expand what the Web can do
Web APIs – expand what the Web can doWeb APIs – expand what the Web can do
Web APIs – expand what the Web can do
 
Wading through the mobile WebRTC developer gauntlet (IIT RTC Conference sessi...
Wading through the mobile WebRTC developer gauntlet (IIT RTC Conference sessi...Wading through the mobile WebRTC developer gauntlet (IIT RTC Conference sessi...
Wading through the mobile WebRTC developer gauntlet (IIT RTC Conference sessi...
 
Fixing the mobile web - Internet World Romania
Fixing the mobile web - Internet World RomaniaFixing the mobile web - Internet World Romania
Fixing the mobile web - Internet World Romania
 
Keypoints html5
Keypoints html5Keypoints html5
Keypoints html5
 
Firefox OS, Web APIs & Hybrid Application
Firefox OS, Web APIs & Hybrid ApplicationFirefox OS, Web APIs & Hybrid Application
Firefox OS, Web APIs & Hybrid Application
 
Change by HTML5
Change by HTML5Change by HTML5
Change by HTML5
 
Serverless Security: A How-to Guide @ SnowFROC 2019
Serverless Security: A How-to Guide @ SnowFROC 2019Serverless Security: A How-to Guide @ SnowFROC 2019
Serverless Security: A How-to Guide @ SnowFROC 2019
 
Integrate any Angular Project into WebSphere Portal
Integrate any Angular Project into WebSphere PortalIntegrate any Angular Project into WebSphere Portal
Integrate any Angular Project into WebSphere Portal
 
SAPTechED 2015 UX114 -Building custom SAP Fiori Apps Using SAP Web IDE
SAPTechED 2015 UX114 -Building custom SAP Fiori Apps Using SAP Web IDESAPTechED 2015 UX114 -Building custom SAP Fiori Apps Using SAP Web IDE
SAPTechED 2015 UX114 -Building custom SAP Fiori Apps Using SAP Web IDE
 
FEDM Meetup: Introducing Mojito
FEDM Meetup: Introducing MojitoFEDM Meetup: Introducing Mojito
FEDM Meetup: Introducing Mojito
 
【BS1】What’s new in visual studio 2022 and c# 10
【BS1】What’s new in visual studio 2022 and c# 10【BS1】What’s new in visual studio 2022 and c# 10
【BS1】What’s new in visual studio 2022 and c# 10
 
Samsung
SamsungSamsung
Samsung
 
Alex lakatos state of mobile web
Alex lakatos   state of mobile webAlex lakatos   state of mobile web
Alex lakatos state of mobile web
 
Testing IoT Apps with the Cloud
Testing IoT Apps with the CloudTesting IoT Apps with the Cloud
Testing IoT Apps with the Cloud
 
Firefox OS - HTML5 for a truly world-wide-web
Firefox OS - HTML5 for a truly world-wide-webFirefox OS - HTML5 for a truly world-wide-web
Firefox OS - HTML5 for a truly world-wide-web
 
WSO2 Product Release webinar - WSO2 BAM 2.5
WSO2 Product Release webinar - WSO2 BAM 2.5WSO2 Product Release webinar - WSO2 BAM 2.5
WSO2 Product Release webinar - WSO2 BAM 2.5
 
Ugly truths about html5 moosecon - robert virkus - 2013-03-07
Ugly truths about html5   moosecon - robert virkus - 2013-03-07Ugly truths about html5   moosecon - robert virkus - 2013-03-07
Ugly truths about html5 moosecon - robert virkus - 2013-03-07
 

More from Carsten Sandtner

State of Web APIs 2017
State of Web APIs 2017State of Web APIs 2017
State of Web APIs 2017
Carsten Sandtner
 
Headless in the CMS
Headless in the CMSHeadless in the CMS
Headless in the CMS
Carsten Sandtner
 
Always on! Or not?
Always on! Or not?Always on! Or not?
Always on! Or not?
Carsten Sandtner
 
Night Watch with QA
Night Watch with QANight Watch with QA
Night Watch with QA
Carsten Sandtner
 
Always on! ... or not?
Always on! ... or not?Always on! ... or not?
Always on! ... or not?
Carsten Sandtner
 
WebVR - MobileTechCon Berlin 2016
WebVR - MobileTechCon Berlin 2016WebVR - MobileTechCon Berlin 2016
WebVR - MobileTechCon Berlin 2016
Carsten Sandtner
 
Evolution der Web Entwicklung
Evolution der Web EntwicklungEvolution der Web Entwicklung
Evolution der Web Entwicklung
Carsten Sandtner
 
WebVR - JAX 2016
WebVR -  JAX 2016WebVR -  JAX 2016
WebVR - JAX 2016
Carsten Sandtner
 
HTML5 Games for Web & Mobile
HTML5 Games for Web & MobileHTML5 Games for Web & Mobile
HTML5 Games for Web & Mobile
Carsten Sandtner
 
What is responsive - and do I need it?
What is responsive - and do I need it?What is responsive - and do I need it?
What is responsive - and do I need it?
Carsten Sandtner
 
Firefox OS - A (web) developers dream - muxCamp 2014
Firefox OS - A (web) developers dream - muxCamp 2014Firefox OS - A (web) developers dream - muxCamp 2014
Firefox OS - A (web) developers dream - muxCamp 2014
Carsten Sandtner
 
Mozilla Brick - Frontend Rhein-Main June 2014
Mozilla Brick - Frontend Rhein-Main June 2014Mozilla Brick - Frontend Rhein-Main June 2014
Mozilla Brick - Frontend Rhein-Main June 2014
Carsten Sandtner
 
Traceur - Javascript.next - Now! RheinmainJS April 14th
Traceur - Javascript.next - Now! RheinmainJS April 14thTraceur - Javascript.next - Now! RheinmainJS April 14th
Traceur - Javascript.next - Now! RheinmainJS April 14th
Carsten Sandtner
 

More from Carsten Sandtner (13)

State of Web APIs 2017
State of Web APIs 2017State of Web APIs 2017
State of Web APIs 2017
 
Headless in the CMS
Headless in the CMSHeadless in the CMS
Headless in the CMS
 
Always on! Or not?
Always on! Or not?Always on! Or not?
Always on! Or not?
 
Night Watch with QA
Night Watch with QANight Watch with QA
Night Watch with QA
 
Always on! ... or not?
Always on! ... or not?Always on! ... or not?
Always on! ... or not?
 
WebVR - MobileTechCon Berlin 2016
WebVR - MobileTechCon Berlin 2016WebVR - MobileTechCon Berlin 2016
WebVR - MobileTechCon Berlin 2016
 
Evolution der Web Entwicklung
Evolution der Web EntwicklungEvolution der Web Entwicklung
Evolution der Web Entwicklung
 
WebVR - JAX 2016
WebVR -  JAX 2016WebVR -  JAX 2016
WebVR - JAX 2016
 
HTML5 Games for Web & Mobile
HTML5 Games for Web & MobileHTML5 Games for Web & Mobile
HTML5 Games for Web & Mobile
 
What is responsive - and do I need it?
What is responsive - and do I need it?What is responsive - and do I need it?
What is responsive - and do I need it?
 
Firefox OS - A (web) developers dream - muxCamp 2014
Firefox OS - A (web) developers dream - muxCamp 2014Firefox OS - A (web) developers dream - muxCamp 2014
Firefox OS - A (web) developers dream - muxCamp 2014
 
Mozilla Brick - Frontend Rhein-Main June 2014
Mozilla Brick - Frontend Rhein-Main June 2014Mozilla Brick - Frontend Rhein-Main June 2014
Mozilla Brick - Frontend Rhein-Main June 2014
 
Traceur - Javascript.next - Now! RheinmainJS April 14th
Traceur - Javascript.next - Now! RheinmainJS April 14thTraceur - Javascript.next - Now! RheinmainJS April 14th
Traceur - Javascript.next - Now! RheinmainJS April 14th
 

Recently uploaded

APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC
 
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
ysasp1
 
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdfMeet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Florence Consulting
 
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
bseovas
 
[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024
hackersuli
 
制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假
制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假
制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假
ukwwuq
 
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
cuobya
 
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalmanuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
wolfsoftcompanyco
 
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
zyfovom
 
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
ufdana
 
Understanding User Behavior with Google Analytics.pdf
Understanding User Behavior with Google Analytics.pdfUnderstanding User Behavior with Google Analytics.pdf
Understanding User Behavior with Google Analytics.pdf
SEO Article Boost
 
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
xjq03c34
 
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
eutxy
 
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
CIOWomenMagazine
 
Discover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to IndiaDiscover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to India
davidjhones387
 
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
zoowe
 
7 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 20247 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 2024
Danica Gill
 
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
keoku
 
Search Result Showing My Post is Now Buried
Search Result Showing My Post is Now BuriedSearch Result Showing My Post is Now Buried
Search Result Showing My Post is Now Buried
Trish Parr
 
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
cuobya
 

Recently uploaded (20)

APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
 
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
 
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdfMeet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
 
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
 
[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024
 
制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假
制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假
制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假
 
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
 
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalmanuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
 
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
 
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
 
Understanding User Behavior with Google Analytics.pdf
Understanding User Behavior with Google Analytics.pdfUnderstanding User Behavior with Google Analytics.pdf
Understanding User Behavior with Google Analytics.pdf
 
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
 
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
 
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
 
Discover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to IndiaDiscover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to India
 
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
 
7 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 20247 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 2024
 
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
 
Search Result Showing My Post is Now Buried
Search Result Showing My Post is Now BuriedSearch Result Showing My Post is Now Buried
Search Result Showing My Post is Now Buried
 
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
 

Web APIs - Mobiletech Conference 2015

  • 1.
  • 2. The web becomes more „native“ Carsten Sandtner (@casarock) WEBAPIs
  • 3. Hi My name is Head of development //mediaman GMBH Mozilla Rep Javascript enthusiast and web developer since 1998. Carsten Sandtner @casarock
  • 5. Web APIs - MobileTech conference 2015 - @casarock The first browser war... Microsoft vs. Netscape!
  • 6. Web APIs - MobileTech conference 2015 - @casarock Arms race of features Everyone invented new and "better" features! support other features? Hell, NO!
  • 7. Web APIs - MobileTech conference 2015 - @casarock And this happened...
  • 8. Web APIs - MobileTech conference 2015 - @casarock Standards? Which standards? "We know what you want!" W3C - ignored...
  • 9. Web APIs - MobileTech conference 2015 - @casarock And Web Developers? Implemented pretty good browser detection
  • 10. Web APIs - MobileTech conference 2015 - @casarock And Browser vendors? Browser Vendors wanted to be "supported" ... and this happened:
  • 11. Web APIs - MobileTech conference 2015 - @casarock Faking User Agents Mosaic/0.9 // grandmother of all! Mozilla/2.02 [fr] (WinNT; I) // Netscapes first! Mozilla/4.0 (compatible; MSIE 4.0; Windows 98) // IE4! Funny? There are more…
  • 12. Web APIs - MobileTech conference 2015 - @casarock Faking User Agents - part 2 Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11 // Firefox! Mozilla/5.0 (compatible; Konqueror/Version; OS-or-CPU) KHTML/KHTMLVersion (like Gecko) // Konqueror Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/124 (KHTML, like Gecko) Safari/125.1 // Safari! And chrome? Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.29 Safari/525.13 But Opera? Opera/8.0 (Windows NT 5.1; U; en) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.50 Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36 OPR/15.0.1147.153
  • 13. Web APIs - MobileTech conference 2015 - @casarock Faking User Agents - the End And Spartan? Mozilla/5.0 (Windows NT 6.4; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36 Edge/12.0
  • 14. Web APIs - MobileTech conference 2015 - @casarock At the end Everything is a Mozilla...
  • 15. Web APIs - MobileTech conference 2015 - @casarock and Internet Explorer won the first browser war Development stopped for 5 years! "Optimized for IE 6!" Standards? IE was the standard!
  • 16. Web APIs - MobileTech conference 2015 - @casarock The second browser war... The rise of the others
  • 17. Web APIs - MobileTech conference 2015 - @casarock The others Other browser vendors raised They keep standards in mind and develop them together
  • 18. Web APIs - MobileTech conference 2015 - @casarock Standards, everywhere standards! There is not only one "tool" for the internet
  • 19. Web APIs - MobileTech conference 2015 - @casarock New Feature: Implemented a STANDARD!
  • 20. Web APIs - MobileTech conference 2015 - @casarock Competition? Still exisits, but: Performance! Security! Release cycles!
  • 21. Web APIs - MobileTech conference 2015 - @casarock Unique characteristic? Add ons, technical features, developer tools etc.. Developers are being targeted.
  • 22. Web APIs - MobileTech conference 2015 - @casarock “Make the Internet a better place”
  • 23. Web APIs - MobileTech conference 2015 - @casarock The web Wins!
  • 24. Web APIs - MobileTech conference 2015 - @casarock The "mobile" Web
  • 25. Web APIs - MobileTech conference 2015 - @casarock The "real" mobile Web
  • 26. Web APIs - MobileTech conference 2015 - @casarock Everything changes... Web developers want ... ... access to hardware features ... access Calendar, Addressbook etc. We got it! But: Lessons learned from the past
  • 27. Web APIs - MobileTech conference 2015 - @casarock Standards!
  • 28. Web APIs - MobileTech conference 2015 - @casarock New technologies need new APIs Vendors are working together Service Workers (Google&Mozilla) Web Components (Google&Mozilla) WebGL etc.
  • 29. Web APIs - MobileTech conference 2015 - @casarock “The web is everywhere”
  • 30. Web APIs - MobileTech conference 2015 - @casarock “The web in your hands”
  • 31. Web APIs - MobileTech conference 2015 - @casarock Mobiles need new APIs iPhone 2007: No SDK, just HTML5! A smartphone without a browser? Unbelieveable! Smartphones pushed HTML5
  • 32. Web APIs - MobileTech conference 2015 - @casarock HTML5 based OS
  • 33. Web APIs - MobileTech conference 2015 - @casarock HTML5 OS needs new APIs Firefox OS is open source and with standards in mind Mozilla introduced new APIs for mobile devices Consistent use of APIs
  • 34. Web APIs - MobileTech conference 2015 - @casarock APIs submitted to W3C Adopted by other mobile browsers ... ... and desktop browsers more features, more fun!
  • 35. Web APIs - MobileTech conference 2015 - @casarock Web APIs tell me more
  • 36. Web APIs - MobileTech conference 2015 - @casarock Definition “WebAPI is a term used to refer to a suite of device compatibility and access APIs that allow Web apps and content to access device hardware (such as battery status or the device vibration hardware), as well as access to data stored on the device (such as the calendar or contacts list). By adding these APIs, we hope to expand what the Web can do today and only proprietary platforms were able to do in the past.”
  • 37. Web APIs - MobileTech conference 2015 - @casarock Disclaimer Some WebAPIs are not (yet) a standard I've marked them with a *
  • 38. Web APIs - MobileTech conference 2015 - @casarock Categories Web APIs could be categorized Communication Datamanagement Hardware access "other"
  • 39. Web APIs - MobileTech conference 2015 - @casarock Communication Network Information API Bluetooth*, Mobile Connection API*,Network Stats API*, TCP Socket API*, Telephony*, WebSMS*,
  • 40. Web APIs - MobileTech conference 2015 - @casarock Datamanagement IndexedDB, Contacts API FileHandle API*, Device Storage API*,
  • 41. Web APIs - MobileTech conference 2015 - @casarock Hardware access Light events, Battery status, Geolocation, Pointer Lock, Proximity, Device orientation, Screen orientation, Vibration API WebFM API*, Camera API*, Power Management API*
  • 42. Web APIs - MobileTech conference 2015 - @casarock "Other" Alarm API, Push API, Web Notifications, Service Worker Apps API*, Web Activities*, WebPayment API*, Browser API*, Permissions API*, Time/ Clock API*
  • 43. Web APIs - MobileTech conference 2015 - @casarock Examples?
  • 44. Web APIs - MobileTech conference 2015 - @casarock Network Connection var connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection; var type = connection.type; function updateConnectionStatus() { console.log("Connection type is change from " + type + " to " + connection.type); type = connection.type; } connection.addEventListener('typechange', updateConnectionStatus); Information about the system's connection Firefox 12+, Firefox Mobile, Firefox OS, Android 2.2+
  • 45. Web APIs - MobileTech conference 2015 - @casarock BBC News Network Information API Warns when cellular connection detected and video should be played
  • 46. Web APIs - MobileTech conference 2015 - @casarock Firefox Marketplace Network Information API Paying via carrier billing - Cellular detected
  • 47. Web APIs - MobileTech conference 2015 - @casarock Firefox Marketplace Network Information API When WIFI is detected Confirmation code via SMS
  • 48. Web APIs - MobileTech conference 2015 - @casarock Notification // At first, let's check if we have permission for notification // If not, let's ask for it if (Notification && Notification.permission !== "granted") { Notification.requestPermission(function (status) { if (Notification.permission !== status) { Notification.permission = status; } }); } if (Notification && Notification.permission === "granted") { var n = new Notification("Hi!"); } Desktop: Chrome 5+, Firefox 4+, Opera 25, Safari 6+ Mobile: Firefox Mobile 4+, Firefox OS
  • 49. Web APIs - MobileTech conference 2015 - @casarock Google KEEP Notifications
  • 50. Web APIs - MobileTech conference 2015 - @casarock Light Events window.ondevicelight = function(event) { // Read out the lux value console.log(event.value); }; Get current ambient light intensity Desktop: Firefox 22+ Mobile: Firefox Mobile
  • 51. Web APIs - MobileTech conference 2015 - @casarock Battery Status (old) var battery = navigator.battery || navigator.mozBattery || navigator.webkitBattery, info = { charging: battery.charging, chargingTime: parseInt(battery.chargingTime / 60, 10), dischargingTime: parseInt(battery.dischargingTime / 60, 10), level: Math.round(battery.level * 1 00) }; function updateBatteryStatus() { batterylevel.innerHTML = battery.level * 100 + " %"; batterystatus.innerHTML = battery.charging ? "" : "not"; } battery.addEventListener("chargingchange", updateBatteryStatus); battery.addEventListener("levelchange", updateBatteryStatus); Information about the system's battery charge level and lets you be notified by events that are sent when the battery level changes Desktop: Firefox 10+ Mobile: Firefox Mobile 10+
  • 52. Web APIs - MobileTech conference 2015 - @casarock Battery Status (NEW) function updateBatteryStatus(battery) { // do stuff } navigator.getBattery().then(function(battery) { // Update the battery status initially when the promise resolves ... updateBatteryStatus(battery); // .. and for any subsequent updates. battery.onchargingchange = function () { updateBatteryStatus(battery); }; battery.onlevelchange = function () { updateBatteryStatus(battery); }; battery.ondischargingtimechange = function () { updateBatteryStatus(battery); }; }); Chrome at least
  • 53. Web APIs - MobileTech conference 2015 - @casarock Detecting device orientation window.addEventListener("deviceorientation", handleOrientation, true); function handleOrientation(event) { var alpha = event.alpha; // Z-Axis var beta = event.beta; // Y-Axis var gamma = event.gamma; // X-Axis // Do stuff with the new orientation data } Detection orientation and motion events Desktop: Chrome 7+, 3.6+ Mobile: Android 3.0, Firefox Mobile 3.6+, Safari Mobile 4.2+
  • 54. Web APIs - MobileTech conference 2015 - @casarock Detecting device orientation window.addEventListener("devicemotion", handleMotion, true); function handleMotion(event) { var x = event.accelerationIncludingGravity.x; var y = event.accelerationIncludingGravity.y; var z = event.accelerationIncludingGravity.z; var r = event.rotationRate; } Information about the speed of changes for the device's position and orientation. Desktop: Chrome 7+, 3.6+ Mobile: Android 3.0, Firefox Mobile 3.6+, Safari Mobile 4.2+
  • 55. Web APIs - MobileTech conference 2015 - @casarock Vibration API var pattern = [200, 100, 200, 200, 100], goodVibration = navigator.vibrate(pattern); Rumble in your pocket! Mobile: Android, Firefox Mobile 11+
  • 56. Web APIs - MobileTech conference 2015 - @casarock Screen orientation screen.addEventListener("orientationchange", function () { console.log("The orientation of the screen is: " + screen.orientation); }); Listening orientation change Support is complex: This API is experimental and currently available on Firefox OS and Firefox for Android with a moz prefix, and for Internet Explorer on Windows 8.1 and above with a ms prefix. screen.lockOrientation('landscape'); Preventing orientation change
  • 57. Web APIs - MobileTech conference 2015 - @casarock Page visibility The Page Visibility API lets you know when a webpage is visible or in focus Desktop: Chrome, Firefox 30+, Safari 7+, Opera 24+, IE10+ Mobile: Chrome Android, Android 4.4+, Firefox Mobile, Firefox OS if (document.hidden) { // stop video etc. } document.addEventListener("visibilitychange", handleVisibilityChange, false); function handleVisibilityChange() { if (document.hidden) { // stop something. e.g. stop a video, audio etc... } else { // do something else ;) play video, audio... you got it? } }
  • 58. Web APIs - MobileTech conference 2015 - @casarock Service Workers navigator.serviceWorker.register('/myworker.js').then(function(reg) { console.log('Registered', reg); }, function(err) { console.log('Error', err); }); ServiceWorker is a background worker. It is complex. This is a simplified explanation! Desktop: Mobile:
  • 59. Web APIs - MobileTech conference 2015 - @casarock Service Workers cont. console.log("started"); self.addEventListener('install', function(event) { console.log("installed"); }); self.addEventListener('activate', function(event) { console.log("activated"); }); self.addEventListener('fetch', function(event) { console.log("fetch"); event.respondWith(new Response("My response!!")); }); myworker.js
  • 60. Web APIs - MobileTech conference 2015 - @casarock Service Workers caching importScripts('serviceworker-cache-polyfill.js'); self.addEventListener('install', function(event) { event.waitUntil( caches.open('name-my-cache-v1').then(function(cache) { return cache.addAll([ '/', '/styles/all.css', '/imgs/myimg.png', '/scripts/awesome.js' ]); }) ) }); self.addEventListener('fetch', function(event) { event.respondWith( caches.match(event.request).then(function(response) { return response || fetch(event.request); }) ); }); cache some stuff.
  • 61. Web APIs - MobileTech conference 2015 - @casarock Google IO 2015 Service Worker
  • 62. Web APIs - MobileTech conference 2015 - @casarock OK Some live examples...
  • 63. Web APIs - MobileTech conference 2015 - @casarock Ambient light Ambient Light Demo
  • 64. Web APIs - MobileTech conference 2015 - @casarock Notifications Notifications Demo
  • 65. Web APIs - MobileTech conference 2015 - @casarock Battery Battery API Demo
  • 66. Web APIs - MobileTech conference 2015 - @casarock And of course: Have FUN! Fun, fun, fun
  • 68. Web APIs - MobileTech conference 2015 - @casarock Service Worker
  • 69. Web APIs - MobileTech conference 2015 - @casarock Conclusion Standards are cool! WebAPIs allow us to build cooler web apps WebAPIs are not a "mobile"-thingy! The "Web" becomes (more) "native"
  • 70. Thank you! @casarock Slides & Examples: casarock.github.io Carsten Sandtner