Bryan Rieger: Beyond Progressive Enhancement

Orde Saunders' avatarPublished: by Orde Saunders

Bryan Rieger (@bryanrieger) was talking about moving beyond the web at Mobile Monday Edinburgh, these are my notes from his talk.

Eric Schmidt: "By 2020 technology will be everywhere."

The results of everything being connected are interesting and alarming:  Stomach acid powered sensors that will talk to your phone.   These aren't objects, they're systems - they get their value from being connected.

Currently we are working on APIs that allow the browser to talk to hardware - we are trying to compete with native apps.  That might not be the best path, we need to work with them.  We need native to power complex experiences.  We need native to bridge the gap with things that aren't part of the web yet.  Native is needed to take advantage of powerful hardware - such as low power, always on, speech recognition. However, native needs the web for discovery - won't want to install apps for everything, only the things you want a relationship with.  The web is the ubiquitous pathway to discovery.

Progressive enhancement applies to all technology - a broken escalator is stairs.  Creating great experiences starts with acknowledging  that everyone has different needs.  Enhancement might lie beyond the web.  People already dip in and out of the web.  We want to coax people to the web or native depending on our own bias.  Jostling for attention is counter productive.  We have to stop thinking in silos, we need to think about what is digital?  Dixons scrapped commissions and now stores are credited with all sales in their catchment area - whatever the channel - the entire company is working towards a common goal.

iOS smart banners:  URLs that (kinda) open apps.  Adapts to context - prompts 'open' or 'view' depending if the app is installed. They are enabled in a web page meta tag, much better than hand rolled modal hacks.  However, don't use them simply because you can, make sure the experience adds value.  Try and maintain the user's context.

iOS custom URI schemes:  Allows third party apps to integrate with the web.  Apps register their own scheme and every time a browser encounters this scheme it allows the app to handle it.  However, on iOS, if there's no handler for that scheme then there's an error => fail.  They don't gracefully degrade.

Android intents:  Android intents are the glue between apps - they allow users to chose which app handles a certain type of content at a system level.  It's an action and some data, apps declare which actions they can handle.  If you click on a link an app can say if it matches a pattern then it can handle it - the user can then chose which of the registered apps they want to handle it.  It's an enhancement, not a hack.  Once a task is complete the user is returned to where they were. Intents can be chained, especially as users can choose which app they want to handle each task.  It's just a shame they are Android only thing.  Google has done something for Chrome on iOS but it's limited.  FF OS uses web activities API to allow web apps to delegate to other apps.

NFC: device to device.  Simple and effective but not supported at all by Apple.  (In Asia there are NFC cases for iPhones and an app that talks to that via BTLE!  People will find ways to do what they want.)  Can be used to transmit data to companion devices, for example a smart luggage tag to go with your mobile boarding pass.  Can be used to share context - for example pick up on your TV where you are with watching a movie on your phone.

Tearing down the silos isn't just good for the web, it's good for everyone.