ITP 342 Mobile App Development APIs
API Application Programming Interface (API) A specification intended to be used as an interface by software components to communicate with each other An API is usually related to a software library An API can also be related to a software framework An API can also be an implementation of a protocol The practice of publishing APIs has allowed web communities to create an open architecture for sharing content and data between communities and applications 2
REST Representational state transfer (REST) is a style of software architecture for distributed hypermedia systems such as the World Wide Web Conforming to the REST constraints is referred to as being RESTful RESTful web service (or RESTful web API) is a simple web service implemented using HTTP and the principles of REST It is a collection of resources with 4 defined aspects 3
4
RESTful Web Services The base URI for the web service, such as http://example.com/resources/ The Internet media type of the data supported by the web service Often JSON (JavaScript Object Notation), XML (Extensible Markup Language) or YAML but can be any other valid Internet media type The set of operations supported by the web service using HTTP methods (e.g., GET, PUT, POST, or DELETE) The API must be hypertext driven 5
REST Services Many web sites are now offering their facilities through REST Web Services REST Services can be used to access sites that perform the following functions: Web Search (e.g.yahoo s BOSS Search, Google Custom Search) Geolocation (e.g Yahoo s Placefinder) Photo Sharing (e.g. Yahoo s Flickr, Google s Picasa) Social Networking (e.g. Facebook, Twitter, MySpace) Mapping (e.g. Google Maps) Many of these services limit daily usage by a single website, and require payment when the thresholds are breached 6
REST Services Access is provided using one or both of these methods: Direct URL, returning a response in one or more formats (XML, JSON, PHP) Library-based APIs, embedded in JavaScript, Java, C#, Objective-C and other source and binary library formats Many of these services now require or include OAuth user authentication Oauth is a standard for clients to access server resources on behalf of a resource owner E.g. see http://en.wikipedia.org/wiki/oauth 7
ASIHTTPRequest RESTful API Easy to use wrapper around the CFNetwork API Suitable for basic HTTP requests and interacting with REST-based services http://allseeing-i.com/asihttprequest/ Developing RESTful ios Apps with RestKit http://mobile.tutsplus.com/tutorials/iphone/ restkit_ios-sdk/ 8
Facebook https://developers.facebook.com/mobile/ Things you can do: Login with Facebook Fetch User Data Publish to Feed Send Requests 9
Twitter https://dev.twitter.com Embedded Timelines Make it easy to syndicate any public Twitter timeline to your website with one line of code You can embed a timeline for Tweets from an individual user, a user s favorites, Twitter lists, or any search query or hashtag Twitter Cards Attach media experiences to Tweets that link to your content Embedded Tweets Allows websites to generate copy and paste-able HTML markup to render a Tweet on any third-party website 10
Twitter REST API https://dev.twitter.com/docs/api Provides simple interfaces for most Twitter functionality Streaming APIs https://dev.twitter.com/docs/streaming-apis A family of powerful real-time APIs for Tweets and other social events ios Twitter Framework https://developer.apple.com/library/ios/ documentation/twitter/reference/ TwitterFrameworkReference/_index.html 11
Available at: http:// developers.google.com APIs available for: Google+ Android App Engine Chrome Games Google Maps Google Apps Google TV Commerce YouTube Google APIs 12
Twilio http://www.twilio.com Brings voice and messaging to your web and mobile applications A cloud communications IaaS (Infrastructure as a Service) company Allows software developers to programmatically make and receive phone calls and send and receive text messages using its web service APIs Twilio's services are accessed over HTTP and are billed based on usage As of October 2012, more than 150,000 developers use the service Make phone calls to anywhere in the world They use geographically distributed datacenters to connect with carriers around the globe Send text messages to anywhere in the world Connected to over 1,000 mobile carriers globally Send messages in whatever language your users speak In June 2010 Twilio launched OpenVBX An open source product that lets business users configure phone numbers to receive and route phone calls 13
Cloud Computing Layers 14
Cloud Computing SaaS software as a service "on-demand software" or "application service providers" (ASPs) Software and associated data are centrally hosted on the cloud PaaS platform as a service Cloud providers deliver a computing platform typically including operating system, programming language execution environment, database, and web server IaaS infrastructure as a service Offer computers - physical or (more often) virtual machines - and other resources 15
Cloud Computing BaaS backend as a service Mobile backend as a service (MBaaS) A model for providing web and mobile app developers with a way to link their applications to backend cloud storage while also providing features such as user management, push notifications, and integration with social networking services These services are provided via the use of custom software development kits (SDKs) and application programming interfaces (APIs) The global BaaS market had an estimated value of $216.5 million in 2012 16
Mobile App Development Back-end as a service Database, login info, data for each user Back-end Tools Firebase Parse StackMob Kinvey
icloud icloud Storage APIs enable your apps to store content in icloud, keeping your apps up to date automatically Use icloud to give your users a consistent and seamless experience across icloud-enabled devices https://developer.apple.com/icloud/index.php icloud Web Tools to view the content your app has stored in icloud https://developer.icloud.com 18
Passbook Passbook gives users a whole new way to organize boarding passes, tickets, gift cards, and loyalty cards You can bring up passes in your app with Pass Kit APIs, send them via email, or post them on the web You can also set items to appear at certain times or locations and update items with push notifications https://developer.apple.com/passbook/ 19
Game Center Games on ios and OS X can take advantage of Game Center, Apple s social gaming network Game Center enables your users to track their best scores on a leaderboard, compare their achievements, invite friends to play a game, and start a multiplayer game through auto-matching https://developer.apple.com/game-center/ 20