SlideShare a Scribd company logo
Parse.com
Mobile app platform
By John Tubert
Why parse.com?
● Free (to start)
● No server needed
● Easy to use
● Multi-platform
How to get started
1. Create free account
2. Download SDK or blank xcode project
3. Start coding
How to really get started
1. Add framework to project
2. Add import statement to prefix file
a. #import <Parse/Parse.h>
3. Initialize parse on delegate file
a. [Parse setApplicationId:@"" clientKey:@""];
4. Add code to read or write to parse.com
Register/login users
Show LoginAndSignUpDemo
Write
PFObject *addressObject = [PFObject objectWithClassName:@"Addresses"];
[addressObject setObject:@"John Tubert" forKey:@"name"];
[addressObject setObject:@"350 west 39th Street" forKey:@"Address"];
[addressObject setObject:@"New York" forKey:@"City"];
[addressObject setObject:@"NY" forKey:@"State"];
[addressObject setObject:@"10018" forKey:@"Zip"];
[addressObject save];
Count
PFQuery *queryPhotoCount = [PFQuery queryWithClassName:@"Photo"];
[queryPhotoCount whereKey:kPAPPhotoUserKey equalTo:[PFUser
currentUser]];
[queryPhotoCount setCachePolicy:kPFCachePolicyCacheThenNetwork];
[queryPhotoCount countObjectsInBackgroundWithBlock:^(int number,
NSError *error) {
if (!error) {
NSLog(@"count: %i",number);
}
}];
Read
PFQuery *query = [PFQuery queryWithClassName:@"Addresses"];
[query setCachePolicy:kPFCachePolicyCacheThenNetwork];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError
*error) {
if (error) {
NSLog(@"error %@",error);
}else{
NSLog(@"objects %@",objects);
}
}];
Read (with constraints)
PFQuery *query = [PFQuery queryWithClassName:@"Addresses"];
[query whereKey:@"name" containsString:@"John"];
[query setCachePolicy:kPFCachePolicyCacheThenNetwork];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError
*error) {
if (error) {
NSLog(@"error %@",error);
}else{
NSLog(@"objects %@",objects);
}
}];
More constraints
Basic Constraints
- (void)includeKey:(NSString *)key;
- (void)whereKeyExists:(NSString *)key;
- (void)whereKeyDoesNotExist:(NSString *)key;
- (void)whereKey:(NSString *)key equalTo:(id)object;
- (void)whereKey:(NSString *)key lessThan:(id)object;
- (void)whereKey:(NSString *)key lessThanOrEqualTo:(id)object;
- (void)whereKey:(NSString *)key greaterThan:(id)object;
- (void)whereKey:(NSString *)key greaterThanOrEqualTo:(id)object;
- (void)whereKey:(NSString *)key notEqualTo:(id)object;
- (void)whereKey:(NSString *)key containedIn:(NSArray *)array;
- (void)whereKey:(NSString *)key notContainedIn:(NSArray *)array;
Location Constraints
- (void)whereKey:(NSString *)key nearGeoPoint:(PFGeoPoint *)geopoint;
- (void)whereKey:(NSString *)key nearGeoPoint:(PFGeoPoint *)geopoint withinMiles:(double)maxDistance;
- (void)whereKey:(NSString *)key nearGeoPoint:(PFGeoPoint *)geopoint withinKilometers:(double)maxDistance;
- (void)whereKey:(NSString *)key nearGeoPoint:(PFGeoPoint *)geopoint withinRadians:(double)maxDistance;
- (void)whereKey:(NSString *)key withinGeoBoxFromSouthwest:(PFGeoPoint *)southwest toNortheast:(PFGeoPoint *)
northeast;
String Constraints
- (void)whereKey:(NSString *)key matchesRegex:(NSString *)regex;
- (void)whereKey:(NSString *)key matchesRegex:(NSString *)regex modifiers:(NSString *)modifiers;
- (void)whereKey:(NSString *)key containsString:(NSString *)substring;
- (void)whereKey:(NSString *)key hasPrefix:(NSString *)prefix;
- (void)whereKey:(NSString *)key hasSuffix:(NSString *)suffix;
Saving photos
PFObject *photo = [PFObject objectWithClassName:kPAPPhotoClassKey];
[photo setObject:[PFUser currentUser] forKey:kPAPPhotoUserKey];
[photo setObject:self.photoFile forKey:kPAPPhotoPictureKey];
[photo setObject:self.thumbnailFile forKey:kPAPPhotoThumbnailKey];
[photo save];
DEMO
Show ArchUp demo
Demo: using JS API
http://jtubert.com/sketchit/
Server side methods
(AKA: cloud code)
Parse.Cloud.define("hello", function(request, response) {
response.success("Hello Parse world!");
});
Getting started: Cloud code
Install the command line tool:
curl -s https://www.parse.com/downloads/cloud_code/installer.sh | sudo /bin/bash
Create new project:
$ parse new MyCloudCode
Write functions:
Parse.Cloud.define("hello", function(request, response) {
response.success("Hello world!");
});
Deploy code:
$ parse deploy
Call methods from app:
[PFCloud callFunctionInBackground:@"hello" withParameters:@{} block:^(NSString *result, NSError
*error) {
if (!error) {
// result is @"Hello world!"
NSLog(@"%@",result);
}
}];
Questions/
Comments
THANKS

