What Is
Future Friendly?

whoami

@joemccann

joemccann Github

Creator of Dillinger.io

Partner at The Node Firm

I Blog Here on subPrint.com

Open Source Advocate & Contributor

Mobile & Platform Architect at Bazaarvoice

Past 13 Years of Websites...

Client Sends Request →

Full Response Comes Back ←

Geocities

AJAX

Google Maps in 2005

MVC Frameworks à la Ruby on Rails

Basecamp

Realtime Frameworks via WebSockets

Socketio

Where Are We Today?

The Desktop Web is Thriving

Google Docs/Drive

Angry Birds

Ok Go Music Video

Awesome

What About Mobile?

Mobile Web is not nearly as robust as the desktop

However...

Soon it will be...

Core Mobile Group

Firefox OS aka Boot 2 Gecko

Beyond HTML5 (Read This!)

However...

Mobile is not just
the web.



Let me say that again.

Mobile is not just
the web.



Flurry


Nielsen


Keynote Competitive Research

Mobile is bringing about new types of computing

Action Driven Computing

Casual Computing



Tablets

85% of US tablet owners use their tablets while watching TV

Forrester Research


Nielsen

Undeniable Trend


Tablet Shipments now 52.5% of PC Shipments

IDC


Smart TVs



Digital Signage



IHS iSuppli Market Research

Digital signs + smartphones = two-way communication for marketers, merchants and brands to consumers.



In-Store Kiosks



Deloitte


Smart Appliances



Wearables


The new wrist devices won't replace smartphones. Instead they will extend smartphones' functionality and utility by connecting to them.
Accessories that provide additional value to devices and a better user experience can help to improve levels of satisfaction and brand loyalty, as well as provide additional revenue sources.

Strategy Analytics
If you add up all the smartphones and the tablets and the digital televisions and the PCs... and cast your eye forward a few years we see a large opportunity of perhaps 3 billion to 4 billion units per annum, but we see an embedded market that's maybe 30 billion to 40 billion units per annum, and so that's where we get the factor ten.

TL;DR

ARM CEO:
Embedded has 10x
market potential of mobile


Mobile World Live


Devices Not Invented Yet!

Your software should not be bound solely  to the browser.

It should favor the browser, but be flexible for any type   of client.






It should be...

Client-Agnostic

But How?

Service Oriented Architecture

(SOA)

SOA Recipe

  • Loosely Coupled Software Components (Services)
Services are autonomous, stateless, with fully documented interfaces, and separate from the cross-cutting concerns of the implementation.

This makes testing much  easier.

SOA Recipe

  • Loosely Coupled Software Components (Services)
  • RESTful (or REST-like)
  • API for Every Feature
  • Use JSON, not XML
It should be noted that a client may not always have a UI. It may be another process or another service requesting information.

The onus is on the requesting client
to consume and display (or use) that
response data in a meaningful fashion.

Exposing Services

  • Choose a platform that is conducive to
    simple, RESTful APIs
  • node.js (my preference)
  • Make sure your interfaces do not change.
    Easier said than done.
  • Send JSON

Consuming Services

  • Will Be Client-specific
    (Native Android app vs Mobile Web Site)
  • Expect and Consume JSON
  • Cache data locally

DON'T SHIP THE UI
IN YOUR RESPONSE

If you do, you will fail going forward.

Decouple content layer
from presentation layer




Assuming that a browser is on the other end is a losing proposition.
A browser is a single endpoint, not every endpoint.

The desktop web environment
assumes a fixed, static context.

At a desk, QWERTY keyboard.

In reality, this is a shrinking market.



Asymco

Final Thought



You, your code and your business need to support an ever-changing landscape of internet-capable devices.

 Be future friendly.
Be device agnostic.