Top Banner
Parse Jamie Karraker ’12 MEng ’13
35

Parse MIT IAP slides

Feb 11, 2017

Download

Documents

phungnhi
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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