The Road to the Native Mobile Web. Kenneth Rohde Christiansen

Similar documents
Meet Crosswalk New HTML5 Runtime. Sakari Poussa Intel

Invest in the future, build for the web!

Build Native-like Experiences in HTML5

IGME-330. Rich Media Web Application Development I Week 1

HTML5 Applications Made Easy on Tizen IVI. Brian Jones / Jimmy Huang

PROGRESSIVE WEB APPS & EDUCATION

Building a Browser for Automotive: Alternatives, Challenges and Recommendations

HTML5 for mobile development.

Tizen Web Runtime. Ming Jin, Samsung Electronics. (May 8, 2012)

The Web, after HTML5. Jonghong Jeon. 9 December 2015

Case study on PhoneGap / Apache Cordova

Present and Future of the RhoMobile platform. Migrating legacy applications, Node.js on mobile devices right now and more

Exploring Cross-platform Tools For Mobile Development: Lessons Learned. mlearning: Tips and Techniques for Development and Implementation

Review of Mobile Web Application Frameworks

Building mobile app using Cordova and AngularJS, common practices. Goran Kopevski

The paper shows how to realize write-once-run-anywhere for such apps, and what are important lessons learned from our experience.

Tizen IVI Architecture New features. Dominig ar Foll, Intel Open Source

HTML5 Mobile App Development

COURSE OUTLINE MOC 20480: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3

Fundamentals of Website Development

Head-to-head: Which will win for your business?

WebKit ; FOR : DUMMIES. by Chris Minnick WILEY. John Wiley & Sons, Inc.

Evolution of the "Web

Web browser architecture

Mobile & More: Preparing for the Latest Design Trends

B r o w s e r s u p p o r t

Mobile Technologies. Types of Apps

WebGL Meetup GDC Copyright Khronos Group, Page 1

How APEXBlogs was built

HTML5 Evolution and Development. Matt Spencer UI & Browser Marketing Manager

Visual HTML5. Human Information Interaction for Knowledge Extraction, Interaction, Utilization, Decision making HI-I-KEIUD

20480B - Version: 1. Programming in HTML5 with JavaScript and CSS3

We aren t getting enough orders on our Web site, storms the CEO.

Introduction of Web-based Signage JS Player and proposal of APIs

I m sorry but HTML5 mobile games DO work.

ANDROID PRIVACY & SECURITY GUIDE ANDROID DEVICE SETTINGS

Index LICENSED PRODUCT NOT FOR RESALE

How To Present Progressive Web Apps To Your Clients

White Paper: Delivering Enterprise Web Applications on the Curl Platform

Mobile Application Strategy

Lesson 5: Multimedia on the Web

VMware Workspace Portal End User Guide

the web as it should be Martin Beeby

Embedded Linux UI Comparison. Tim Bird Senior Staff Software Engineer Sony Electronics

owncloud Android App Manual

HTML5 MOCK TEST HTML5 MOCK TEST I

AngularJS Fundamentals

PWA-ifying Santa Tracker. Sam

Nokia for developers. Alexey Kokin. Developer Relations

Improving the Magento 2 Developer Experience

Google extensions api

Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Native Mobile Apps in JavaScript

Stanko Tadić

Connecting with Tizen : An Overview & Roadmap. Mohan Rao

HTML version of slides:

The plural of Chromium is Chromia. Peter-Paul Koch Mobilism, 27 March 2015

HTML5 HTML & Fut ure o Web M edi dia Streami a est Work h op, ov 2010 Michael Dale Zohar Babin eve oper o Dev R l e t a i tions & C

Tizen IVI Architecture New features

Firefox OS App Days. Overview and High Level Architecture. Author: José M. Cantera Last update: March 2013 TELEFÓNICA I+D

One of the fundamental kinds of websites that SharePoint 2010 allows

SKA Suite FlyFolder 7. Think Design Deploy Your digital signage

Team Up: Contributing to the Tizen Platform. Narasimha Swamy Sanjay NM

Introduction to Sencha Ext JS

Hello everyone. My name is Kundan Singh and today I will describe a project we did at Avaya Labs.

MEAP Edition Manning Early Access Program WebAssembly in Action Version 1

Mobile Programming. Two Scenarios Web sites, like Tuubi where you read/write/download/ upload material

Supported Devices, OS, and Browsers

How to Evaluate a Next Generation Mobile Platform

Nodes Tech Slides - Progressive Web Apps, 2018

CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application

WHAT IS WEBKIT? COPYRIGHTED MATERIAL SMASHING WEBKIT CHAPTER 1

Khronos and the Mobile Ecosystem

ENTERPRISE MOBILE APPLICATION DEVELOPMENT WITH WAVEMAKER

Release Notes. Spectrum Spatial Analyst Version 8.0. Contents:

Integration Service. Admin Console User Guide. On-Premises

Mastering Mobile Web with 8 Key Rules. Mastering Mobile Web with 8 Key Rules

HOW TO SOLVE COMMON PROBLEMS WITH LEGACY ORACLE JAVA VERSIONS IN WINDOWS 10

