SlideShare a Scribd company logo
ParseThomas Bouldin @inlined
Which is better:

To expend great effort

Or achieve great results?
Making mobile apps is hard
Database REST API
Z
Z
Z
Server
++
+ users
+ security
CachingNetworking
+ +
The fun part!
no no
no
no
no
yes!
Parse: 5 tricks that won YC Hacks
Parse Pillars
Push AnalyticsCore
Parse Core
Storing Data
Parse Data
PFObject is like an NSMutableDictionary in the cloud

PFObject *armor = [PFObject objectWithClassName:@“Armor”];

[armor setObject:@“Shield” forKey:@“name”];

armor[@“price”] = @50;

[armor saveInBackground];
Storing Data
Parse Data
!


Armor	
  *shield	
  =	
  [Armor	
  object]

shield.name	
  =	
  @“shield”;

shield.cost	
  =	
  50;
Can also use like a class:
Fetching Data
Parse Data
PFQuery	
  *query	
  =	
  [Armor	
  query];	
  
[query	
  whereKey:@“name”	
  equalTo:@“shield”];

[query	
  whereKey:@“cost”	
  lessThan:@50];	
  
[query	
  findObjectsInBackgroundWithBlock:

	
  	
  ^(NSArray	
  *objects,	
  NSError	
  *error)	
  {

	
  	
  /*	
  ...	
  */

}];
Signing Up
Parse Social
PFUser	
  *user	
  =	
  [PFUser	
  user];	
  
user.username	
  =	
  @“inlined”;

user.password	
  =	
  @“YC	
  H4cks”;	
  
[user	
  signUpInBackgroundWithBlock:

	
  ^(BOOL	
  success,	
  NSError	
  *error)	
  {

	
  	
  /*	
  ...	
  */

}];
Social Integration
Parse Social
[PFFacebookUtils	
  logInWithPermissions:nil

	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  block:

	
  ^(PFUser	
  *user,	
  NSError	
  *error)	
  {

	
  	
  /*	
  ...	
  */

}];
UI Controls
Parse Social
Replace login code with built-in view

controllers

Fully customizable
Parse Cloud Code
For when server-side code is needed or easier

Trusted execution environment

Data pipeline integration

Third party integration

Hosting static and dynamic resources
Parse Cloud Code
Parse.Cloud.afterSave(

	
  	
  	
  	
  “Message”,	
  function(request)	
  {	
  
	
  	
  	
  	
  Parse.Push.send({

	
  	
  	
  	
  	
  	
  channel:	
  request.object.get(“room”),

	
  	
  	
  	
  	
  	
  data:	
  {

	
  	
  	
  	
  	
  	
  	
  	
  alert:	
  request.object.get(“message”)

	
  	
  	
  	
  	
  	
  }

	
  	
  	
  	
  });

});
Parse Push
Registering
Parse Push
[PFPush	
  storeDeviceToken:deviceToken];	
  
[PFPush	
  subscribeToChannelInBackground:@“hack”];
Sending
Parse Push
PFPush	
  *push	
  =	
  [PFPush	
  push];	
  
push.channel	
  =	
  @“hack”;	
  
push.message	
  =	
  @“Move	
  fast	
  and	
  build	
  things”;	
  
[push	
  sendInBackgroundWithBlock:

	
  	
  ^(BOOL	
  succeeded,	
  NSError	
  *error)	
  {

	
  	
  /*	
  ...	
  */

}];
Parse Analytics
App Opens
Parse Analytics
	
  [PFAnalytics

	
  	
  	
  	
  trackAppOpenedWithLaunchOptions:launchOptions];
Custom Events
Parse Analytics
NSDictionary	
  *dimensions	
  =	
  @{

	
  	
  @“product”:	
  @“pwnies”,

	
  	
  @“location”:	
  @“US-­‐west”,

	
  	
  @“login”:	
  @“Facebook”,

};

[PFAnalytics	
  trackEvent:@“purchase”

	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  dimensions:dimensions];	
  
	
  	
  
