91
BUILDING YOUR MOBILE BACKEND WITH PARSE ALI PARR PLATFORM PARTNERSHIPS

Workshop: building your mobile backend with Parse - Droidcon Paris2014

Embed Size (px)

DESCRIPTION

http://fr.droidcon.com/2014/agenda/detail?title=Parse+Worskshop Learn how to focus on creating a great user experience and forget complex infrastructure. Instantly add a powerful core, push notifications, and analytics to your app with Parse. We will take a deep dive at Parse's native SDKs for Android and see how to build an app that scales to millions of users. Speaker: Ali Parr, Parse Head of Mobile Platform Partnerships Engineering, EMEA, Facebook and Parse, based in London. He currently heads up the Parse partnerships program for Facebook in EMEA, as well focusing on new developer acquisition. Ali is focused on building partnerships between Parse and developers across EMEA, through direct contact, public speaking opportunities, and mentoring events. Ali is also a mentor at Techstars in London, and The Family in Paris, providing advice and experience to high-potential startups. Prior to Facebook, Ali was the founder of Infinite Degree, a gaming startup that reached top 10 in Apple App Store across many regions including the US and the UK. Ali holds a Masters degree in Computer Science.

Citation preview

Page 1: Workshop: building your mobile backend with Parse - Droidcon Paris2014

BUILDING YOUR MOBILE BACKEND WITH PARSE

ALI PARR PLATFORM PARTNERSHIPS

Page 2: Workshop: building your mobile backend with Parse - Droidcon Paris2014
Page 3: Workshop: building your mobile backend with Parse - Droidcon Paris2014
Page 4: Workshop: building your mobile backend with Parse - Droidcon Paris2014

IDENTITYSHARING

PUSH NOTIFICATIONSAPP INSTALLSMONETIZATION

Page 5: Workshop: building your mobile backend with Parse - Droidcon Paris2014

IDENTITYSHARINGPUSH NOTIFICATIONSAPP INSTALLSMONETIZATION

Page 6: Workshop: building your mobile backend with Parse - Droidcon Paris2014

CORE API STABILITY GUARANTEE

2 YEAR

Page 7: Workshop: building your mobile backend with Parse - Droidcon Paris2014

VERSIONINGFOR ALL APIs

Page 8: Workshop: building your mobile backend with Parse - Droidcon Paris2014

MAJOR BUG FIX SLA

48 HOUR

Page 9: Workshop: building your mobile backend with Parse - Droidcon Paris2014
Page 10: Workshop: building your mobile backend with Parse - Droidcon Paris2014
Page 11: Workshop: building your mobile backend with Parse - Droidcon Paris2014
Page 12: Workshop: building your mobile backend with Parse - Droidcon Paris2014

BUILD GROW

App Installs

Sharing

Messaging

MONETIZE

Payments

Audience Network

Parse

Login

App Events

App Links

Page 13: Workshop: building your mobile backend with Parse - Droidcon Paris2014
Page 14: Workshop: building your mobile backend with Parse - Droidcon Paris2014
Page 15: Workshop: building your mobile backend with Parse - Droidcon Paris2014
Page 16: Workshop: building your mobile backend with Parse - Droidcon Paris2014

PHYSICAL SERVERSLOAD BALANCINGDATABASE BINDINGS

RESTful APIROUTING

MIDDLEWARE

APP SECURITY

APP BUSINESS LOGIC

NETWORKING

CACHING

DATA MODELS

USER SESSIONSSOCIAL

PUSH NOTIFICATIONSFILESUI BINDINGS

Page 17: Workshop: building your mobile backend with Parse - Droidcon Paris2014

PHYSICAL SERVERSLOAD BALANCINGDATABASE BINDINGS

RESTful APIROUTING

MIDDLEWARE

APP SECURITY

APP BUSINESS LOGIC

NETWORKING

CACHING

DATA MODELS

USER SESSIONSSOCIAL

PUSH NOTIFICATIONSFILESUI BINDINGS

YOUR APP

Page 18: Workshop: building your mobile backend with Parse - Droidcon Paris2014

PARSE

YOUR APP

Page 19: Workshop: building your mobile backend with Parse - Droidcon Paris2014
Page 20: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Parse Core Parse Push Parse Analytics

Page 21: Workshop: building your mobile backend with Parse - Droidcon Paris2014
Page 22: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Completely Open Source

