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" } ! ] !} !
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 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