SlideShare a Scribd company logo
1 of 16
What’s Parse

Tsutomu Ogasawara
https://www.parse.com/
What’s Parse?
•   BaaS for iOS / Android
•   Quick Start / Minimum Configuration
•   Full Stack SDK
•   Rest API / JavaScript SDK
•   Useful Documentations / Tutorials
•   Freemium
Code Examples
Objective-C for iOS
PFObject*post = [PFObjectobjectWithClassName:@"Post"];
[post setObject:@"Hello World"forKey:@"title"];
[post setObject:@"I got Parse working on iOS!"forKey:@"content"];
[post saveInBackground];

Java for Android
ParseObjectpost = new ParseObject("Post");
post.put("title", "Hello World");
post.put("content", "I got Parse working on Android!");
post.saveInBackground();

JavaScript
varPost = Parse.Object.extend("Post");
varpost = new Post();
post.set("title", "Hello World");
post.set("content", "I got Parse working on Android!");
post.save(null, { success: function() {}, error: function() {} );
Structure
                             Data Storage




User Authentication
                                                       Push Notification




              Rest API
                                            iOS SDK
        JavaScript SDK
                                            Android SDK
                                            JavaScript SDK
Functions
•   Data Storage / File Storage
•   Push Notification Gateway
•   User Management
•   Geo Location Support
•   Facebook& Twitter
Data Storage / File Storage
• SQL-like simple Database (PFObject)
   – Schemaless row-column model
   – Working in the background
   – Spreadsheet-like Data browser on parse.com
   – Many ways to retrieve data
• File store (PFFile)
   – File storage up to 10MB per file.
   – Working in the background and get the progress.
   – Examples.
Save a photo
PFObject *photo = [PFObjectobjectWithClassName:@"Photo"];
PFUser *currentUser = [PFUsercurrentUser];
[photo setObject:currentUserforKey:@"user"];
[photo setObject:photoIDforKey:@"photo_id"];
[photo saveInBackgroundWithBlock:^(BOOLsucceeded, NSError *error) {
if( succeeded ) {
    }
    else {
    }
}];


Retrieve photos
PFQuery *query = [PFQueryqueryWithClassName:@"Photo"];
[query orderByDescending:@"updatedAt"];
[query findObjectsInBackgroundWithBlock:
                     ^(NSArray *objects, NSError *error) {
if( ! error ) {
    }
    else {
    }
}];
Push Notification (PFPush)
• Cross platform
  – iOS -> Android / Android ->iOS
  – Broadcast to both OS apps.
• Send from
  – Apps
  – REST API
  – Web console on parse.com
Subscribe push notification channel
PFUser *user = [PFUsercurrentUser];
NSString *channel = [NSStringstringWithFormat:@"user_%@", user.objectId];
[PFPushsubscribeToChannelInBackground:channelblock:
                ^(BOOLsucceeded, NSError *error) {
    ...
}];

Send a notification
PFUser *user = [photoObjectobjectForKey:@"user"];
NSString *channel = [NSStringstringWithFormat:@"user_%@", user.objectId];
NSString *commenter = [currentUser
valueForKeyPath:@"twitter_userdata.screen_name"];
NSString *alert = [NSStringstringWithFormat:
@"%@ さんがコメントしました。", commenter];
NSDictionary *data = [NSDictionarydictionaryWithObjectsAndKeys:
commentObject.objectId, @"comment",
photoObject.objectId, @"photo",
                alert, @"alert",
@"default", @"sound",
nil];
[PFPushsendPushDataToChannelInBackground:channelwithData:data];
User Management (PFUser)
• Original Signup and Login
  – Email address verification
  – Resetting Password
  – User Interfaces
• Login with Facebook& Twitter
• Security
  – Access Control List (PFACL)
  – Role-based Access Control (PFRole)
Geo Location (PFGeoPoint)
• Store a geo location data in PFObject
• Query objects
  – ordered by distance.
  – within miles / km / radians
  – within rectangle from south-west to north-east
• Examples
Facebook& Twitter
• Authentication
• Libralies
  – PF_Facebook which is the wrapper of
    FacebookiOS SDK
  – PF_Twitter which calls Twitter REST API
Facebook login
- (IBAction)pressLoginButton:(id)sender {
NSArray *permissions = [[NSArrayalloc] initWithObjects:
                        @"user_likes", @"read_stream”, nil];
    // Switch Facebook app or open facebook login page in Safari
    [PFFacebookUtilslogInWithPermissions:permissions block:
                          ^(PFUser *user, NSError *error) {
if( user && ! error ) {
         // logged in with Facebook
}
    }];
}


Twitter login
- (IBAction)pressLoginButton:(id)sender {
// Call Twitter login dialog
    [PFTwitterUtilslogInWithBlock:^(PFUser *user, NSError *error) {
if( user && ! error ) {
         // logged in with Twitter
}
    }];
}
Twitter API call with authentication
// generate request object
NSURL *url = [NSURLURLWithString:
@"https://api.twitter.com/1/account/verify_credentials.json"];
NSMutableURLRequest *request = [NSMutableURLRequestrequestWithURL:url];

// sign the request with auth user
PF_Twitter *twitter = [PFTwitterUtilstwitter];
[twitter signRequest:request];

// send request
NSURLResponse *response = nil;
NSError *error = nil;
NSData *data = [NSURLConnectionsendSynchronousRequest:request
returningResponse:&response
error:&error];
if( data ) {
// save user info
NSDictionary *jsonObjects = [NSJSONSerialization
JSONObjectWithData:data
options:NSJSONReadingMutableContainers
error:&error];
}
Thanks!

More Related Content

What's hot

Cloudbase.io MoSync Reload Course
Cloudbase.io MoSync Reload CourseCloudbase.io MoSync Reload Course
Cloudbase.io MoSync Reload Coursecloudbase.io
 
Beeline Firebase talk - Firebase event Jun 2017
Beeline Firebase talk - Firebase event Jun 2017Beeline Firebase talk - Firebase event Jun 2017
Beeline Firebase talk - Firebase event Jun 2017Chetan Padia
 
The effective use of Django ORM
The effective use of Django ORMThe effective use of Django ORM
The effective use of Django ORMYaroslav Muravskyi
 
Search APIs in Spotlight and Safari
Search APIs in Spotlight and SafariSearch APIs in Spotlight and Safari
Search APIs in Spotlight and SafariYusuke Kita
 
Be lazy, be ESI: HTTP caching and Symfony2 @ PHPDay 2011 05-13-2011
 Be lazy, be ESI: HTTP caching and Symfony2 @ PHPDay 2011 05-13-2011 Be lazy, be ESI: HTTP caching and Symfony2 @ PHPDay 2011 05-13-2011
Be lazy, be ESI: HTTP caching and Symfony2 @ PHPDay 2011 05-13-2011Alessandro Nadalin
 
How to make workout app for watch os 2
How to make workout app for watch os 2How to make workout app for watch os 2
How to make workout app for watch os 2Yusuke Kita
 
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHPPHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHPiMasters
 
HTML5 APIs - Where no man has gone before! - Altran
HTML5 APIs - Where no man has gone before! - AltranHTML5 APIs - Where no man has gone before! - Altran
HTML5 APIs - Where no man has gone before! - AltranRobert Nyman
 
Webinar: MongoDB Persistence with Java and Morphia
Webinar: MongoDB Persistence with Java and MorphiaWebinar: MongoDB Persistence with Java and Morphia
Webinar: MongoDB Persistence with Java and MorphiaMongoDB
 
RESTFUL SERVICES MADE EASY: THE EVE REST API FRAMEWORK - Nicola Iarocci - Co...
RESTFUL SERVICES MADE EASY: THE EVE REST API FRAMEWORK -  Nicola Iarocci - Co...RESTFUL SERVICES MADE EASY: THE EVE REST API FRAMEWORK -  Nicola Iarocci - Co...
RESTFUL SERVICES MADE EASY: THE EVE REST API FRAMEWORK - Nicola Iarocci - Co...Codemotion
 

What's hot (20)

Diving into php
Diving into phpDiving into php
Diving into php
 
Html indexed db
Html indexed dbHtml indexed db
Html indexed db
 
Cloudbase.io MoSync Reload Course
Cloudbase.io MoSync Reload CourseCloudbase.io MoSync Reload Course
Cloudbase.io MoSync Reload Course
 
Beeline Firebase talk - Firebase event Jun 2017
Beeline Firebase talk - Firebase event Jun 2017Beeline Firebase talk - Firebase event Jun 2017
Beeline Firebase talk - Firebase event Jun 2017
 
iOS5 NewStuff
iOS5 NewStuffiOS5 NewStuff
iOS5 NewStuff
 
The effective use of Django ORM
The effective use of Django ORMThe effective use of Django ORM
The effective use of Django ORM
 
Search APIs in Spotlight and Safari
Search APIs in Spotlight and SafariSearch APIs in Spotlight and Safari
Search APIs in Spotlight and Safari
 
ABCD firebase
ABCD firebaseABCD firebase
ABCD firebase
 
Be lazy, be ESI: HTTP caching and Symfony2 @ PHPDay 2011 05-13-2011
 Be lazy, be ESI: HTTP caching and Symfony2 @ PHPDay 2011 05-13-2011 Be lazy, be ESI: HTTP caching and Symfony2 @ PHPDay 2011 05-13-2011
Be lazy, be ESI: HTTP caching and Symfony2 @ PHPDay 2011 05-13-2011
 
How to make workout app for watch os 2
How to make workout app for watch os 2How to make workout app for watch os 2
How to make workout app for watch os 2
 
Whats new in iOS5
Whats new in iOS5Whats new in iOS5
Whats new in iOS5
 
Mongo db for C# Developers
Mongo db for C# DevelopersMongo db for C# Developers
Mongo db for C# Developers
 
Micro app-framework
Micro app-frameworkMicro app-framework
Micro app-framework
 
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHPPHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
 
Mongo db for c# developers
Mongo db for c# developersMongo db for c# developers
Mongo db for c# developers
 
Bonjour, iCloud
Bonjour, iCloudBonjour, iCloud
Bonjour, iCloud
 
HTML5 APIs - Where no man has gone before! - Altran
HTML5 APIs - Where no man has gone before! - AltranHTML5 APIs - Where no man has gone before! - Altran
HTML5 APIs - Where no man has gone before! - Altran
 
Webinar: MongoDB Persistence with Java and Morphia
Webinar: MongoDB Persistence with Java and MorphiaWebinar: MongoDB Persistence with Java and Morphia
Webinar: MongoDB Persistence with Java and Morphia
 
RESTFUL SERVICES MADE EASY: THE EVE REST API FRAMEWORK - Nicola Iarocci - Co...
RESTFUL SERVICES MADE EASY: THE EVE REST API FRAMEWORK -  Nicola Iarocci - Co...RESTFUL SERVICES MADE EASY: THE EVE REST API FRAMEWORK -  Nicola Iarocci - Co...
RESTFUL SERVICES MADE EASY: THE EVE REST API FRAMEWORK - Nicola Iarocci - Co...
 
Servlets intro
Servlets introServlets intro
Servlets intro
 

Viewers also liked

CakePHP 事例紹介 @ogaoga
CakePHP 事例紹介 @ogaogaCakePHP 事例紹介 @ogaoga
CakePHP 事例紹介 @ogaogaTsutomu Ogasawara
 
Cutting edge of web technology
Cutting edge of web technologyCutting edge of web technology
Cutting edge of web technologyTsutomu Ogasawara
 
Html5 in Rakuten (at HTML5 Experts Night#1) #html5exp
Html5 in Rakuten (at HTML5 Experts Night#1) #html5expHtml5 in Rakuten (at HTML5 Experts Night#1) #html5exp
Html5 in Rakuten (at HTML5 Experts Night#1) #html5expTsutomu Ogasawara
 
スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向Tsutomu Ogasawara
 
オープンソースを活用したフロントエンド開発の取り組み
オープンソースを活用したフロントエンド開発の取り組みオープンソースを活用したフロントエンド開発の取り組み
オープンソースを活用したフロントエンド開発の取り組みTsutomu Ogasawara
 
楽天の e コマースと HTML5 活用事例
楽天の e コマースと HTML5 活用事例楽天の e コマースと HTML5 活用事例
楽天の e コマースと HTML5 活用事例Tsutomu Ogasawara
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheLeslie Samuel
 

Viewers also liked (8)

CakePHP 事例紹介 @ogaoga
CakePHP 事例紹介 @ogaogaCakePHP 事例紹介 @ogaoga
CakePHP 事例紹介 @ogaoga
 
Cutting edge of web technology
Cutting edge of web technologyCutting edge of web technology
Cutting edge of web technology
 
Html5 in Rakuten (at HTML5 Experts Night#1) #html5exp
Html5 in Rakuten (at HTML5 Experts Night#1) #html5expHtml5 in Rakuten (at HTML5 Experts Night#1) #html5exp
Html5 in Rakuten (at HTML5 Experts Night#1) #html5exp
 
スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向
 
オープンソースを活用したフロントエンド開発の取り組み
オープンソースを活用したフロントエンド開発の取り組みオープンソースを活用したフロントエンド開発の取り組み
オープンソースを活用したフロントエンド開発の取り組み
 
空室検索 Map
空室検索 Map空室検索 Map
空室検索 Map
 
楽天の e コマースと HTML5 活用事例
楽天の e コマースと HTML5 活用事例楽天の e コマースと HTML5 活用事例
楽天の e コマースと HTML5 活用事例
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
 

Similar to What's Parse

Introduction to Parse
Introduction to ParseIntroduction to Parse
Introduction to Parseabeymm
 
Introduction to Parse backend for mobile developers
Introduction to Parse backend for mobile developersIntroduction to Parse backend for mobile developers
Introduction to Parse backend for mobile developersGrigor Yeghiazaryan
 
iOS App with Parse.com as RESTful Backend
iOS App with Parse.com as RESTful BackendiOS App with Parse.com as RESTful Backend
iOS App with Parse.com as RESTful BackendStefano Zanetti
 
Parse: 5 tricks that won YC Hacks
Parse: 5 tricks that won YC HacksParse: 5 tricks that won YC Hacks
Parse: 5 tricks that won YC HacksThomas Bouldin
 
Webエンジニアから見たiOS5
Webエンジニアから見たiOS5Webエンジニアから見たiOS5
Webエンジニアから見たiOS5Satoshi Asano
 
Developing iOS REST Applications
Developing iOS REST ApplicationsDeveloping iOS REST Applications
Developing iOS REST Applicationslmrei
 
Meetup uikit programming
Meetup uikit programmingMeetup uikit programming
Meetup uikit programmingjoaopmaia
 
Persistencia de datos con Parse
Persistencia de datos con ParsePersistencia de datos con Parse
Persistencia de datos con ParseAlfonso Alba
 
Parse London Meetup - Cloud Code Tips & Tricks
Parse London Meetup - Cloud Code Tips & TricksParse London Meetup - Cloud Code Tips & Tricks
Parse London Meetup - Cloud Code Tips & TricksHector Ramos
 
Leveraging parse.com for Speedy Development
Leveraging parse.com for Speedy DevelopmentLeveraging parse.com for Speedy Development
Leveraging parse.com for Speedy DevelopmentAndrew Kozlik
 
Saving Time And Effort With QuickBase Api - Sergio Haro
Saving Time And Effort With QuickBase Api - Sergio HaroSaving Time And Effort With QuickBase Api - Sergio Haro
Saving Time And Effort With QuickBase Api - Sergio HaroQuickBase, Inc.
 
iOS 2 - The practical Stuff
iOS 2 - The practical StuffiOS 2 - The practical Stuff
iOS 2 - The practical StuffPetr Dvorak
 
Legacy applications - 4Developes konferencja, Piotr Pasich
Legacy applications  - 4Developes konferencja, Piotr PasichLegacy applications  - 4Developes konferencja, Piotr Pasich
Legacy applications - 4Developes konferencja, Piotr PasichPiotr Pasich
 
Rapid Application Development with SwiftUI and Firebase
Rapid Application Development with SwiftUI and FirebaseRapid Application Development with SwiftUI and Firebase
Rapid Application Development with SwiftUI and FirebasePeter Friese
 
Great Developers Steal
Great Developers StealGreat Developers Steal
Great Developers StealBen Scofield
 
WordPress as the Backbone(.js)
WordPress as the Backbone(.js)WordPress as the Backbone(.js)
WordPress as the Backbone(.js)Beau Lebens
 
Full stack development with node and NoSQL - All Things Open - October 2017
Full stack development with node and NoSQL - All Things Open - October 2017Full stack development with node and NoSQL - All Things Open - October 2017
Full stack development with node and NoSQL - All Things Open - October 2017Matthew Groves
 
Full Stack Development with Node.js and NoSQL
Full Stack Development with Node.js and NoSQLFull Stack Development with Node.js and NoSQL
Full Stack Development with Node.js and NoSQLAll Things Open
 

Similar to What's Parse (20)

Introduction to Parse
Introduction to ParseIntroduction to Parse
Introduction to Parse
 
Introduction to Parse backend for mobile developers
Introduction to Parse backend for mobile developersIntroduction to Parse backend for mobile developers
Introduction to Parse backend for mobile developers
 
iOS App with Parse.com as RESTful Backend
iOS App with Parse.com as RESTful BackendiOS App with Parse.com as RESTful Backend
iOS App with Parse.com as RESTful Backend
 
Parse: 5 tricks that won YC Hacks
Parse: 5 tricks that won YC HacksParse: 5 tricks that won YC Hacks
Parse: 5 tricks that won YC Hacks
 
Webエンジニアから見たiOS5
Webエンジニアから見たiOS5Webエンジニアから見たiOS5
Webエンジニアから見たiOS5
 
Developing iOS REST Applications
Developing iOS REST ApplicationsDeveloping iOS REST Applications
Developing iOS REST Applications
 
Meetup uikit programming
Meetup uikit programmingMeetup uikit programming
Meetup uikit programming
 
Persistencia de datos con Parse
Persistencia de datos con ParsePersistencia de datos con Parse
Persistencia de datos con Parse
 
Parse London Meetup - Cloud Code Tips & Tricks
Parse London Meetup - Cloud Code Tips & TricksParse London Meetup - Cloud Code Tips & Tricks
Parse London Meetup - Cloud Code Tips & Tricks
 
Leveraging parse.com for Speedy Development
Leveraging parse.com for Speedy DevelopmentLeveraging parse.com for Speedy Development
Leveraging parse.com for Speedy Development
 
занятие8
занятие8занятие8
занятие8
 
Saving Time And Effort With QuickBase Api - Sergio Haro
Saving Time And Effort With QuickBase Api - Sergio HaroSaving Time And Effort With QuickBase Api - Sergio Haro
Saving Time And Effort With QuickBase Api - Sergio Haro
 
iOS 2 - The practical Stuff
iOS 2 - The practical StuffiOS 2 - The practical Stuff
iOS 2 - The practical Stuff
 
Parse par Nicolas Lauquin
Parse par Nicolas LauquinParse par Nicolas Lauquin
Parse par Nicolas Lauquin
 
Legacy applications - 4Developes konferencja, Piotr Pasich
Legacy applications  - 4Developes konferencja, Piotr PasichLegacy applications  - 4Developes konferencja, Piotr Pasich
Legacy applications - 4Developes konferencja, Piotr Pasich
 
Rapid Application Development with SwiftUI and Firebase
Rapid Application Development with SwiftUI and FirebaseRapid Application Development with SwiftUI and Firebase
Rapid Application Development with SwiftUI and Firebase
 
Great Developers Steal
Great Developers StealGreat Developers Steal
Great Developers Steal
 
WordPress as the Backbone(.js)
WordPress as the Backbone(.js)WordPress as the Backbone(.js)
WordPress as the Backbone(.js)
 
Full stack development with node and NoSQL - All Things Open - October 2017
Full stack development with node and NoSQL - All Things Open - October 2017Full stack development with node and NoSQL - All Things Open - October 2017
Full stack development with node and NoSQL - All Things Open - October 2017
 
Full Stack Development with Node.js and NoSQL
Full Stack Development with Node.js and NoSQLFull Stack Development with Node.js and NoSQL
Full Stack Development with Node.js and NoSQL
 

Recently uploaded

unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 

Recently uploaded (20)

unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 

What's Parse

  • 3. What’s Parse? • BaaS for iOS / Android • Quick Start / Minimum Configuration • Full Stack SDK • Rest API / JavaScript SDK • Useful Documentations / Tutorials • Freemium
  • 4. Code Examples Objective-C for iOS PFObject*post = [PFObjectobjectWithClassName:@"Post"]; [post setObject:@"Hello World"forKey:@"title"]; [post setObject:@"I got Parse working on iOS!"forKey:@"content"]; [post saveInBackground]; Java for Android ParseObjectpost = new ParseObject("Post"); post.put("title", "Hello World"); post.put("content", "I got Parse working on Android!"); post.saveInBackground(); JavaScript varPost = Parse.Object.extend("Post"); varpost = new Post(); post.set("title", "Hello World"); post.set("content", "I got Parse working on Android!"); post.save(null, { success: function() {}, error: function() {} );
  • 5. Structure Data Storage User Authentication Push Notification Rest API iOS SDK JavaScript SDK Android SDK JavaScript SDK
  • 6. Functions • Data Storage / File Storage • Push Notification Gateway • User Management • Geo Location Support • Facebook& Twitter
  • 7. Data Storage / File Storage • SQL-like simple Database (PFObject) – Schemaless row-column model – Working in the background – Spreadsheet-like Data browser on parse.com – Many ways to retrieve data • File store (PFFile) – File storage up to 10MB per file. – Working in the background and get the progress. – Examples.
  • 8. Save a photo PFObject *photo = [PFObjectobjectWithClassName:@"Photo"]; PFUser *currentUser = [PFUsercurrentUser]; [photo setObject:currentUserforKey:@"user"]; [photo setObject:photoIDforKey:@"photo_id"]; [photo saveInBackgroundWithBlock:^(BOOLsucceeded, NSError *error) { if( succeeded ) { } else { } }]; Retrieve photos PFQuery *query = [PFQueryqueryWithClassName:@"Photo"]; [query orderByDescending:@"updatedAt"]; [query findObjectsInBackgroundWithBlock: ^(NSArray *objects, NSError *error) { if( ! error ) { } else { } }];
  • 9. Push Notification (PFPush) • Cross platform – iOS -> Android / Android ->iOS – Broadcast to both OS apps. • Send from – Apps – REST API – Web console on parse.com
  • 10. Subscribe push notification channel PFUser *user = [PFUsercurrentUser]; NSString *channel = [NSStringstringWithFormat:@"user_%@", user.objectId]; [PFPushsubscribeToChannelInBackground:channelblock: ^(BOOLsucceeded, NSError *error) { ... }]; Send a notification PFUser *user = [photoObjectobjectForKey:@"user"]; NSString *channel = [NSStringstringWithFormat:@"user_%@", user.objectId]; NSString *commenter = [currentUser valueForKeyPath:@"twitter_userdata.screen_name"]; NSString *alert = [NSStringstringWithFormat: @"%@ さんがコメントしました。", commenter]; NSDictionary *data = [NSDictionarydictionaryWithObjectsAndKeys: commentObject.objectId, @"comment", photoObject.objectId, @"photo", alert, @"alert", @"default", @"sound", nil]; [PFPushsendPushDataToChannelInBackground:channelwithData:data];
  • 11. User Management (PFUser) • Original Signup and Login – Email address verification – Resetting Password – User Interfaces • Login with Facebook& Twitter • Security – Access Control List (PFACL) – Role-based Access Control (PFRole)
  • 12. Geo Location (PFGeoPoint) • Store a geo location data in PFObject • Query objects – ordered by distance. – within miles / km / radians – within rectangle from south-west to north-east • Examples
  • 13. Facebook& Twitter • Authentication • Libralies – PF_Facebook which is the wrapper of FacebookiOS SDK – PF_Twitter which calls Twitter REST API
  • 14. Facebook login - (IBAction)pressLoginButton:(id)sender { NSArray *permissions = [[NSArrayalloc] initWithObjects: @"user_likes", @"read_stream”, nil]; // Switch Facebook app or open facebook login page in Safari [PFFacebookUtilslogInWithPermissions:permissions block: ^(PFUser *user, NSError *error) { if( user && ! error ) { // logged in with Facebook } }]; } Twitter login - (IBAction)pressLoginButton:(id)sender { // Call Twitter login dialog [PFTwitterUtilslogInWithBlock:^(PFUser *user, NSError *error) { if( user && ! error ) { // logged in with Twitter } }]; }
  • 15. Twitter API call with authentication // generate request object NSURL *url = [NSURLURLWithString: @"https://api.twitter.com/1/account/verify_credentials.json"]; NSMutableURLRequest *request = [NSMutableURLRequestrequestWithURL:url]; // sign the request with auth user PF_Twitter *twitter = [PFTwitterUtilstwitter]; [twitter signRequest:request]; // send request NSURLResponse *response = nil; NSError *error = nil; NSData *data = [NSURLConnectionsendSynchronousRequest:request returningResponse:&response error:&error]; if( data ) { // save user info NSDictionary *jsonObjects = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error]; }