Page 23: Workshop: building your mobile backend with Parse - Droidcon Paris2014

PARSE CORE

Your backend in the cloud

Save data to and fetch data from Parse

Run custom app code on Parse’s servers

Easily create and manage user accounts and sessions

Page 24: Workshop: building your mobile backend with Parse - Droidcon Paris2014

THE F8 APP

Page 25: Workshop: building your mobile backend with Parse - Droidcon Paris2014

THE F8 APP

Key Value

TitleEverything You Need to Know About

Login

Time 12:30

Speaker Eddie O’Neil

isFavorite FALSE

Page 26: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam urna nisi, posuere in magna eget, aliquet luctus eros. Nam metus nisi, tincidunt ac tempor vitae, commodo a nisi. Morbi tincidunt felis lacus, nec congue tortor consectetur id. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed semper dapibus eleifend.

SAVING TO PARSEParseObject talk = new ParseObject(”Talk”);

Page 27: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam urna nisi, posuere in magna eget, aliquet luctus eros. Nam metus nisi, tincidunt ac tempor vitae, commodo a nisi. Morbi tincidunt felis lacus, nec congue tortor consectetur id. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed semper dapibus eleifend.

SAVING TO PARSE

talk.put(“title”, “Opening Keynote”);talk.put(“speaker”, “Mark Zuckerberg”);talk.put(“time”, talkDate); // Datetalk.put(“isFavorite”, false);

ParseObject talk = new ParseObject(”Talk”);

Page 28: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam urna nisi, posuere in magna eget, aliquet luctus eros. Nam metus nisi, tincidunt ac tempor vitae, commodo a nisi. Morbi tincidunt felis lacus, nec congue tortor consectetur id. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed semper dapibus eleifend.

SAVING TO PARSE

talk.saveInBackground();

talk.put(“title”, “Opening Keynote”);talk.put(“speaker”, “Mark Zuckerberg”);talk.put(“time”, talkDate); // Datetalk.put(“isFavorite”, false);

ParseObject talk = new ParseObject(”Talk”);

Page 29: Workshop: building your mobile backend with Parse - Droidcon Paris2014
Page 30: Workshop: building your mobile backend with Parse - Droidcon Paris2014

DEMO TIME!

Page 31: Workshop: building your mobile backend with Parse - Droidcon Paris2014

PARSE QUERYParseQuery<ParseObject> query = ParseQuery.getQuery(”Talk”);