More Related Content

Viewers also liked (19)

PDF
Building native mobile Apps with ReactNative
Samuel Barbosa
 
PDF
Tutorial on how to load images in crystal reports dynamically using visual ba...
Aeric Poon
 
PDF
The Gist of React Native
Darren Cruse
 
PDF
Developing Apps With React Native
Alvaro Viebrantz
 
PDF
Florin React Native Meetup
Sebastiaan de Vries
 
PDF
[React Native Tutorial] Lecture 3: More on ES6/ES2015
Kobkrit Viriyayudhakorn
 
PDF
React native - What, Why, How?
Teerasej Jiraphatchandej
 
PPTX
React Native
Software Infrastructure
 
PDF
React native redux_sharing
Sam Lee
 
PDF
A tour of React Native
Tadeu Zagallo
 
PDF
React Native Introduction: Making Real iOS and Android Mobile App By JavaScript
Kobkrit Viriyayudhakorn
 
PPTX
React Native
Artyom Trityak
 
PDF
Intro to react native
ModusJesus
 
PDF
Workshop 23: ReactJS, React & Redux testing
Visual Engineering
 
PDF
Workshop 22: ReactJS Redux Advanced
Visual Engineering
 
PDF
Workshop 26: React Native - The Native Side
Visual Engineering
 
PDF
Intro To React Native
FITC
 
PDF
React Native for Web
Sam Lee
 
PDF
React Native na globo.com
Guilherme Heynemann Bruzzi
 
Building native mobile Apps with ReactNative
Samuel Barbosa
 
Tutorial on how to load images in crystal reports dynamically using visual ba...
Aeric Poon
 
The Gist of React Native
Darren Cruse
 
Developing Apps With React Native
Alvaro Viebrantz
 
Florin React Native Meetup
Sebastiaan de Vries
 
[React Native Tutorial] Lecture 3: More on ES6/ES2015
Kobkrit Viriyayudhakorn
 
React native - What, Why, How?
Teerasej Jiraphatchandej
 
React native redux_sharing
Sam Lee
 
A tour of React Native
Tadeu Zagallo
 
React Native Introduction: Making Real iOS and Android Mobile App By JavaScript
Kobkrit Viriyayudhakorn
 
React Native
Artyom Trityak
 
Intro to react native
ModusJesus
 
Workshop 23: ReactJS, React & Redux testing
Visual Engineering
 
Workshop 22: ReactJS Redux Advanced
Visual Engineering
 
Workshop 26: React Native - The Native Side
Visual Engineering
 
Intro To React Native
FITC
 
React Native for Web
Sam Lee
 
React Native na globo.com
Guilherme Heynemann Bruzzi
 

Similar to Parse.com (20)

KEY
Introduction to Parse
abeymm
 
PDF
Parse par Nicolas Lauquin
CocoaHeads France
 
PPTX
Introduction to Parse backend for mobile developers
Grigor Yeghiazaryan
 
PDF
iOS App with Parse.com as RESTful Backend
Stefano Zanetti
 
PPT
Persistencia de datos con Parse
Alfonso Alba
 
PPTX
Parsing in ios to create an app
HeaderLabs .
 
