One of the most powerful aspects of mobile computing is the always-on connectivity of our modern devices. Looking at the App Store today, you would be hard pressed to find an app that doesn't use a web service to some degree.
Whether it's to stream videos and music, share photos, receive notifications, or sync documents and data, web services are an essential part of most mobile applications. This session will examine the best practices for building networked apps and APIs by building a small, networked iOS app.
You'll learn:
- When and how to leverage web services in a mobile application
- How to building the client networking code, including caching and secure storage for credentials/tokens
- Best practices for building mobile web service APIs
Be sure to grab the Example App from http://github.com/joe-goullaud/Github-iOS
5. Leveraging Web Services
• Content
• Images
• Video
• Documents
• Communication
• Text
• Voice
• Video
• Synchronization
• Game Play
• Document Collaboration
• Data
• Sharing
• Facebook
• Twitter
12. Mobile API Goals
• Reduce Network Calls
• Small Responses with Just Enough Data
• Secure
13. Caching
• Cache-Control Headers
• Set no-cache and max-age as appropriate
• Set to no-cache on Errors
• Images
• GET and HEAD request headers
• Content-Length
• Content-Type
• Last-Modified
14. JSON
• Compact
• Low memory footprint
• 2x faster to parse than XML
• Easier to create on device
• Smaller Request Bodies
15. REST-like
• Resource Endpoints
• Plural Endpoints should return object summaries
• Single Resource Endpoints return full object
• Can return object summaries of related objects
• Action Endpoints
• Perform complex service actions atomically
16. Security
• HTTPS
• No secure data in URL Query
• OAuth 2
• Token-based
• Authorization Headers
• HMAC for request authentication