query.findInBackground(new FindCallback<ParseObject>(){ public void done(List<ParseObject> buildTalks, ParseException e) {

if (e == null) { // We have a list of all the Build track talks } else { // Something went wrong; check the ParseException } }

// Find only the talks that are in the Build track query.whereEqualTo(”track”,”Build”);

Page 32: Workshop: building your mobile backend with Parse - Droidcon Paris2014

PARSE QUERY

}

ParseQuery<ParseObject> query = ParseQuery.getQuery(”Talk”);

query.findInBackground(new FindCallback<ParseObject>(){ public void done(List<ParseObject> buildTalks, ParseException e) {

if (e == null) { // We have a list of all the Build track talks } else { // Something went wrong; check the ParseException } }

// Find only the talks that are in the Build track query.whereEqualTo(”track”,”Build”);

Page 33: Workshop: building your mobile backend with Parse - Droidcon Paris2014

PARSE SOCIAL

Easy User & Session Management

Sign up Improve app

security with ACLsManage user session with “currentUser”

Create Roles Log in & add 3rd party auth

Page 34: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam urna nisi, posuere in magna eget, aliquet luctus eros. Nam metus nisi, tincidunt ac tempor vitae, commodo a nisi. Morbi tincidunt felis lacus, nec congue tortor consectetur id. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed semper dapibus eleifend.

SIGN UP A PERSON

Page 35: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam urna nisi, posuere in magna eget, aliquet luctus eros. Nam metus nisi, tincidunt ac tempor vitae, commodo a nisi. Morbi tincidunt felis lacus, nec congue tortor consectetur id. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed semper dapibus eleifend.

SIGN UP A PERSONParseUser user = new ParseUser();user.setUsername(”janedoe”);user.setPassword(”mypass123”);user.setEmail(”[email protected]”);user.signUpInBackground();

Page 36: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam urna nisi, posuere in magna eget, aliquet luctus eros. Nam metus nisi, tincidunt ac tempor vitae, commodo a nisi. Morbi tincidunt felis lacus, nec congue tortor consectetur id. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed semper dapibus eleifend.

LOG A PERSON IN

Page 37: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam urna nisi, posuere in magna eget, aliquet luctus eros. Nam metus nisi, tincidunt ac tempor vitae, commodo a nisi. Morbi tincidunt felis lacus, nec congue tortor consectetur id. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed semper dapibus eleifend.

LOG A PERSON INParseUser.logInInBackground( ”janedoe”,

”mypass123”, new LogInCallback() {public void done(ParseUser user, ParseException e) {

if (user != null) {// The user is logged in

} else {// Something went wrong; check the ParseException

}}

});

Page 38: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam urna nisi, posuere in magna eget, aliquet luctus eros. Nam metus nisi, tincidunt ac tempor vitae, commodo a nisi. Morbi tincidunt felis lacus, nec congue tortor consectetur id. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed semper dapibus eleifend.

SAVING TO PARSE WITH A CURRENT USERParseObject post = new ParseObject(”Post”);

Page 39: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam urna nisi, posuere in magna eget, aliquet luctus eros. Nam metus nisi, tincidunt ac tempor vitae, commodo a nisi. Morbi tincidunt felis lacus, nec congue tortor consectetur id. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed semper dapibus eleifend.

SAVING TO PARSE WITH A CURRENT USER

post.put(“title”, “Restrict screen orientation”);post.put(“author”, ParseUser.getCurrentUser());post.put(“topic”, “Android”);post.put(“content”, ”How can I make my app work in portrait

orientation only?”);

ParseObject post = new ParseObject(”Post”);

Page 40: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam urna nisi, posuere in magna eget, aliquet luctus eros. Nam metus nisi, tincidunt ac tempor vitae, commodo a nisi. Morbi tincidunt felis lacus, nec congue tortor consectetur id. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed semper dapibus eleifend.

SAVING TO PARSE WITH A CURRENT USER

post.saveInBackground();

// This post is now saved with an ACL; the default is// public read, writes only by the user that saved it

post.put(“title”, “Restrict screen orientation”);post.put(“author”, ParseUser.getCurrentUser());post.put(“topic”, “Android”);post.put(“content”, ”How can I make my app work in portrait

orientation only?”);

ParseObject post = new ParseObject(”Post”);

Page 41: Workshop: building your mobile backend with Parse - Droidcon Paris2014

SAVE A FILEbyte[] data = myPhotoObject.toByteArray();

Page 42: Workshop: building your mobile backend with Parse - Droidcon Paris2014

SAVE A FILE

ParseFile speakerPhoto = new ParseFile(”hector_bw.jpg”, data);speakerPhoto.saveInBackground();

byte[] data = myPhotoObject.toByteArray();

Page 43: Workshop: building your mobile backend with Parse - Droidcon Paris2014

SAVE A FILE

ParseFile speakerPhoto = new ParseFile(”hector_bw.jpg”, data);speakerPhoto.saveInBackground();

ParseObject speaker = new ParseObject(”Speaker”);picture.put(”name”, ”Héctor Ramos”);picture.put(”photo”, speakerPhoto);picture.saveInBackground();

byte[] data = myPhotoObject.toByteArray();

Page 44: Workshop: building your mobile backend with Parse - Droidcon Paris2014

SAVE A FILE

ParseFile speakerPhoto = new ParseFile(”hector_bw.jpg”, data);speakerPhoto.saveInBackground();

ParseObject speaker = new ParseObject(”Speaker”);picture.put(”name”, ”Héctor Ramos”);picture.put(”photo”, speakerPhoto);picture.saveInBackground();

byte[] data = myPhotoObject.toByteArray();

Page 45: Workshop: building your mobile backend with Parse - Droidcon Paris2014

CLOUD CODE

Run custom app code in Parse’s cloud

Run code when objects are saved or deleted

Create custom functions and web hooks

Schedule long-running jobs with Background Jobs

Page 46: Workshop: building your mobile backend with Parse - Droidcon Paris2014

CLOUD MODULES

Easy third-party integration with pre-built modules

Send email Take payments Add SMS to your

app Connect with any RESTful service

using Parse.Cloud.httpRequest

Page 47: Workshop: building your mobile backend with Parse - Droidcon Paris2014

BACKGROUND JOBS

Schedule long-running jobs

For operations that need to be performed regularly

or on command

Longer timeouts— 15 minutes

Trigger from the web UI or REST endpoint

Page 48: Workshop: building your mobile backend with Parse - Droidcon Paris2014

BACKGROUND JOBS

Schedule long-running jobs

For operations that need to be performed regularly

or on command

Longer timeouts— 15 minutes

Trigger from the web UI or REST endpoint

Page 49: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam urna nisi, posuere in magna eget, aliquet luctus eros. Nam metus nisi, tincidunt ac tempor vitae, commodo a nisi. Morbi tincidunt felis lacus, nec congue tortor consectetur id. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed semper dapibus eleifend.

A SIMPLE JOB

Page 50: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam urna nisi, posuere in magna eget, aliquet luctus eros. Nam metus nisi, tincidunt ac tempor vitae, commodo a nisi. Morbi tincidunt felis lacus, nec congue tortor consectetur id. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed semper dapibus eleifend.

A SIMPLE JOBParse.Cloud.job(”lowercaseallthethings”, function (request, status) {

// Set up to modify user dataParse.Cloud.useMasterKey();

// Query for all usersvar query = new Parse.Query(Parse.User);query.each(function(user) {

// Set and save the changeuser.set(”name”, user.name.toLowerCase());return user.save();

}).then(function() {// Set the job’s success and error statuses

status.success(”All users now have lowercase names”);}, function(error) {

status.error(”Job did not complete.”);});

}

Page 51: Workshop: building your mobile backend with Parse - Droidcon Paris2014
Page 52: Workshop: building your mobile backend with Parse - Droidcon Paris2014
Page 53: Workshop: building your mobile backend with Parse - Droidcon Paris2014
Page 54: Workshop: building your mobile backend with Parse - Droidcon Paris2014
Page 55: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Parse Local Datastore

Page 56: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Parse Local Datastore

Page 57: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Parse.enableLocalDatastore();

ParseQuery<ParseObject> query = ParseQuery.getQuery(“GameScore");query.orderByDescending(“score”);query.fromLocalDatastore();query.findInBackground(new FindCallback<ParseObject>() { ...});

Parse Local Datastore

Page 58: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Parse Config

Create and manage configuration variables for your apps from the Parse Dashboard

Page 59: Workshop: building your mobile backend with Parse - Droidcon Paris2014

PARSE PUSH

Page 60: Workshop: building your mobile backend with Parse - Droidcon Paris2014

1 device + 1 install of your app = 1 Installation

Pushes are sent to Installations

ParseInstallation.getCurrentInstallation().saveInBackground();

INSTALLATIONS

Add relationships to objects of interest, e.g. users

Page 61: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Channels vs Queries

Target stable interest groups with channels

PUSH TARGETING

Send pushes to ad-hoc or changing groups by pushing to queries

To push to a query, your Installation class must point

to the class of interest

Page 62: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam urna nisi, posuere in magna eget, aliquet luctus eros. Nam metus nisi, tincidunt ac tempor vitae, commodo a nisi. Morbi tincidunt felis lacus, nec congue tortor consectetur id. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed semper dapibus eleifend.

PUSH TO A CHANNEL

Page 63: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam urna nisi, posuere in magna eget, aliquet luctus eros. Nam metus nisi, tincidunt ac tempor vitae, commodo a nisi. Morbi tincidunt felis lacus, nec congue tortor consectetur id. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed semper dapibus eleifend.

PUSH TO A CHANNELParsePush push = new ParsePush();push.setChannel(”PSGFans”);push.setMessage(”The game starts now on channel 5!”);push.sendInBackground();

Page 64: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam urna nisi, posuere in magna eget, aliquet luctus eros. Nam metus nisi, tincidunt ac tempor vitae, commodo a nisi. Morbi tincidunt felis lacus, nec congue tortor consectetur id. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed semper dapibus eleifend.

PUSH TO A QUERY

Page 65: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam urna nisi, posuere in magna eget, aliquet luctus eros. Nam metus nisi, tincidunt ac tempor vitae, commodo a nisi. Morbi tincidunt felis lacus, nec congue tortor consectetur id. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed semper dapibus eleifend.

PUSH TO A QUERYParseQuery pushQuery = ParseInstallation.getQuery();pushQuery.whereEqualTo(”hasCheckedInToVenue”, true);

ParsePush push = new ParsePush();push.setQuery(pushQuery);push.setMessage(”The keynote is about to start!”);push.sendInBackground();

Page 66: Workshop: building your mobile backend with Parse - Droidcon Paris2014
Page 67: Workshop: building your mobile backend with Parse - Droidcon Paris2014
Page 68: Workshop: building your mobile backend with Parse - Droidcon Paris2014

DEMO TIME!

Page 69: Workshop: building your mobile backend with Parse - Droidcon Paris2014

PARSE ANALYTICS

Page 70: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Measure App Usage

API calls

PARSE ANALYTICS

Burst rates Responses to push notifications

Page 71: Workshop: building your mobile backend with Parse - Droidcon Paris2014
Page 72: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Events + Dimensions

Create your own events and track custom user

behaviour

CUSTOM EVENTS

Slice and dice your data however you choose

Save additional parameters with

dimensions

Page 73: Workshop: building your mobile backend with Parse - Droidcon Paris2014

CUSTOM EVENTS

Page 74: Workshop: building your mobile backend with Parse - Droidcon Paris2014

event: "signedUp"dimensions: {gender: "f",source: "web",friendsUsingApp: "35",wasReferred: "true"

}

CUSTOM EVENTS

Page 75: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam urna nisi, posuere in magna eget, aliquet luctus eros. Nam metus nisi, tincidunt ac tempor vitae, commodo a nisi. Morbi tincidunt felis lacus, nec congue tortor consectetur id. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed semper dapibus eleifend.

CUSTOM EVENTS

Page 76: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam urna nisi, posuere in magna eget, aliquet luctus eros. Nam metus nisi, tincidunt ac tempor vitae, commodo a nisi. Morbi tincidunt felis lacus, nec congue tortor consectetur id. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed semper dapibus eleifend.

CUSTOM EVENTSMap<String, String> dimensions = new HashMap<String, String>();

// Add key-value pairs to be saved alongside eventdimensions.put(”gender”,”f”);dimensions.put(”source”,”web”);// Consider using buckets to meaningfully segment eventsdimensions.put(”friendsUsingApp”,”25-50”);dimensions.put(”wasReferred”,”true”);

ParseAnalytics.trackEvent(”signup”, dimensions);

Page 77: Workshop: building your mobile backend with Parse - Droidcon Paris2014
Page 78: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Knowledge is Power

Is the first level of my game too hard?

CUSTOM EVENTS

Why aren’t people completing purchases

in my app?

How successful was our last push campaign?

Page 79: Workshop: building your mobile backend with Parse - Droidcon Paris2014
Page 80: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Understanding Growth

Page 81: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Understanding Retention

Page 82: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Understanding Retention

Page 83: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Understanding Retention

Page 84: Workshop: building your mobile backend with Parse - Droidcon Paris2014

0

50,000

100,000

150,000

300,000

2011 2012 2013 2014

200,000

250,000

2015

Apps

bui

lt on

Par

se

Page 85: Workshop: building your mobile backend with Parse - Droidcon Paris2014

0

50,000

100,000

150,000

300,000

2011 2012 2013 2014

200,000

250,000

2015

Apps

bui

lt on

Par

se

Page 86: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Over260,000 Apps Built!

0

50,000

100,000

150,000

300,000

2011 2012 2013 2014

200,000

250,000

2015

Apps

bui

lt on

Par

se

Page 87: Workshop: building your mobile backend with Parse - Droidcon Paris2014

180,000new developers this year

Page 88: Workshop: building your mobile backend with Parse - Droidcon Paris2014

New Parse Customers

Page 89: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Pricing

Page 90: Workshop: building your mobile backend with Parse - Droidcon Paris2014

Parse Core Parse Push Parse Analytics

FREE & UNLIMITED

up to 30 requests/sec

($100pcm extra per 10 r/sec extra)

FREE & UNLIMITED

up to 1,000,000 recipients ($0.05 per 1,000 recipients extra)

FREE & UNLIMITED

data points

Page 91: Workshop: building your mobile backend with Parse - Droidcon Paris2014

THANKS, QUESTIONS?