ITP 342 Mobile App Development -...
Transcript of ITP 342 Mobile App Development -...
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
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 • 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