Android Developer Nanodegree Syllabus

Developing Cross Device Mobile Applications

Lesson 5: Multimedia on the Web

Mobile Access is the Killer App The Path to Flexible, Secure Credentials Brandon Arcement Senior Director, Product Marketing April 8, 2019

Integrating Mobile Applications - Contrasting the Browser with Native OS Apps. Cary FitzGerald

Bringing DevOps to Service Provider Networks & Scoping New Operational Platform Requirements for SDN & NFV

Firefox for Android. Reviewer s Guide. Contact us:

WAC and W3C technologies

Using VMware Identity Manager Apps Portal

What s new in SketchUp Pro?

In the Driver s Seat

Simple AngularJS thanks to Best Practices

AR Standards Update Austin, March 2012

Audience: Info Workers, Dev

Building Native Mapping Apps with PhoneGap: Advanced Techniques Andy

Advance Mobile& Web Application development using Angular and Native Script

CodeValue. C ollege. Prerequisites: Basic knowledge of web development and especially JavaScript.

Building Mobile Apps with HTML5

HACKING TIZEN THE OS OF EVERYTHING. AJIN

HTTP, WebSocket, SPDY, HTTP/2.0

Web App Vs Web Site. Some tricks of the trade. Laurent Technical Director, BlackBerry Web Platform

International Research Journal of Engineering and Technology (IRJET) e-issn: Volume: 05 Issue: 06 June p-issn:

Transcription:

The Road to the Native Mobile Web Kenneth Rohde Christiansen

Kenneth Rohde Christiansen Web Platform Architect at Intel Europe Blink core owner and former active WebKit reviewer Works on Chromium, Crosswalk and related projects 2

Topics for today Major advantages of the web platform Top issues and lessons learned Current industry focus Introducing Crosswalk An outlook to the future 3

The web that binds us

The web platform The web has changed out lives Transformed businesses Created innovation But the Web itself has also been transformed 5

The web platform HTML The inception 6

The web platform DHTML The dark ages Lots of animations, scripts (incl. VBScript, etc) 7

The web platform AJAX New potential XMLHttpRequest, Google Maps, Gmail, browser applications 8

The web platform WHATWG New cooperation, new refinement Standardization outside the W3C, the birth of what became HTML5 9

The web platform HTML5 The word on everyone s lips Adopted by the W3C, the birth of the web platform (several specs), CSS3, JS6 and The Living Standard 10

The web platform Mobile Web The full desktop experience in your pocket Started by ios, developers realized the potential for cross platform apps, hybrid (PhoneGap, Sencha, etc) created new potentials 11

Advantages of using the Web Platform

What made the web popular Connectivity Deep linking Indexability Something most native apps lack 13

What makes it popular today Integration with cloud services Flexible layout primitives Responsive/adaptable design The cross-platform promise Deployment and distribution model Many advantages over native apps, and also reason why many native apps make use of a WebView 14

The danger zone and slow standardization To understand the web and sometimes the slow process in catching up with native, we need to realize that the web in not curated and danger lurks around every corner You don t stumble upon a native app before installing it Other reasons: multiple vendors, standardization, future proofing 15

Failures along the way 1. No consistent offline story appcache became a joke (expiration date, know all resources up front) Packaged apps are all offline but lack the deployment/update model of the web 16

Failures along the way 2. Lack of control Window management, orientation locking, avoid device going to sleep and much more 17

Failures along the way 3. Lack of sensitive API Fingerprinting, network info, bluetooth, power, among others 18

Failures along the way 4. New API rolls out very slow Slow standardization, have to fit the web and all platforms Polyfilling and prollyfilling is becoming increasingly popular but enablers are missing 19

Lessons learned 1. It is close to impossible to roll out new APIs as fast as native But with right layering, polyfilling can solve much of this The extensiblewebmanifesto.org 20

Lessons learned 2. Permission model is hard, not but really! really really hard Up front vs. when you need? We need a model which doesn t only cover packaged apps No one got it right yet 21

Lessons learned 3. Platforms do differ Can screen change orientation? One app at the time? Keep the API available everywhere but let the method/promise fail 22

Lessons learned 4. Developers are fine with special platform code For special features that is totally acceptable and preferred integration For core features, like CSS differences, it is not! 23

Lessons learned 5. The web platform is not layered - and full of magic Hard to understand what happens below and why some things result in unexpected slow-downs Frameworks are even worse; they often replace the whole platform and users are lost when they need something slightly different than what it being offered (customization) 24

Lessons learned 6. The platform needs a standardized way of creating real reusable UI components with proper encapsulation and nice API Requires a layered platform Requires control over the graphics pipeline; layout, rasterization, paint 25

Focus this year

The renewed Google focus for mobile and web apps Blink developers are now 100% focused on mobile performance Proper layering in the platform explain new features by using existing ones lower in the stack Remove unused legacy features (if possible) Shipping and promoting Web Components and Polymer Allow developers to control the painting Alternative to relying on the platform (CSS Transforms etc.), allowing to create native like UI components Have predictable performance characteristics 27