PPTX
What's Parse
Tsutomu Ogasawara
 
PDF
Elements for an iOS Backend
Laurent Cerveau
 
KEY
iOSDevCamp 2011 Core Data
Chris Mar
 
PPTX
NYU final project
Daniel Yoon
 
PDF
Developing iOS REST Applications
lmrei
 
PDF
DIY Uber
NSCoder Mexico
 
ZIP
WhereCamp EU talk: iPhone location 101
Michael Dales
 
PPTX
Leveraging parse.com for Speedy Development
Andrew Kozlik
 
PDF
Core Data with Swift 3.0
Korhan Bircan
 
KEY
Introduction to Restkit
petertmarks
 
PDF
Core Location and Map Kit: Bringing Your Own Maps [Voices That Matter: iPhone...
Chris Adamson
 
PPT
iphone presentation
Dhananjay Fartyal
 
KEY
занятие8
Oleg Parinov
 
PPTX
iOS Core location
Richa Jain
 
Introduction to Parse
abeymm
 
Parse par Nicolas Lauquin
CocoaHeads France
 
Introduction to Parse backend for mobile developers
Grigor Yeghiazaryan
 
iOS App with Parse.com as RESTful Backend
Stefano Zanetti
 
Persistencia de datos con Parse
Alfonso Alba
 
Parsing in ios to create an app
HeaderLabs .
 
What's Parse
Tsutomu Ogasawara
 
Elements for an iOS Backend
Laurent Cerveau
 
iOSDevCamp 2011 Core Data
Chris Mar
 
NYU final project
Daniel Yoon
 
Developing iOS REST Applications
lmrei
 
DIY Uber
NSCoder Mexico
 
WhereCamp EU talk: iPhone location 101
Michael Dales
 
Leveraging parse.com for Speedy Development
Andrew Kozlik
 
Core Data with Swift 3.0
Korhan Bircan
 
Introduction to Restkit
petertmarks
 
Core Location and Map Kit: Bringing Your Own Maps [Voices That Matter: iPhone...
Chris Adamson
 
iphone presentation
Dhananjay Fartyal
 
занятие8
Oleg Parinov
 
iOS Core location
Richa Jain
 
Ad

More from John Tubert (8)

PDF
Sibling rivalry tech vs. philosophy on bias in ai
John Tubert
 
PDF
Sibling rivalry tech vs. philosophy on bias & AI
John Tubert
 
PDF
Extreme Danger of bias in Artificial Inteligence
John Tubert
 
PDF
LeapMotion
John Tubert
 
PDF
Sketchio presentation at Parse Developer meetup
John Tubert
 
PDF
Browserless javascript testing
John Tubert
 
PDF
Drawing room experiment
John Tubert
 
PDF
Bunch of random tech things
John Tubert
 
Sibling rivalry tech vs. philosophy on bias in ai
John Tubert
 
Sibling rivalry tech vs. philosophy on bias & AI
John Tubert
 
Extreme Danger of bias in Artificial Inteligence
John Tubert
 
LeapMotion
John Tubert
 
Sketchio presentation at Parse Developer meetup
John Tubert
 
Browserless javascript testing
John Tubert
 
Drawing room experiment
John Tubert
 
Bunch of random tech things
John Tubert
 
Ad

Recently uploaded (20)

PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
July Patch Tuesday
Ivanti
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
July Patch Tuesday
Ivanti
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 

Parse.com

  • 2. Why parse.com? ● Free (to start) ● No server needed ● Easy to use ● Multi-platform
  • 3. How to get started 1. Create free account 2. Download SDK or blank xcode project 3. Start coding
  • 4. How to really get started 1. Add framework to project 2. Add import statement to prefix file a. #import <Parse/Parse.h> 3. Initialize parse on delegate file a. [Parse setApplicationId:@"" clientKey:@""]; 4. Add code to read or write to parse.com
  • 6. Write PFObject *addressObject = [PFObject objectWithClassName:@"Addresses"]; [addressObject setObject:@"John Tubert" forKey:@"name"]; [addressObject setObject:@"350 west 39th Street" forKey:@"Address"]; [addressObject setObject:@"New York" forKey:@"City"]; [addressObject setObject:@"NY" forKey:@"State"]; [addressObject setObject:@"10018" forKey:@"Zip"]; [addressObject save];
  • 7. Count PFQuery *queryPhotoCount = [PFQuery queryWithClassName:@"Photo"]; [queryPhotoCount whereKey:kPAPPhotoUserKey equalTo:[PFUser currentUser]]; [queryPhotoCount setCachePolicy:kPFCachePolicyCacheThenNetwork]; [queryPhotoCount countObjectsInBackgroundWithBlock:^(int number, NSError *error) { if (!error) { NSLog(@"count: %i",number); } }];
  • 8. Read PFQuery *query = [PFQuery queryWithClassName:@"Addresses"]; [query setCachePolicy:kPFCachePolicyCacheThenNetwork]; [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) { if (error) { NSLog(@"error %@",error); }else{ NSLog(@"objects %@",objects); } }];
  • 9. Read (with constraints) PFQuery *query = [PFQuery queryWithClassName:@"Addresses"]; [query whereKey:@"name" containsString:@"John"]; [query setCachePolicy:kPFCachePolicyCacheThenNetwork]; [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) { if (error) { NSLog(@"error %@",error); }else{ NSLog(@"objects %@",objects); } }];
  • 10. More constraints Basic Constraints - (void)includeKey:(NSString *)key; - (void)whereKeyExists:(NSString *)key; - (void)whereKeyDoesNotExist:(NSString *)key; - (void)whereKey:(NSString *)key equalTo:(id)object; - (void)whereKey:(NSString *)key lessThan:(id)object; - (void)whereKey:(NSString *)key lessThanOrEqualTo:(id)object; - (void)whereKey:(NSString *)key greaterThan:(id)object; - (void)whereKey:(NSString *)key greaterThanOrEqualTo:(id)object; - (void)whereKey:(NSString *)key notEqualTo:(id)object; - (void)whereKey:(NSString *)key containedIn:(NSArray *)array; - (void)whereKey:(NSString *)key notContainedIn:(NSArray *)array; Location Constraints - (void)whereKey:(NSString *)key nearGeoPoint:(PFGeoPoint *)geopoint; - (void)whereKey:(NSString *)key nearGeoPoint:(PFGeoPoint *)geopoint withinMiles:(double)maxDistance; - (void)whereKey:(NSString *)key nearGeoPoint:(PFGeoPoint *)geopoint withinKilometers:(double)maxDistance; - (void)whereKey:(NSString *)key nearGeoPoint:(PFGeoPoint *)geopoint withinRadians:(double)maxDistance; - (void)whereKey:(NSString *)key withinGeoBoxFromSouthwest:(PFGeoPoint *)southwest toNortheast:(PFGeoPoint *) northeast; String Constraints - (void)whereKey:(NSString *)key matchesRegex:(NSString *)regex; - (void)whereKey:(NSString *)key matchesRegex:(NSString *)regex modifiers:(NSString *)modifiers; - (void)whereKey:(NSString *)key containsString:(NSString *)substring; - (void)whereKey:(NSString *)key hasPrefix:(NSString *)prefix; - (void)whereKey:(NSString *)key hasSuffix:(NSString *)suffix;
  • 11. Saving photos PFObject *photo = [PFObject objectWithClassName:kPAPPhotoClassKey]; [photo setObject:[PFUser currentUser] forKey:kPAPPhotoUserKey]; [photo setObject:self.photoFile forKey:kPAPPhotoPictureKey]; [photo setObject:self.thumbnailFile forKey:kPAPPhotoThumbnailKey]; [photo save];
  • 13. Demo: using JS API http://jtubert.com/sketchit/
  • 14. Server side methods (AKA: cloud code) Parse.Cloud.define("hello", function(request, response) { response.success("Hello Parse world!"); });
  • 15. Getting started: Cloud code Install the command line tool: curl -s https://www.parse.com/downloads/cloud_code/installer.sh | sudo /bin/bash Create new project: $ parse new MyCloudCode Write functions: Parse.Cloud.define("hello", function(request, response) { response.success("Hello world!"); }); Deploy code: $ parse deploy Call methods from app: [PFCloud callFunctionInBackground:@"hello" withParameters:@{} block:^(NSString *result, NSError *error) { if (!error) { // result is @"Hello world!" NSLog(@"%@",result); } }];