Automatic Tracking
Parse Analytics
Automatic Tracking
Parse Analytics
Let’s Build
parse.com/tutorials

parse.com/apps/quickstart
github.com/ParsePlatform/
P
Backup
Access Control
Parse Social
//	
  Automatically	
  own	
  all	
  objects	
  you	
  create	
  but

//	
  allow	
  everyone	
  to	
  read	
  them.

PFACL	
  *acl	
  =	
  [PFACL	
  ACL];

[acl	
  setPublicReadAccess:YES];	
  
[PFACL	
  setDefaultACL:acl

	
  withAccessForCurrentUser:YES]
Logging In
Parse Social
PFUser	
  *user	
  =

	
  	
  [PFUser	
  logInWithUsername:@“inlined”

	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  password:@“YC	
  H4cks”];	
  


//	
  From	
  now	
  on:

PFUser	
  *user	
  =	
  [PFUser	
  currentUser];
Storing Data
Parse Data
Can also use like a class:



@interface	
  Armor	
  :	
  PFObject<PFSubclassing>

//	
  Properties	
  are	
  synthesized	
  with	
  @dynamic

@property	
  (nonatomic)	
  NSString	
  *name;

@property	
  (nonatomic)	
  int	
  price;

@end

More Related Content

What's hot (20)

PPTX
Leveraging parse.com for Speedy Development
Andrew Kozlik
 
PDF
Side by Side with Elasticsearch and Solr
Sematext Group, Inc.
 
PDF
Fun with Python
Narong Intiruk
 
PDF
Elasticsearch in 15 Minutes
Karel Minarik
 
PPTX
How to scraping content from web for location-based mobile app.
Diep Nguyen
 
PDF
Web Crawling Modeling with Scrapy Models #TDC2014
Bruno Rocha
 
PPT
SharePoint Administration with PowerShell
Eric Kraus
 
PDF
Elasticsearch And Ruby [RuPy2012]
Karel Minarik
 
PDF
Introduction to elasticsearch
Florian Hopf
 
PDF
Web Scraping with Python
Paul Schreiber
 
PDF
Elasticsearch (Rubyshift 2013)
Karel Minarik
 
PDF
Firebase_not_really_yohoho
Roman Sachenko
 
PPTX
ElasticSearch - Introduction to Aggregations
enterprisesearchmeetup
 
PPTX
What's Parse
Tsutomu Ogasawara
 
PPTX
Intro to Parse
Tushar Acharya
 
PDF
How to Scrap Any Website's content using ScrapyTutorial of How to scrape (cra...
Anton
 
PPTX
Node collaboration - Exported Resources and PuppetDB
m_richardson
 
PPTX
ElasticSearch for .NET Developers
Ben van Mol
 
PDF
GDG İstanbul Şubat Etkinliği - Sunum
Cüneyt Yeşilkaya
 
PDF
Scrapy workshop
Karthik Ananth
 
Leveraging parse.com for Speedy Development
Andrew Kozlik
 
Side by Side with Elasticsearch and Solr
Sematext Group, Inc.
 
Fun with Python
Narong Intiruk
 
Elasticsearch in 15 Minutes
Karel Minarik
 
How to scraping content from web for location-based mobile app.
Diep Nguyen
 
Web Crawling Modeling with Scrapy Models #TDC2014
Bruno Rocha
 
SharePoint Administration with PowerShell
Eric Kraus
 
Elasticsearch And Ruby [RuPy2012]
Karel Minarik
 
Introduction to elasticsearch
Florian Hopf
 
Web Scraping with Python
Paul Schreiber
 
Elasticsearch (Rubyshift 2013)
Karel Minarik
 
Firebase_not_really_yohoho
Roman Sachenko
 
ElasticSearch - Introduction to Aggregations
enterprisesearchmeetup
 
What's Parse
Tsutomu Ogasawara
 
Intro to Parse
Tushar Acharya
 
How to Scrap Any Website's content using ScrapyTutorial of How to scrape (cra...
Anton
 
Node collaboration - Exported Resources and PuppetDB
m_richardson
 