What about the fruit company? Their focus is not pushing the platform in the same way as Google, but using it where it makes sense for them Keep Safari competitive Not actively pushing new features that enables apps Investigating Web Components (to stay competitive) Focus on magazine layouts and CSS which they rely on for products like ibooks (like CSS regions) 28

The Intel focus We want to enable web apps everywhere, and the sooner the better And web apps must run well on IA (devices and cloud) 29

The Intel focus How are we getting there Work in the W3C working groups like SysApps, promoting native capabilities Work on the manifest spec, providing a way to describe an app Work on screen orientation, proximity sensor etc. in Chromium Create a proper future-proof runtime for Tizen 3.0 (IVI etc.) Provide a fast web runtime for Android 4.0+, incl. on IA and ARM 30

Introducing A runtime for web apps, based on Chromium/Blink A real runtime (system wide) for all Tizen profiles We work upstream first, which benefits Tizen, Android and Chrome Packaged apps with permissions (WGT, XPK) Also works as Embedded runtime for Android Distribute Crosswalk with the app on 4.0+ Get Chrome performance and features, plus Crosswalk value-add 31

Crosswalk focus areas Emerging standards Manifest, Bluetooth, Raw Sockets, Orientation Lock Access experimental APIs from day one (via extensions) Extension system for the paltform and platform developers We develop most of our experimental APIs like extensions Will support all current Tizen APIs Hybrid app developers can extend the app with native capabilities Intel adds special features, in parallel with standardization RealSense support (WIP), SIMD, etc 32

Future outlook

This is how we bridge the gap Earlier you were introduced to some of the current failures on the web platform Now let s look at how we expect to solve these issues! 34

The offline story Service Worker to the rescue An idea out of Google Inspired by Chrome Apps Event Pages Separately installed, upgradeable JS controller Small, have to act within short amount of time It handles fetch (basically hooks into resource requests) Building blocks to easily create a cache Imagine Netflix working offline for pinned movies! 35

The offline story Example 1 <script> // scope defaults to "/*" navigator.serviceworker.register("/assets/v1/worker.js").then( function(serviceworker) { console.log("success!"); serviceworker.postmessage("howdy from your installing page."); }, function(why) { console.error("installing the worker failed!:", why); }); </script> 36

The offline story Example 2 and 3 // hosted at: /assets/v1/worker.js this.version = 1; var base = "http://videos.example.com"; var inventory = new URL("/services/inventory/data.json", base) + ""; this.addeventlistener("install", function(e) { }); this.addeventlistener("fetch", function(e) { var url = e.request.url; console.log(url); if (url == inventory) { e.respondwith(new Response({ statuscode: 200, body: JSON.stringify({ videos: { /*... */ } }) })); } }); // caching.js this.version = 1; var base = "http://videos.example.com"; this.addeventlistener("install", function(e) { // Create a cache of resources. Begins the process of fetching them. var shellresources = new Cache( base + "/assets/v1/base.css", base + "/assets/v1/logo.png", base + "/assets/v1/intro_video.webm", ); // The coast is only clear when all the resources are ready. e.waituntil(shellresources.ready()); // Add Cache to the global so it can be used later during onfetch caches.set("shell-v1", shellresources); }); 37

Lack of control Focus of the W3C SysApps + DAP working groups DAP has released many mini specs: Battery, Proximity, Ambient Light Intel is actively implementing and pushing those specs in Chromium SysApps started out too ambitious; Manifest moved to WebApps At Intel we are pushing hard in W3C and Chromium upstream Intel and Samsung pushing Screen Orientation Lock Now with support from Google/Android Some APIs are being pushed in Tizen and Crosswalk 38

Lack of sensitive APIs Sensitive APIs are hard due to fingerprinting and private data and lack of web wide permission model File system access, screen info, Bluetooth, etc. Slightly easier for packaged apps we ask up front Intel was involved with current Tizen APIs and we are now working on better, more standard aligned APIs in W3C We push those though Crosswalk, while keeping current APIs We try to stay aligned with new spec work, like Promises, Streams API We know that this is a long term process 39

Slow API roll out We some-what solved this in Crosswalk Enabling and shipping experimental APIs Keep most experimental APIs as separate extensions Ship only what you need (TV APIs on TV only) Ability to not ship legacy APIs on newer platforms/profiles Tizen lacks a deprecation plan 40

Manifest.json - application meta data Spec pushed by Intel and Mozilla: w3c.github.io/manifest Initial release almost done Service Worker integration coming later Google implementing in Chrome Icons, additional security policies (CSP), title/name, start URL, default orientation, preferred display style and much more to come 41

Summing up

Summary The web is entering a new era and focus is on web apps and building blocks making it easy and obvious to construct native like and performing apps New constructs for getting close to native: new API, better offline story, but still lacking a permission model urgently Polyfilling and a more layered platform will create more innovation on top and close the gap to quicker evolving native platforms 43

Summary Tizen is on board We attempt to give developers what they want We aim at bridging the gap to native and make web native We prepare Tizen for the future web innovations We support open standards and open innovation 44

Questions?