Andrew Hall


Future of Web Apps – Day 1 Keynote – Bruce Lawson – Can the web win the war against native without losing its soul?

This was live blogged during the Keynote. There will be mistakes!

What are the differences between mobile and native?
What are the gaps between the two?

What’s wrong with app cache?

It’s really difficult to get your head around. It does what the spec says it should do, but this isn’t actually what you as a developer want it to do.

Mozilla, opera and industry people got together to see how they could improve it. They created a list of things to change.
They created ServiceWorker (previously navigation controller).

Service worker is JavaScript and requires you to do the work but gives you all the power instead of being “magic”.
Because service workers are javascript, websites will be offline by default. It forces you to have URLs – this is great, because links and URLs are what the web is. Apps don’t link well but the web does.

Imagine a lunar module is your web app and your user is a walrus with a fish. And the network is a leg with a lamp on – “this is a shit analogy”

Service worker opens up the the connection between the network and the browser. The service worker will intercept any request made across the network. This allows us to do various tasks as if we were online. For example caching products.

This functionality will be available before Christmas and is is nightly builds of Chrome and Opera now.

Service worker is a manifestation of the extensible web manifesto. This wants to increase the power of the web – it’s makes the web faster. It allows you do what you want, giving you the power, but then the most used functionality will be implemented into browsers

The newest super heroes in town are web components and shadow Dom. Web components allow you to make your own html and also extend existing tags.
For example you can extend a button to be a super magic amazing button and instead of faking this in divs we can actually use the button element.

Functionality can also be different. Previously you needed to have a native app to do certain things (eg geolocation) but these things are now available as web Apis

Phonegap allows you to take html Css and js to take your web code and make this code into an app. This was designed to bridge the gap where the web Apis didn’t exist before. It’s about getting an app into an AppStore and it’s difficult to do payments and monetisation on the web. There are steps towards this though at web-payments.org the goal of this project is to make sending money as easy as sending email.

Push notifications are very important too and service workers will help with this. There is definitely a better UX on native apps, performance is better and there are platform specific features.
Facebook went back to native app from html5 due to scrolling.
The blink engine has been working for all of 2014 to improve performance

You can also use lazyload on images in IE11 at present to make less important apps run after page load.

People like to install apps, but don’t like to bookmark. In fact opera on desktop no longer has book marks as only 10% of people used bookmarks.
But what does installing mean? Isn’t that just bookmarking an app to a home screen? You can use “add to home screen” in chrome on android and also on iOS in old versions.

There’s also a new spec for web manifest. This Json file contains information about the web app like icons, URL and orientation. You can see more info on html5doctor.com This spec came from W3C widgets you would get a zip file containing resources and when running this will install to your home screen. But this never caught on. This is because we were throwing away a key feature of the web – live updates. Apps take ages to update. The web is a conversation with your users. Apps that you download are like posting a letter removing the real time update functionality – this is why widgets failed as they were simply a cached version of the page.

Googles project loon is an idea to give people in lots of places that notmally couldn’t get access to the web, Internet access. Internet.org tries to do the same thing. There are billions of people who don’t have access to the web – these are all potential customer. In the next 5 years, Internet use on smartphones in Africa will rise 20 fold.
Smartphones sale grew 75% last year but was only 8% of the total mobile market.
Lots of people in Nepal and India have thin client style phones where the browser is rendered on the server and a pdf like design is sent down to the device with a smaller size.
It doesn’t matter how smart your phone is if your network is crap. Lots of places need older phones because the Internet infrastructure is not viable. These devices don’t run JavaScript as you would expect.

Airbnb released a site which was 5 times quicker to render. All they did was change to building a website with HTML and then adding css rather than just having an empty body tag and squirting JavaScript content in!

The web needs browser vendors to work together and web developers to work on using best practices to give users great experiences.

An increase in Internet maturity has seen the GDP increase in the last 5 years where it took 50 years to make the same progression during the industrial revolution.

Mobile vendors are busy suing each other about who owns what. But we as web developers can give users what they need – let’s concentrate on the users and not go from Web 2.0 to web 404.

Leave a comment or tweet me