32
ITP 140 Mobile Technologies Mobile Topics

ITP 140 Mobile Technologies - University of Southern ...bcf.usc.edu/~trinagre/itp140/lectures/ITP140_MobileTopics.pdf · ITP 140 Mobile Technologies ... – RESTful – Facebook –

  • Upload
    dangbao

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

ITP 140 Mobile Technologies

Mobile Topics

Topics •  Analytics •  APIs

–  RESTful –  Facebook –  Twitter –  Google

•  Cloud •  Web Hosting

2

We need users! •  Reach

–  The number of users who try our apps •  Retention

–  The number of users who repeatedly use our apps

•  Revenue –  Make money!

Example - Zynga •  Finding Revenue in Retention by Mark Pincus

–  http://developers.facebook.com/blog/post/204/ 1. Focus on retention

–  Fun game play is a core element –  Allowing users to interact with the bulk of your product for free –  A small portion of hardcore users will generate most of your

income 2. Have a mixed revenue stream

–  33/33/33 split among banner advertising, direct user pay, and CPA offers

•  Build something people are willing to pay for, keep them around so they will pay for it, and give them as many ways to pay as possible

4

Analytics •  Definition

–  The science of analysis –  The process of obtaining an optimal or realistic

decision based on existing data •  Software libraries/services to collect data

about my application –  Track events defined by the app author –  Report some events automatically –  Service (usually web-based) to present the

analytics data

5

Metrics •  Acquisition and user metrics

–  Examples: downloads and new users •  Engagement metrics

–  Examples: retention, crashes, and conversion •  Outcome metrics

–  Examples: app sales and in-app purchases

6

Metrics •  DAU – daily active users •  MAU – monthly active users •  DAU/MAU – daily active users / monthly

active users –  20% is great!

•  ARPU – average revenue per user •  ARPPU – average revenue per paying user

7

Analytics Providers •  Flurry

–  http://www.flurry.com –  Merged with Pinch Media –  Leader in the mobile application analytics category

•  Google SDK –  http://code.google.com/mobile/analytics/docs/iphone/

•  Grab Analytics –  https://analytics.grab.com

•  Localytics –  http://www.localytics.com/

•  Medialets –  http://www.medialets.com/

8

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

9

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

10

REST Philosophy •  The 3 most important features of a RESTful

server are its statelessness, uniform resource identification, and cacheability.

•  Statelessness –  Every API is treated as a new request, and no client

context is remembered on the server. •  Resource identification

–  Done through URLs •  Cacheability

–  Allows clients to cache responses based on the URL

11

REST Philosophy •  Response from a RESTful server is usually

sent in a uniform, agreed-upon format, usually to decouple the client/server interface.

•  The client iOS app communicates with a RESTful server through this agreed-upon data exchange format.

•  The most commonly used formats are XML and JSON.

12

XML •  XML stands for eXtensible Markup Language •  Designed to transport and store data

–  Uses tags –  Has a root node –  http://www.w3schools.com/xml/default.asp

13

<?xml version="1.0" encoding="UTF-8"?> !<note> ! <to>Jason</to> ! <from>Trina</from> ! <heading>Reminder</heading> ! <body>Bring home some milk!</body> !</note> !

JSON •  JSON stands for JavaScript Object Notation

–  Is a lightweight text-data interchange format –  Is "self-describing" and easy to understand –  http://www.w3schools.com/json/

14

{ ! "employees": [ ! { "firstName":"Trina" , "lastName":"Gregory" }, ! { "firstName":"Poojan" , "lastName":"Jhaveri" }, ! { "firstName":"Pranali" , "lastName":"Jhaveri" } ! ] !} !

15

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

16

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

17

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

18

Facebook •  https://developers.facebook.com/mobile/ •  Things you can do:

–  Login with Facebook –  Fetch User Data –  Publish to Feed –  Send Requests

19

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

20

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

21

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

22

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

23

Cloud Storage •  Instead of data residing on a local storage

device, it is stored online for you in large data centers –  Data is typically synced to multiple hard drives by

the storage provider –  Data is pushed by the

internet to multiple devices •  Becoming very popular with

enterprises and companies

24

Cloud Storage •  Advantages

–  Pricing directly related to the amount stored •  No wasted space

–  Data is synced across multiple devices by the cloud provider •  Typically no data loss

•  Disadvantages –  You do not control your data –  Security & Privacy Issues

•  Encryption becomes very important –  If the provider is compromised (hacked), then your data is

compromised

25

Cloud Storage Providers

26

Cloud Computing Layers

27

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

28

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

29

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 •  The consumer cloud services provide limited, free basic storage

30

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

–  http://cloud.google.com

31

Mobile App Development •  Back-end as a service

–  Database, login info, data for each user •  Back-end Tools

–  Firebase –  Parse –  StackMob –  Kinvey