27
Get in touch [email protected] APIs: A Mobile Developer’s Perspective Niall Roche @niallroche

API Architecture Summit 2014- APIs: A Mobile Developers Perspective

Embed Size (px)

Citation preview

Get in touch [email protected]

APIs: A Mobile Developer’s Perspective

Niall Roche

@niallroche

• Background• Brief History of Mobile & APIs• Mobile API Good Practice• API issues for Mobile• BaaS• Future API Considerations

Agenda

•Mobile Developer - pretty much every platform!

• Lecturer in Distributed and Mobile Computing

• UCL Decide - building App Lab Digital Testbed

• Tech Trainer

•Mentor at

Background

“Helping London’s entrepreneurs test, iterate and launch their ideas”

DECIDE services include:•Open Device Lab•User Experience Expertise•App Store – closed testing service

Get in touch at [email protected]

UCL Decide

@ucldecide

• Occasionally Connected / Disconnected• High Latency & network congestion• Low or varying Bandwidth• Battery Issues• Storage Restrictions• Processing Restrictions

Mobile Issues

• Small screen sizes and bad browsers - bad HTML support• No easy way to get content out of DB or existing system • Solution was to extract content by Screen Scraping• Horrible selection rules in Regex• Pages broke if content changed (and it usually did!)• Needed to repurpose content to be mobile friendly

• Or alternatively maintain Two different versions of content• Web version and Mobile version

A Brief History of Mobile

• Two major changes happened• Mobile Changed• Devices, browsers and networks got better• Mobile Internet became usable

• Backends Changed• Along came Web Services then APIs then REST APIs• Life became easier!

A Brief History of Mobile

WebsiteWebsite

Data

DesktopBrowserDesktopBrowser

HTML

AdaptiveWebsite

AdaptiveWebsite

Data

DesktopBrowserDesktopBrowser

Mobile BrowserMobile

BrowserWML

/XHTML-MP

HTML

WebsiteWebsite

Data

Mobile BrowserMobile

Browser ProxyProxy

WML /XHTML-

MP

HTML

HTML

DesktopBrowserDesktopBrowser

WebsiteWebsite

Data

Mobile BrowserMobile

Browser

ProxyProxy

WML /XHTML-

MP

HTML

WebsiteWebsite

Data

Mobile AppMobile App

ProxyProxy

XML / Text / JSON

HTML

WebsiteWebsite

Data

Mobile AppMobile App ServerServer

HTMLDesktop

BrowserDesktopBrowser

XML / Text / JSON

ServerServer

Data

BrowserBrowser

WebServerWeb

Server

JSONAPIAPI

HTML / CSS

JavaScript

ServerServer

Data

MobileApp

MobileApp

JSONAPIAPI

• Data entry still a bit issue for users, help to avoid typing• reactive autocomplete like Google search

• Interactions should not be bursty, not chatty• bad for the battery• do more with a single interaction• not too much in a failure scenario!

• Reactive to the network type do more on WiFi• Check if EDGE vs LTE or measure throughput

Mobile API Good Practice

• Use lightweight data exchanges JSON / BSON• no SOAP please!

• Consider just sending the data that has changed only • Design APIs to make Entities cacheable when offline• Design to be easy to sync data and effectively recover

from interruption - this is not easy!• Support cross platform, with apis and samples• Http pipeline - make more of the bandwidth you have

Mobile API Good Practice

HTTPReques

t

HTTPRespons

e

HTTPReques

t

HTTPRespons

e

• Don't have APIs that are not easy to test or to mock out• No polling please! Bad in general, terrible on mobile• Users access services from multiple devices &

concurrently• desktop & multiple mobile• don’t presume a single connection, adapt accordingly

• Don’t push what has already been seen• Don’t Fetch a large set of results at once

• could vary based on device or network or user pattern

API issues for Mobile

• BaaS great to start with and for simple apps and prototyping - more time to concentrate on the App

• Push integration is a must - key for Mobile, keeps users engaged• handling the plumbing around managing device ids• manage Apple/Google/Microsoft API integration

• Need SDK & samples for major platforms & HTML5• Use Appropriate and Secure Storage & Authentication• Offer Offline & Sync and your developers will love you!

BaaS

• Great in the beginning but have medium-term issues • When app needs to go beyond basic CRUD• e.g. take action once entity added deleted updated• Problems with migrating data into other systems• Customisation beyond functions in the platform or

extras that can be purchased

BaaS issues for Mobile

• The Web is changing• Offline Apps - Chrome WebApps• WebSockets - Push (Server Send Events)• SPDY (HTTP 2.0)

• priority on Web Requests• Leaner with less headers

• The Growth of Wearables and Embedded / M2M• Back to small (no) screens, limited processing

API Future Considerations

• Amazon AppStream - GUI in the cloud for streaming UIs• Api for rendering complex User Interfaces at sever-side• Shows potential of the future, older cheaper mobile devices that

can handle rich content• Trend early towards updatable apps,

• ease of pulling down new logic or app updates are now a patch

• rather than a complete replacement and down in background

API Future Considerations

Julia Shalet, Product Doctor 127

#needtoknowmobile for hipsters, hustlers & hackers

Next Evening Programme: 25th March – 27th May 2014

Shoreditch, London

“…Brilliant insights from industry pros, fresh thinking, interesting contacts, a new understanding of what it means to be 'mobile‘…”

CPD Accredited, hosted by UCL & Mobile Monday London

20% Discount Code: Niall