+ All Categories
Home > Documents > Parse MIT IAP slides

Parse MIT IAP slides

Date post: 11-Feb-2017
Category:
Upload: phungnhi
View: 219 times
Download: 1 times
Share this document with a friend
35
Parse Jamie Karraker ’12 MEng ’13
Transcript
Page 1: Parse MIT IAP slides

ParseJamie Karraker ’12 MEng ’13

Page 2: Parse MIT IAP slides

Database REST API

ZZZ

Server

++

+ users+ security

CachingNetworking

+ +

The fun stuff!

no

no

no

no

no

yes!

Page 3: Parse MIT IAP slides

Android OS X WP8 Win 8 .NET Unity RESTiOS

JavaScript SDK

Page 4: Parse MIT IAP slides

USERSThe in your app

Page 5: Parse MIT IAP slides

Sign up a userParse.User.signUp("TimBeaver", "ihtfp");!!!!!!

Log in a userParse.User.logIn("TimBeaver", "ihtfp");!!!!!!

Page 6: Parse MIT IAP slides

Sign up a userParse.User.signUp("TimBeaver", "ihtfp", {  success: function(user) {    // Do stuff after successful signup.  },  error: function(user, error) {    // The login failed. Check error to see why.  }}); Log in a user

Parse.User.logIn("TimBeaver", "ihtfp", {  success: function(user) {    // Do stuff after successful login.  },  error: function(user, error) {    // The login failed. Check error to see why.  }});

Page 7: Parse MIT IAP slides

Facebook Login

Link Existing User

Parse.FacebookUtils.logIn(null, {  success: function(user) {    if (!user.existed()) {      // User signed up and logged in through Facebook!    } else {      // User logged in through Facebook!    }  },  error: function(user, error) {    // User cancelled the Facebook login or did not fully authorize.  }});

if (!Parse.FacebookUtils.isLinked(user)) {  Parse.FacebookUtils.link(user, null, {    success: function(user) {      // Woohoo, user logged in with Facebook!    },    error: function(user, error) {      // User cancelled the Facebook login or did not fully authorize.    }  });}

Page 8: Parse MIT IAP slides

DATASaving stuff in the

Page 9: Parse MIT IAP slides

var GameScore = Parse.Object.extend("GameScore");var gameScore = new GameScore(); gameScore.set("score", 1337);gameScore.set("player", Parse.User.current());gameScore.set("cheatMode", false); gameScore.save();

Page 10: Parse MIT IAP slides

FILESSaving your Pictures in the

Page 11: Parse MIT IAP slides

Save a File!var file = $("#profilePhotoFileUpload")[0].files[0];var name = "photo.jpg";var parseFile = new Parse.File(name, file);parseFile.save(null, {  success: function(parseFile) { profileObject.set("photoFile", parseFile); profileObject.save(); }});

HTML!<input type="file" id="profilePhotoFileUpload">

Retrieve a File var profilePhoto = profileObject.get("photoFile");$("#profileImg")[0].src = profilePhoto.url();

Page 12: Parse MIT IAP slides

DATA BROWSERBecause sometimes you just want to see it

Page 13: Parse MIT IAP slides
Page 14: Parse MIT IAP slides

QUERIESGetting stuff from the

Page 15: Parse MIT IAP slides

var GameScore = Parse.Object.extend("GameScore");var query = new Parse.Query(GameScore);!query.equalTo("player", Parse.User.current());!query.find();!!!!!!!

Page 16: Parse MIT IAP slides

var GameScore = Parse.Object.extend("GameScore");var query = new Parse.Query(GameScore);!query.equalTo("player", Parse.User.current());!query.find({  success: function(gameScores) {   // Do something with the returned Parse.Object array  },  error: function(error) {    alert("Error: " + error.code + " " + error.message);  }});

Page 17: Parse MIT IAP slides

RELATIONSIt’s better together

Page 18: Parse MIT IAP slides

var gameScore = new GameScore(); gameScore.set("player", Parse.User.current());

Page 19: Parse MIT IAP slides

var user = Parse.User.current();var relation = user.relation("friends");relation.add(newFriend);relation.add(anotherFriend);user.save();

Page 20: Parse MIT IAP slides

CLOUD CODEIt’s code in the

Page 21: Parse MIT IAP slides

Before SaveParse.Cloud.beforeSave("Review", function(request, response) { var comment = request.object.get("comment"); if (comment.length > 140) { // Truncate and add a ... request.object.set("comment", comment.substring(0, 137) + "..."); } response.success(); }); After Save

Parse.Cloud.afterSave("Review", function(request) { query = new Parse.Query("Movie"); query.get(request.object.get("movie").id, { success: function(movie) { movie.increment("reviews"); movie.save(); } });});

Page 22: Parse MIT IAP slides

Cloud Modules

Stripevar Stripe = require('stripe');Stripe.initialize('mySecretKey');!Stripe.Charges.create({  amount: 100 * 10, // $10 expressed in cents  currency: "usd",  card: "tok_3TnIVhEv9P24T0" // stripe token id});

Page 23: Parse MIT IAP slides

PARSE HOSTINGOverviewStatic HostingDynamic HostingAny Meme Lite Example

Page 24: Parse MIT IAP slides

The Spectrum

Page 25: Parse MIT IAP slides

The Spectrum

Page 26: Parse MIT IAP slides

The Spectrum

PARSE HOSTING

Page 27: Parse MIT IAP slides

Static Hosting

• Choose a domain: myapp.parseapp.com (or custom)

• Initialize your parse directory • Create public/helloword.html

• Type parse deploy • Your web page is live

Page 28: Parse MIT IAP slides

Live Demo: Todos

Page 29: Parse MIT IAP slides

Dynamic Hosting

express.js

Page 30: Parse MIT IAP slides

express.js

• Web framework built for node.js

• Node.js is server-side JavaScript • Now with Cloud Code + Parse JS SDK

• Simple but expressive

Page 31: Parse MIT IAP slides

Directory Structure

-cloud/  main.js            Cloud Code  app.js             Express code  -views/            View templates    hello.ejs-public/  example.html       Static HTML files  -stylesheets/      CSS stylesheets    style.css

Page 32: Parse MIT IAP slides

Workflow

• Install Command Line Tool athttps://www.parse.com/docs/cloud_code_guide#started

• One time set up. Create a local code directory

• Make code changes

• Deploy to the cloud

$ parse new MyWebsite

$ vi MyWebsite/cloud/app.js

$ parse deploy

$ curl -s https://www.parse.com/downloads/cloud_code/installer.sh | sudo /bin/bash

Page 33: Parse MIT IAP slides

Live Demo: AnyMeme

Page 34: Parse MIT IAP slides

What Else?

• Full blown web apps

• Admin interfaces • Web hooks

• Push Notifications

• Analytics

Page 35: Parse MIT IAP slides

Further Reading

• JS SDK guide: parse.com/docs/js_guide

• Hosting guide: parse.com/docs/hosting_guide

• Express: expressjs.com

• Anymeme: www.anymeme.org

• Todo App: todolist.parseapp.com

• Tutorials: parse.com/tutorials

• Source code: github.com/ParsePlatform


Recommended