ElasticSearch for .NET Developers
Ben van Mol
 
GDG İstanbul Şubat Etkinliği - Sunum
Cüneyt Yeşilkaya
 
Scrapy workshop
Karthik Ananth
 

Similar to Parse: 5 tricks that won YC Hacks (20)

PDF
iOS App with Parse.com as RESTful Backend
Stefano Zanetti
 
KEY
Introduction to Parse
abeymm
 
PPT
Persistencia de datos con Parse
Alfonso Alba
 
PPTX
Introduction to Parse backend for mobile developers
Grigor Yeghiazaryan
 
PDF
Parse - a mobile backend platform
Carlotta Tatti
 
PDF
Python Google Cloud Function with CORS
RapidValue
 
PDF
Legacy applications - 4Developes konferencja, Piotr Pasich
Piotr Pasich
 
KEY
Paris js extensions
erwanl
 
PDF
第一次用Parse就深入淺出
Ymow Wu
 
PDF
PesterSec: Using Pester & ScriptAnalyzer to Detect Obfuscated PowerShell
Daniel Bohannon
 
PDF
Beginning icloud development - Cesare Rocchi - WhyMCA
Whymca
 
PDF
Developing iOS REST Applications
lmrei
 
PPTX
PyCon APAC - Django Test Driven Development
Tudor Munteanu
 
KEY
CouchDB on Android
Sven Haiges
 
KEY
solving little problems
removed_e334947d661d520b05c7f698a45590c4
 
PDF
TL; DR: iOS 9R
Kevin Donnelly
 
PDF
Separation of concerns - DPC12
Stephan Hochdörfer
 
PDF
Micro app-framework - NodeLive Boston
Michael Dawson
 
PDF
Micro app-framework
Michael Dawson
 
PDF
Parse.com
John Tubert
 
iOS App with Parse.com as RESTful Backend
Stefano Zanetti
 
Introduction to Parse
abeymm
 
Persistencia de datos con Parse
Alfonso Alba
 
Introduction to Parse backend for mobile developers
Grigor Yeghiazaryan
 
Parse - a mobile backend platform
Carlotta Tatti
 
Python Google Cloud Function with CORS
RapidValue
 
Legacy applications - 4Developes konferencja, Piotr Pasich
Piotr Pasich
 
Paris js extensions
erwanl
 
第一次用Parse就深入淺出
Ymow Wu
 
PesterSec: Using Pester & ScriptAnalyzer to Detect Obfuscated PowerShell
Daniel Bohannon
 
Beginning icloud development - Cesare Rocchi - WhyMCA
Whymca
 
Developing iOS REST Applications
lmrei
 
PyCon APAC - Django Test Driven Development
Tudor Munteanu
 
CouchDB on Android
Sven Haiges
 
TL; DR: iOS 9R
Kevin Donnelly
 
Separation of concerns - DPC12
Stephan Hochdörfer
 
Micro app-framework - NodeLive Boston
Michael Dawson
 
Micro app-framework
Michael Dawson
 
Parse.com
John Tubert
 

More from Thomas Bouldin (6)

PDF
Strange but True: Counterintiutive Paths to Building a Business on APIs
Thomas Bouldin
 
PPTX
Strange but True: Counterintiutive Paths to Building a Business on APIs
Thomas Bouldin
 
PPTX
Twilio and Parse: Rich Experiences in & out of Native Clients
Thomas Bouldin
 
PPTX
Objective-C: Under The Hood
Thomas Bouldin
 
PDF
All About Push
Thomas Bouldin
 
PDF
Don't be a Drag to Refresh
Thomas Bouldin
 
Strange but True: Counterintiutive Paths to Building a Business on APIs
Thomas Bouldin
 
Strange but True: Counterintiutive Paths to Building a Business on APIs
Thomas Bouldin
 
Twilio and Parse: Rich Experiences in & out of Native Clients
Thomas Bouldin
 
Objective-C: Under The Hood
Thomas Bouldin
 
All About Push
Thomas Bouldin
 
Don't be a Drag to Refresh
Thomas Bouldin
 

