• 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
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 AppMobile App ServerServer
HTMLDesktop
BrowserDesktopBrowser
XML / Text / JSON
• 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
• 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