ITP 140 Mobile Technologies Mobile Topics
Topics Analytics APIs RESTful Facebook Twitter Google Cloud Web Hosting 2
Reach We need users! 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 <?xml version="1.0" encoding="utf-8"?>! <note>! <to>jason</to>! <from>trina</from>! <heading>reminder</heading>! <body>bring home some milk!</body>! </note>! 13
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/ {! }! "employees": [! { "firstname":"trina", "lastname":"gregory" },! { "firstname":"poojan", "lastname":"jhaveri" },! { "firstname":"pranali", "lastname":"jhaveri" }! ]! 14
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
REST API Twitter 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
Available at: http:// developers.google.com APIs available for: Google+ Android App Engine Chrome Games Google Maps Google Apps Google TV Commerce YouTube Google APIs 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