Recently uploaded (20)

PPTX
Heart Bleed Bug - A case study (Course: Cryptography and Network Security)
Adri Jovin
 
PPTX
Shinkawa Proposal to meet Vibration API670.pptx
AchmadBashori2
 
PPTX
Introduction to Neural Networks and Perceptron Learning Algorithm.pptx
Kayalvizhi A
 
DOCX
8th International Conference on Electrical Engineering (ELEN 2025)
elelijjournal653
 
PDF
Zilliz Cloud Demo for performance and scale
Zilliz
 
DOC
MRRS Strength and Durability of Concrete
CivilMythili
 
PDF
PORTFOLIO Golam Kibria Khan — architect with a passion for thoughtful design...
MasumKhan59
 
PPTX
Mechanical Design of shell and tube heat exchangers as per ASME Sec VIII Divi...
shahveer210504
 
PPTX
GitOps_Without_K8s_Training simple one without k8s
DanialHabibi2
 
PDF
Ethics and Trustworthy AI in Healthcare – Governing Sensitive Data, Profiling...
AlqualsaDIResearchGr
 
PDF
MAD Unit - 1 Introduction of Android IT Department
JappanMavani
 
PPTX
Element 11. ELECTRICITY safety and hazards
merrandomohandas
 
PPTX
Types of Bearing_Specifications_PPT.pptx
PranjulAgrahariAkash
 
PPTX
The Role of Information Technology in Environmental Protectio....pptx
nallamillisriram
 
PPTX
Evaluation and thermal analysis of shell and tube heat exchanger as per requi...
shahveer210504
 
PPTX
Product Development & DevelopmentLecture02.pptx
zeeshanwazir2
 
PDF
Basic_Concepts_in_Clinical_Biochemistry_2018كيمياء_عملي.pdf
AdelLoin
 
DOCX
CS-802 (A) BDH Lab manual IPS Academy Indore
thegodhimself05
 
PDF
Set Relation Function Practice session 24.05.2025.pdf
DrStephenStrange4
 
PDF
Reasons for the succes of MENARD PRESSUREMETER.pdf
majdiamz
 
Heart Bleed Bug - A case study (Course: Cryptography and Network Security)
Adri Jovin
 
Shinkawa Proposal to meet Vibration API670.pptx
AchmadBashori2
 
Introduction to Neural Networks and Perceptron Learning Algorithm.pptx
Kayalvizhi A
 
8th International Conference on Electrical Engineering (ELEN 2025)
elelijjournal653
 
Zilliz Cloud Demo for performance and scale
Zilliz
 
MRRS Strength and Durability of Concrete
CivilMythili
 
PORTFOLIO Golam Kibria Khan — architect with a passion for thoughtful design...
MasumKhan59
 
Mechanical Design of shell and tube heat exchangers as per ASME Sec VIII Divi...
shahveer210504
 
GitOps_Without_K8s_Training simple one without k8s
DanialHabibi2
 
Ethics and Trustworthy AI in Healthcare – Governing Sensitive Data, Profiling...
AlqualsaDIResearchGr
 
MAD Unit - 1 Introduction of Android IT Department
JappanMavani
 
Element 11. ELECTRICITY safety and hazards
merrandomohandas
 
Types of Bearing_Specifications_PPT.pptx
PranjulAgrahariAkash
 
The Role of Information Technology in Environmental Protectio....pptx
nallamillisriram
 
Evaluation and thermal analysis of shell and tube heat exchanger as per requi...
shahveer210504
 
Product Development & DevelopmentLecture02.pptx
zeeshanwazir2
 
Basic_Concepts_in_Clinical_Biochemistry_2018كيمياء_عملي.pdf
AdelLoin
 
CS-802 (A) BDH Lab manual IPS Academy Indore
thegodhimself05
 
Set Relation Function Practice session 24.05.2025.pdf
DrStephenStrange4
 
Reasons for the succes of MENARD PRESSUREMETER.pdf
majdiamz
 

Parse: 5 tricks that won YC Hacks