• No results found

ITP 342 Mobile App Development. APIs

N/A
N/A
Protected

Academic year: 2021

Share "ITP 342 Mobile App Development. APIs"

Copied!
25
0
0

Loading.... (view fulltext now)

Full text

(1)

ITP 342

Mobile App Development

(2)

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

(3)

Facebook

• 

https://developers.facebook.com/mobile/

•  Things you can do:

–  Login with Facebook

–  Fetch User Data

(4)

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

(5)

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/

(6)

Google APIs

•  Available at:

–  http://

developers.google.com

•  APIs available for:

(7)

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

(8)
(9)

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

(10)

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)

(11)

Cloud Services

•  Cloud Services covers a variety of hosting services:

–  Application Hosting (e.g. AWS, Google App Engine, FireHost, Microsoft Azure)

–  Backup and Storage ( e.g. AWS)

–  Content Delivery (e.g. Netflix hosted by AWS) –  E-commerce (Amazon.com e-commerce)

–  Media Hosting (e.g. Microsoft Azure, RackSpace, Streaming Media Hosting) –  DNS Protection Services (e.g., CloudFlare)

–  Consumer Cloud Storage (e.g. Apple iCloud. Dropbox, Microsoft SkyDrive, Google Drive)

•  Access is provided using one or both of these methods:

–  Dashboard

–  Library-based APIs, embedded in Java, C#, Objective-C and other binary library formats

•  All these services are commercial services that require monthly payments

(12)

Cloud Companies

•  Amazon Web Services (AWS)

– 

http://aws.amazon.com

•  rackspace – the open cloud company

– 

http://www.rackspace.com

•  Windows Azure

– 

http://www.windowsazure.com

•  HP Cloud Services

– 

https://www.hpcloud.com

•  Google Cloud Platform

(13)

Mobile App Development

•  What is BaaS?

–  At its core, a BaaS provider typically enables you

to store your data & interact with other critical

services in normalized manner, without the

headaches and cost of maintaining your own

infrastructure.

•  Which BaaS is right for me?

(14)

Mobile BaaS

•  Platforms

–  SDKs (Software Development Kits) for most

platforms (Android, iOS, JavaScript, etc.)

–  An HTTP service layer fallback

•  Features

–  Storage (data, DB)

–  Push notifications

–  Usage analytics

–  Dashboard/UI

–  Social integration

–  User administration

(15)

Feature Analysis - Storage

•  Questions to consider:

–  Is the storage schema-less? –  What’s the search API like?

–  Can you establish relationships between stored items?

–  Are changes pushed to connected clients, or do they need to re-query for updates?

–  Does the BaaS support “data connectors” — allowing you to sync the cloud-based data to another system behind your own firewall?

–  Where are the servers physically located (this can be a critical question to ask both for availability and regulatory reasons) –  How difficult is it to export your data en masse should you

decide to leave the provider for another option?

(16)

Feature Analysis – Push Notifications

•  Info:

–  Push notifications allow you to get important information to your users without the costs of other channels (SMS, for example) and without requiring your app to be in the foreground at the time.

–  As most push notifications arise due to a change in data, it’s logical that many BaaS providers are including this as an offering.

•  Good questions to ask:

–  What platforms are supported (iOS, Android, etc.)?

–  Will I get a consistent/normalized API to work with, rather than having to work with each platform-specific push

notification API?

(17)

Feature Analysis – Usage Analytics

•  Info:

–  Since many BaaS pricing plans can vary based on usage, having a means to view analytics is a vital part of wisely (& economically) using the service.

–  Depending on what metrics are tracked, usage analytics may also give you insight into how your app is being

used.

•  Good questions to ask:

–  Does the service enable you to track the number of API calls, storage quota or other feature usage?

–  Does the service support custom “events” which you can provide to track either feature usage, performance data and/or campaign response(s)?

(18)

Feature Analysis – Dashboard/UI

•  Info:

–  Most BaaS providers have a web-based interface

which you can use to manage your data, services

and view reports.

•  Good questions to ask:

–  Does the provider give you an option to browse/

search your data through some sort of portal or

dashboard interface?

(19)

Feature Analysis – User Admin

•  Info:

–  Many BaaS options provide built-in user management features.

–  Your target users may not care to create yet another login in order to use your app.

•  Good questions to ask:

–  Does the service allow you to create users?

–  Does it focus on role-based user permissions, or allow granular claims-based permissions?

–  At what level can you restrict information — schemas/ tables, records, fields?

–  Does the BaaS provide integration with 3rd party

(20)

Feature Analysis – Custom Code

•  Info:

–  It’s difficult to generalize to a common use-case,

and still enable enough flexibility to users without

giving them a means to inject custom logic for

certain operations.

–  Whether it’s validation, injecting a custom step,

priming a cache or other needs, a good question

to ask is your provider allows you the necessary

hooks to inject your own code.

•  Good question to ask:

(21)
(22)

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

(23)

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

(24)

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

(25)

Resources

References

Related documents