ITP 342 Mobile App Development -...

20
ITP 342 Mobile App Development APIs

Transcript of ITP 342 Mobile App Development -...

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

RESTful API •  ASIHTTPRequest

–  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

Google APIs •  Available at:

–  http://developers.google.com

•  APIs available for: –  Google+ –  Android –  App Engine –  Chrome –  Games –  Google Maps –  Google Apps –  Google TV –  Commerce –  YouTube

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