SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Downloaden Sie, um offline zu lesen
PHYSICAL SERVERS
LOAD BALANCING
DATABASE BINDINGS
RESTful API
ROUTING
MIDDLEWARE
APP SECURITY
APP BUSINESS LOGIC
NETWORKING
CACHING
DATA MODELS
USER SESSIONS
SOCIAL
PUSH NOTIFICATIONS
FILES
UI BINDINGS
PHYSICAL SERVERS
LOAD BALANCING
DATABASE BINDINGS
RESTful API
ROUTING
MIDDLEWARE
APP SECURITY
APP BUSINESS LOGIC
NETWORKING
CACHING
DATA MODELS
USER SESSIONS
SOCIAL
PUSH NOTIFICATIONS
FILES
UI BINDINGS
YOUR APP
PARSE
YOUR APP
Parse Core Parse Push Parse Analytics
Parse Core
Your data in the cloud
Title
Time
Track
Key Value
title “Getting Started with Parse
track “Track 1”
time September 5, 2013 12:45 PM +0700
Talk
Parse Data
talk.saveInBackground();
talk.put(“title”, “Getting Started with Parse”);!
talk.put(“track”, “Track 1”);!
talk.put(“time”, talkDate); // Date
ParseObject talk = new ParseObject(”Talk”);
Key Value
title “Getting Started with Parse
track “Track 1”
time September 5, 2013 12:45 PM +0700
Talk
Creating and Saving an Object
ParseQuery<ParseObject> query = ParseQuery.getQuery(”Talk”);
query.findInBackground(new FindCallback<ParseObject>(){!
public void done(List<ParseObject> talkList, ParseException e) {!
if (e == null) {!
// We have a list of all the Basic track talks!
} else {!
// Something went wrong; check the ParseException!
}!
}
}
// Find only the talks that are in the Basic track!
query.whereEqualTo(”track”,”basic”);
Getting a List of Objects
byte[] data = myPhotoObject.toByteArray();
ParseFile image = new ParseFile(”Parse-2.jpg”, data);!
image.saveInBackground();
ParseObject picture = new ParseObject(”Picture”);!
picture.put(“title”, “Red Hot Chili Peppers concert”);!
picture.put(“image”, image);!
picture.saveInBackground();
Saving Files
Easy User Management
Parse Social
•ParseUsers make it simple to:

• Sign up

• Log in

• Manage user session with “currentUser”

• Create Roles in your app

• Improve app security with ACLs

• Integrate with Facebook and Twitter
ParseUser.logInInBackground( “janedoe”, !
“mypassword123”, new LogInCallback() {!
public void done(ParseUser user, ParseException e) {!
if (user != null) {!
// The user is logged in!
} else {!
// Something went wrong; check the ParseException!
}!
}!
});
Sign up
Log in
ParseUser
ParseUser user = new ParseUser();!
user.setUsername(“janedoe”);!
user.setPassword(“mypassword123”);!
user.setEmail(“janedoe@fb.com”);!
user.signUpInBackground();
ParseTwitterUtils.link(user, this, new SaveCallback() {!
@Override!
public void done(ParseException e) {!
if (ParseTwitterUtils.isLinked(user)) {!
// The user added their Twitter account!
}!
}!
};
Twitter
Link to Social Networks
ParseFacebookUtils.link(user, this, new SaveCallback() {!
@Override!
public void done(ParseException e) {!
if (ParseFacebookUtils.isLinked(user)) {!
// The user added their Facebook account!
}!
}!
};
Facebook
•Background Jobs

•For long running jobs

•Can be scheduled

Run custom app code in the Parse Cloud
Cloud Code
•Running Code when Objects are Saved or Deleted

•Cloud functions & custom webhooks
A Simple Background Job
Parse.Cloud.job(“userMigration”, function (request, status) {!
// Set up to modify user data	

   Parse.Cloud.useMasterKey();!
// Query for all users!
var query = new Parse.Query(Parse.User);!
query.each(function(user) {!
// Set and save the change!
user.set(“plan”, request.params.plan);!
return user.save();	

   }).then(function() {!
// Set the job’s success status!
status.success(“Migration completed successfully.”);	

   }, function(error) {	

     // Set the job’s error status	

     status.error(“Uh oh, something went wrong.”);	

   });	

});
Integrate with virtually any third-party service
•Parse Image Module

• Resize, crop, scale

• Change image format
•User Session Module

• For server-side apps 

• Manage user session
across pages
Cloud Modules
•Send text messages, emails, or accept payments

•Connect to services with Parse.Cloud.httpRequest
Parse Local Datastore
Parse Push
ParseInstallation.getCurrentInstallation().saveInBackground();
• Pushes are sent to Installations

•1 device + 1 install of your app = 1 Installation

• Add relationships to objects of interest, e.g. current User
Push Notifications
Installations
ParsePush push = new ParsePush();!
push.setChannel(“Giants”);!
push.setMessage(“The game starts in 5!”);!
push.sendInBackground();
Push to a Channel
Subscribe users by interest or category
Find users who match particular criteria
Push to a Query
ParseQuery pushQuery = ParseInstallation.getQuery();!
pushQuery.whereEqualTo(“isFacebookEmployee”, true);!
!
!
ParsePush push = new ParsePush();!
push.setQuery(pushQuery);!
push.setMessage(“Good afternoon, Facebook!”);!
push.sendInBackground();
Parse Analytics
Parse Analytics
Measure App Usage

• API calls

• App open rates

• Push campaigns

• Custom events
Track Any Data Point In Real Time
The Basics: Requests
event: "signedUp"!
dimensions: {!
gender: "f",!
source: "web",!
friendsUsingApp: "35",!
wasReferred: "true"!
}
• Note: 

•Each event can have a maximum of 4 dimensions

•Dimensions must be strings
Dive Deeper: Custom Analytics
•Save a free-form event with dimensions for segmenting results
Understanding Growth
Understanding Retention
Understanding Retention
Understanding Retention
!
Over260,000AppsBuilt!
0
50,000
100,000
150,000
300,000
2011 2012 2013 2014
200,000
250,000
2015
AppsbuiltonParse
140,000new developers this year
New Parse Customers
Parse Core Parse Push Parse Analytics
UNLIMITED
up to 30 requests/sec
UNLIMITED
up to 1,000,000 recipients
UNLIMITED
data points
Thanks - Questions?

Weitere ähnliche Inhalte

Was ist angesagt?

Search APIs in Spotlight and Safari
Search APIs in Spotlight and SafariSearch APIs in Spotlight and Safari
Search APIs in Spotlight and Safari
Yusuke Kita
 

Was ist angesagt? (20)

Using OpenStack With Fog
Using OpenStack With FogUsing OpenStack With Fog
Using OpenStack With Fog
 
Hacking the Mesh: Extending Istio with WebAssembly Modules | DevNation Tech Talk
Hacking the Mesh: Extending Istio with WebAssembly Modules | DevNation Tech TalkHacking the Mesh: Extending Istio with WebAssembly Modules | DevNation Tech Talk
Hacking the Mesh: Extending Istio with WebAssembly Modules | DevNation Tech Talk
 
Azure Durable Functions (2018-06-13)
Azure Durable Functions (2018-06-13)Azure Durable Functions (2018-06-13)
Azure Durable Functions (2018-06-13)
 
Lecture 11 Firebase overview
Lecture 11 Firebase overviewLecture 11 Firebase overview
Lecture 11 Firebase overview
 
Advanced Durable Functions - Serverless Meetup Tokyo - Feb 2018
Advanced Durable Functions - Serverless Meetup Tokyo - Feb 2018Advanced Durable Functions - Serverless Meetup Tokyo - Feb 2018
Advanced Durable Functions - Serverless Meetup Tokyo - Feb 2018
 
Search APIs in Spotlight and Safari
Search APIs in Spotlight and SafariSearch APIs in Spotlight and Safari
Search APIs in Spotlight and Safari
 
Server Side Swift with Swag
Server Side Swift with SwagServer Side Swift with Swag
Server Side Swift with Swag
 
(APP306) Using AWS CloudFormation for Deployment and Management at Scale | AW...
(APP306) Using AWS CloudFormation for Deployment and Management at Scale | AW...(APP306) Using AWS CloudFormation for Deployment and Management at Scale | AW...
(APP306) Using AWS CloudFormation for Deployment and Management at Scale | AW...
 
Leveraging parse.com for Speedy Development
Leveraging parse.com for Speedy DevelopmentLeveraging parse.com for Speedy Development
Leveraging parse.com for Speedy Development
 
Intro to fog and openstack jp
Intro to fog and openstack jpIntro to fog and openstack jp
Intro to fog and openstack jp
 
Angular 4 with firebase
Angular 4 with firebaseAngular 4 with firebase
Angular 4 with firebase
 
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
 
Integrate CI/CD Pipelines with Jira Software Cloud
Integrate CI/CD Pipelines with Jira Software CloudIntegrate CI/CD Pipelines with Jira Software Cloud
Integrate CI/CD Pipelines with Jira Software Cloud
 
第一次用Parse就深入淺出
第一次用Parse就深入淺出第一次用Parse就深入淺出
第一次用Parse就深入淺出
 
Zero to Sixty: AWS Elastic Beanstalk (DMG204) | AWS re:Invent 2013
Zero to Sixty: AWS Elastic Beanstalk (DMG204) | AWS re:Invent 2013Zero to Sixty: AWS Elastic Beanstalk (DMG204) | AWS re:Invent 2013
Zero to Sixty: AWS Elastic Beanstalk (DMG204) | AWS re:Invent 2013
 
(DEV307) Introduction to Version 3 of the AWS SDK for Python (Boto) | AWS re:...
(DEV307) Introduction to Version 3 of the AWS SDK for Python (Boto) | AWS re:...(DEV307) Introduction to Version 3 of the AWS SDK for Python (Boto) | AWS re:...
(DEV307) Introduction to Version 3 of the AWS SDK for Python (Boto) | AWS re:...
 
MongoDB.local Berlin: App development in a Serverless World
MongoDB.local Berlin: App development in a Serverless WorldMongoDB.local Berlin: App development in a Serverless World
MongoDB.local Berlin: App development in a Serverless World
 
Going Offline with Gears And GWT
Going Offline with Gears And GWTGoing Offline with Gears And GWT
Going Offline with Gears And GWT
 
Azure Large Scale Deployments - Tales from the Trenches
Azure Large Scale Deployments - Tales from the TrenchesAzure Large Scale Deployments - Tales from the Trenches
Azure Large Scale Deployments - Tales from the Trenches
 
Tips for Angular Applications
Tips for Angular ApplicationsTips for Angular Applications
Tips for Angular Applications
 

Ähnlich wie Building Android apps with Parse

WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
Fabio Franzini
 

Ähnlich wie Building Android apps with Parse (20)

Reaching out from ADF Mobile (ODTUG KScope 2014)
Reaching out from ADF Mobile (ODTUG KScope 2014)Reaching out from ADF Mobile (ODTUG KScope 2014)
Reaching out from ADF Mobile (ODTUG KScope 2014)
 
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
 
Spring 3 - An Introduction
Spring 3 - An IntroductionSpring 3 - An Introduction
Spring 3 - An Introduction
 
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
 
Vertx - Reactive & Distributed
Vertx - Reactive & DistributedVertx - Reactive & Distributed
Vertx - Reactive & Distributed
 
Always on! Or not?
Always on! Or not?Always on! Or not?
Always on! Or not?
 
Azure full
Azure fullAzure full
Azure full
 
CCI2018 - Automatizzare la creazione di risorse con ARM template e PowerShell
CCI2018 - Automatizzare la creazione di risorse con ARM template e PowerShellCCI2018 - Automatizzare la creazione di risorse con ARM template e PowerShell
CCI2018 - Automatizzare la creazione di risorse con ARM template e PowerShell
 
Zero to Sixty: AWS CloudFormation (DMG201) | AWS re:Invent 2013
Zero to Sixty: AWS CloudFormation (DMG201) | AWS re:Invent 2013Zero to Sixty: AWS CloudFormation (DMG201) | AWS re:Invent 2013
Zero to Sixty: AWS CloudFormation (DMG201) | AWS re:Invent 2013
 
Building APIs in an easy way using API Platform
Building APIs in an easy way using API PlatformBuilding APIs in an easy way using API Platform
Building APIs in an easy way using API Platform
 
Gwt.create
Gwt.createGwt.create
Gwt.create
 
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
 
Building Web Apps with Express
Building Web Apps with ExpressBuilding Web Apps with Express
Building Web Apps with Express
 
Spring 3 - Der dritte Frühling
Spring 3 - Der dritte FrühlingSpring 3 - Der dritte Frühling
Spring 3 - Der dritte Frühling
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
 
Cloudbase.io MoSync Reload Course
Cloudbase.io MoSync Reload CourseCloudbase.io MoSync Reload Course
Cloudbase.io MoSync Reload Course
 
Intro To webOS
Intro To webOSIntro To webOS
Intro To webOS
 
Relevance trilogy may dream be with you! (dec17)
Relevance trilogy  may dream be with you! (dec17)Relevance trilogy  may dream be with you! (dec17)
Relevance trilogy may dream be with you! (dec17)
 
Developing For Multiple Environments on SharePoint Online
Developing For Multiple Environments on SharePoint OnlineDeveloping For Multiple Environments on SharePoint Online
Developing For Multiple Environments on SharePoint Online
 

Mehr von DroidConTLV

Mehr von DroidConTLV (20)

Mobile Development in the Information Age - Yossi Elkrief, Nike
Mobile Development in the Information Age - Yossi Elkrief, NikeMobile Development in the Information Age - Yossi Elkrief, Nike
Mobile Development in the Information Age - Yossi Elkrief, Nike
 
Doing work in the background - Darryn Campbell, Zebra Technologies
Doing work in the background - Darryn Campbell, Zebra TechnologiesDoing work in the background - Darryn Campbell, Zebra Technologies
Doing work in the background - Darryn Campbell, Zebra Technologies
 
No more video loss - Alex Rivkin, Motorola Solutions
No more video loss - Alex Rivkin, Motorola SolutionsNo more video loss - Alex Rivkin, Motorola Solutions
No more video loss - Alex Rivkin, Motorola Solutions
 
Mobile at Scale: from startup to a big company - Dor Samet, Booking.com
Mobile at Scale: from startup to a big company - Dor Samet, Booking.comMobile at Scale: from startup to a big company - Dor Samet, Booking.com
Mobile at Scale: from startup to a big company - Dor Samet, Booking.com
 
LiveData on Steroids - Giora Shevach + Shahar Ben Moshe, Climacell
LiveData on Steroids - Giora Shevach + Shahar Ben Moshe, ClimacellLiveData on Steroids - Giora Shevach + Shahar Ben Moshe, Climacell
LiveData on Steroids - Giora Shevach + Shahar Ben Moshe, Climacell
 
MVVM In real life - Lea Cohen Tannoudji, Lightricks
MVVM In real life - Lea Cohen Tannoudji, LightricksMVVM In real life - Lea Cohen Tannoudji, Lightricks
MVVM In real life - Lea Cohen Tannoudji, Lightricks
 
Best Practices for Using Mobile SDKs - Lilach Wagner, SafeDK (AppLovin)
Best Practices for Using Mobile SDKs - Lilach Wagner, SafeDK (AppLovin)Best Practices for Using Mobile SDKs - Lilach Wagner, SafeDK (AppLovin)
Best Practices for Using Mobile SDKs - Lilach Wagner, SafeDK (AppLovin)
 
Building Apps with Flutter - Hillel Coren, Invoice Ninja
Building Apps with Flutter - Hillel Coren, Invoice NinjaBuilding Apps with Flutter - Hillel Coren, Invoice Ninja
Building Apps with Flutter - Hillel Coren, Invoice Ninja
 
New Android Project: The Most Important Decisions - Vasiliy Zukanov
New Android Project: The Most Important Decisions - Vasiliy ZukanovNew Android Project: The Most Important Decisions - Vasiliy Zukanov
New Android Project: The Most Important Decisions - Vasiliy Zukanov
 
Designing a Design System - Shai Mishali, Gett
Designing a Design System - Shai Mishali, GettDesigning a Design System - Shai Mishali, Gett
Designing a Design System - Shai Mishali, Gett
 
The Mighty Power of the Accessibility Service - Guy Griv, Pepper
The Mighty Power of the Accessibility Service - Guy Griv, PepperThe Mighty Power of the Accessibility Service - Guy Griv, Pepper
The Mighty Power of the Accessibility Service - Guy Griv, Pepper
 
Kotlin Multiplatform in Action - Alexandr Pogrebnyak - IceRockDev
Kotlin Multiplatform in Action - Alexandr Pogrebnyak - IceRockDevKotlin Multiplatform in Action - Alexandr Pogrebnyak - IceRockDev
Kotlin Multiplatform in Action - Alexandr Pogrebnyak - IceRockDev
 
Flutter State Management - Moti Bartov, Tikal
Flutter State Management - Moti Bartov, TikalFlutter State Management - Moti Bartov, Tikal
Flutter State Management - Moti Bartov, Tikal
 
Reactive UI in android - Gil Goldzweig Goldbaum, 10bis
Reactive UI in android - Gil Goldzweig Goldbaum, 10bisReactive UI in android - Gil Goldzweig Goldbaum, 10bis
Reactive UI in android - Gil Goldzweig Goldbaum, 10bis
 
Fun with flutter animations - Divyanshu Bhargava, GoHighLevel
Fun with flutter animations - Divyanshu Bhargava, GoHighLevelFun with flutter animations - Divyanshu Bhargava, GoHighLevel
Fun with flutter animations - Divyanshu Bhargava, GoHighLevel
 
DroidconTLV 2019
DroidconTLV 2019DroidconTLV 2019
DroidconTLV 2019
 
Ok google, it's time to bot! - Hadar Franco, Albert + Stav Levi, Monday
Ok google, it's time to bot! - Hadar Franco, Albert + Stav Levi, MondayOk google, it's time to bot! - Hadar Franco, Albert + Stav Levi, Monday
Ok google, it's time to bot! - Hadar Franco, Albert + Stav Levi, Monday
 
Introduction to React Native - Lev Vidrak, Wix
Introduction to React Native - Lev Vidrak, WixIntroduction to React Native - Lev Vidrak, Wix
Introduction to React Native - Lev Vidrak, Wix
 
Bang-Bang, you have been hacked - Yonatan Levin, KolGene
Bang-Bang, you have been hacked - Yonatan Levin, KolGeneBang-Bang, you have been hacked - Yonatan Levin, KolGene
Bang-Bang, you have been hacked - Yonatan Levin, KolGene
 
Educating your app – adding ML edge to your apps - Maoz Tamir
Educating your app – adding ML edge to your apps - Maoz TamirEducating your app – adding ML edge to your apps - Maoz Tamir
Educating your app – adding ML edge to your apps - Maoz Tamir
 

Kürzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Kürzlich hochgeladen (20)

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 

Building Android apps with Parse

  • 1.
  • 2. PHYSICAL SERVERS LOAD BALANCING DATABASE BINDINGS RESTful API ROUTING MIDDLEWARE APP SECURITY APP BUSINESS LOGIC NETWORKING CACHING DATA MODELS USER SESSIONS SOCIAL PUSH NOTIFICATIONS FILES UI BINDINGS
  • 3. PHYSICAL SERVERS LOAD BALANCING DATABASE BINDINGS RESTful API ROUTING MIDDLEWARE APP SECURITY APP BUSINESS LOGIC NETWORKING CACHING DATA MODELS USER SESSIONS SOCIAL PUSH NOTIFICATIONS FILES UI BINDINGS YOUR APP
  • 5. Parse Core Parse Push Parse Analytics
  • 6.
  • 8. Your data in the cloud Title Time Track Key Value title “Getting Started with Parse track “Track 1” time September 5, 2013 12:45 PM +0700 Talk Parse Data
  • 9. talk.saveInBackground(); talk.put(“title”, “Getting Started with Parse”);! talk.put(“track”, “Track 1”);! talk.put(“time”, talkDate); // Date ParseObject talk = new ParseObject(”Talk”); Key Value title “Getting Started with Parse track “Track 1” time September 5, 2013 12:45 PM +0700 Talk Creating and Saving an Object
  • 10.
  • 11. ParseQuery<ParseObject> query = ParseQuery.getQuery(”Talk”); query.findInBackground(new FindCallback<ParseObject>(){! public void done(List<ParseObject> talkList, ParseException e) {! if (e == null) {! // We have a list of all the Basic track talks! } else {! // Something went wrong; check the ParseException! }! } } // Find only the talks that are in the Basic track! query.whereEqualTo(”track”,”basic”); Getting a List of Objects
  • 12. byte[] data = myPhotoObject.toByteArray(); ParseFile image = new ParseFile(”Parse-2.jpg”, data);! image.saveInBackground(); ParseObject picture = new ParseObject(”Picture”);! picture.put(“title”, “Red Hot Chili Peppers concert”);! picture.put(“image”, image);! picture.saveInBackground(); Saving Files
  • 13. Easy User Management Parse Social •ParseUsers make it simple to: • Sign up • Log in • Manage user session with “currentUser” • Create Roles in your app • Improve app security with ACLs • Integrate with Facebook and Twitter
  • 14. ParseUser.logInInBackground( “janedoe”, ! “mypassword123”, new LogInCallback() {! public void done(ParseUser user, ParseException e) {! if (user != null) {! // The user is logged in! } else {! // Something went wrong; check the ParseException! }! }! }); Sign up Log in ParseUser ParseUser user = new ParseUser();! user.setUsername(“janedoe”);! user.setPassword(“mypassword123”);! user.setEmail(“janedoe@fb.com”);! user.signUpInBackground();
  • 15. ParseTwitterUtils.link(user, this, new SaveCallback() {! @Override! public void done(ParseException e) {! if (ParseTwitterUtils.isLinked(user)) {! // The user added their Twitter account! }! }! }; Twitter Link to Social Networks ParseFacebookUtils.link(user, this, new SaveCallback() {! @Override! public void done(ParseException e) {! if (ParseFacebookUtils.isLinked(user)) {! // The user added their Facebook account! }! }! }; Facebook
  • 16. •Background Jobs •For long running jobs •Can be scheduled Run custom app code in the Parse Cloud Cloud Code •Running Code when Objects are Saved or Deleted •Cloud functions & custom webhooks
  • 17. A Simple Background Job Parse.Cloud.job(“userMigration”, function (request, status) {! // Set up to modify user data    Parse.Cloud.useMasterKey();! // Query for all users! var query = new Parse.Query(Parse.User);! query.each(function(user) {! // Set and save the change! user.set(“plan”, request.params.plan);! return user.save();    }).then(function() {! // Set the job’s success status! status.success(“Migration completed successfully.”);    }, function(error) {      // Set the job’s error status      status.error(“Uh oh, something went wrong.”);    }); });
  • 18.
  • 19. Integrate with virtually any third-party service •Parse Image Module • Resize, crop, scale • Change image format •User Session Module • For server-side apps • Manage user session across pages Cloud Modules •Send text messages, emails, or accept payments •Connect to services with Parse.Cloud.httpRequest
  • 20.
  • 21.
  • 24. ParseInstallation.getCurrentInstallation().saveInBackground(); • Pushes are sent to Installations •1 device + 1 install of your app = 1 Installation • Add relationships to objects of interest, e.g. current User Push Notifications Installations
  • 25. ParsePush push = new ParsePush();! push.setChannel(“Giants”);! push.setMessage(“The game starts in 5!”);! push.sendInBackground(); Push to a Channel Subscribe users by interest or category
  • 26. Find users who match particular criteria Push to a Query ParseQuery pushQuery = ParseInstallation.getQuery();! pushQuery.whereEqualTo(“isFacebookEmployee”, true);! ! ! ParsePush push = new ParsePush();! push.setQuery(pushQuery);! push.setMessage(“Good afternoon, Facebook!”);! push.sendInBackground();
  • 27.
  • 29. Parse Analytics Measure App Usage • API calls • App open rates • Push campaigns • Custom events Track Any Data Point In Real Time
  • 31. event: "signedUp"! dimensions: {! gender: "f",! source: "web",! friendsUsingApp: "35",! wasReferred: "true"! } • Note: •Each event can have a maximum of 4 dimensions •Dimensions must be strings Dive Deeper: Custom Analytics •Save a free-form event with dimensions for segmenting results
  • 32.
  • 40.
  • 41. Parse Core Parse Push Parse Analytics UNLIMITED up to 30 requests/sec UNLIMITED up to 1,000,000 recipients UNLIMITED data points