40
Parse

Parse

Embed Size (px)

DESCRIPTION

Parse é um PaaS (platform as a service) que foi criado para auxiliar desenvolvedores a criarem seus aplicativos sem a necessidade de criar um web service para gerenciamento dos dados. Através de sua API, é possível gerenciar dados através de um banco com interface visual (Parse Data), configurar o envio de push notifications (Parse Push), integrar contas de redes sociais (Parse Social) e ainda escrever código para customização e tratamento de seus dados na nuvem (Cloud Code). Parse is a PaaS (platform as a service) which was created to support developers to build their mobile apps without a web service managing the data. Through its API, it is possible to manage data through a database using a visual interface (Parse Data), configure push notifications (Parse Push), integrate social networks accounts (Parse Social) and write code to customize your requests in the cloud (Cloud Code).

Citation preview

Page 1: Parse

Parse

Page 2: Parse
Page 3: Parse

Parse Data Parse Push

Parse Social Cloud Code

Page 4: Parse

iOS OS X Android Javascript

Windows Phone Windows 8 .NET Rest API

Page 5: Parse
Page 6: Parse

Parse Data

Page 7: Parse
Page 8: Parse

criando uma nova classe

Page 9: Parse

criando uma nova classe

Page 10: Parse

criando uma nova classe

Page 11: Parse

ParseObject profile = new ParseObject("Profile");profile.put("age", 45);profile.put("name", "John Doe");profile.saveInBackground();

criando um novo objeto

Page 12: Parse

// Cria um postParseObject myPost = new ParseObject("Post");myPost.put("title", "Estou com fome!");myPost.put("content", "Vamos almoçar aonde?"); // Cria um comentárioParseObject myComment = new ParseObject("Comment");myComment.put("content", "Vamos no Estação.");

myComment.put("parent", myPost);myComment.saveInBackground();

objetos com relacionamento

Page 13: Parse

ParseQuery query = new ParseQuery("Profile");query.whereEqualTo("age", 45);query.findInBackground(new FindCallback() {

public void done(List<ParseObject> profileList, ParseException e) {if (e == null) {

Log.d("profile", "Retrieved " + profileList.size() + " profiles");} else {

Log.d("profile", "Error: " + e.getMessage());}

}});

int age = profile.getInt("age");String name = profile.getString("name");

buscando objetos

Page 14: Parse

ParseObject profile = new ParseObject("Profile");profile.put("age", 27);profile.put("name", "Mary Moe");profile.saveEventually();

Salve quando puder!

profile.increment("age");profile.saveInBackground();

profile.deleteInBackground();

profile.remove("name");profile.saveInBackground();

outras funções úteis

Page 15: Parse

api requests

Page 16: Parse

Parse Push

Page 17: Parse

interface códigoou

Page 18: Parse

via interface

Page 19: Parse

// Salva a instalação no Parse.ParseInstallation.getCurrentInstallation().saveInBackground();

// Adiciona o usuário no canal “Giants”.PushService.subscribe(context, "Giants", YourActivity.class);

adicionando a um canal de envio

Page 20: Parse
Page 21: Parse

ParsePush push = new ParsePush();push.setChannel("Giants");push.setMessage("Touchdown para os Giants! O time vira contra os Mets.");push.sendInBackground();

via código

Page 22: Parse

pushs enviados

Page 23: Parse

Parse Social

Page 24: Parse
Page 25: Parse

SSO Linkvs

Page 26: Parse

ParseFacebookUtils.initialize("ID DA APP DO FACEBOOK");

@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {  super.onActivityResult(requestCode, resultCode, data);  ParseFacebookUtils.finishAuthentication(requestCode, resultCode, data);}

facebook connect

Page 27: Parse

ParseFacebookUtils.logIn(this, new LogInCallback() {  @Override  public void done(ParseUser user, ParseException err) {    if (user == null) {      Log.d("MeuApp", "Ops. O usuário cancelou o login do Facebook.");    } else if (user.isNew()) {      Log.d("MeuApp", "Usuário criado e logado via Facebook!");    } else {      Log.d("MeuApp", "Usuário logado via Facebook!");    }  }});

if (!ParseFacebookUtils.isLinked(user)) {  ParseFacebookUtils.link(user, this, new SaveCallback() {    @Override    public void done(ParseException ex) {      if (ParseFacebookUtils.isLinked(user)) {        Log.d("MeuApp", "Boa! Usuário conectou sua conta do Facebook!");      }    }  });}

SSO

LINK

Page 28: Parse

ParseTwitterUtils.initialize("CONSUMER KEY", "CONSUMER SECRET");

twitter connect

Page 29: Parse

ParseTwitterUtils.logIn(this, new LogInCallback() {  @Override  public void done(ParseUser user, ParseException err) {    if (user == null) {      Log.d("MeuApp", "Ops. O usuário cancelou o login do Twitter.");    } else if (user.isNew()) {      Log.d("MeuApp", "Usuário criado e logado via Twitter!");    } else {      Log.d("MeuApp", "Usuário logado via Twitter!");    }  }});

if (!ParseTwitterUtils.isLinked(user)) {  ParseTwitterUtils.link(user, this, new SaveCallback() {    @Override    public void done(ParseException ex) {      if (ParseTwitterUtils.isLinked(user)) {        Log.d("MeuApp", "Boa! Usuário conectou sua conta do Twitter!");      }    }  });}

SSO

LINK

Page 30: Parse

Cloud Code

Page 31: Parse
Page 32: Parse

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

$ parse new LightningTalkCloudCodeEmail: [email protected]:1:Foliao2:Lightning TalkSelect an App: 2$ cd LightningTalkCloudCode

command line tool

Page 33: Parse

Parse.Cloud.define("hello", function(request, response) {  response.success("Hello world!");});

cloud/main.js

Page 34: Parse

$ parse deploy

New release is named v1

$ curl -X POST \  -H "X-Parse-Application-Id: <INSERIR PARSE APP ID>" \  -H "X-Parse-REST-API-Key: <INSERIR PARSE REST API KEY>" \  -H "Content-Type: application/json" \  -d '{}' \  https://api.parse.com/1/functions/hello

{  "result": "Hello world!"}

deploy

Page 35: Parse

cloud functions

Parse.Cloud.define("averageStars", function(request, response) {  var query = new Parse.Query("Review");  query.equalTo("movie", request.params.movie);  query.find({    success: function(results) {      var sum = 0;      for (var i = 0; i < results.length; ++i) {        sum += results[i].get("stars");      }      response.success(sum / results.length);    },    error: function() {      response.error("movie lookup failed");    }  });});

Page 36: Parse

cloud functions - validations

Parse.Cloud.beforeSave("Review", function(request, response) {  if (request.object.get("stars") < 1) {    response.error("you cannot give less than one star");  } else if (request.object.get("stars") > 5) {    response.error("you cannot give more than five stars");  } else {    response.success();  }});

Page 37: Parse

logging

Parse.Cloud.define("Logger", function(request, response) {  console.log(request.params);  response.success();});

Page 38: Parse

networking

Parse.Cloud.httpRequest({ method: 'GET’,  url: 'http://www.parse.com/',  success: function(httpResponse) {    console.log(httpResponse.text);  },  error: function(httpResponse) {    console.error('Request failed with response code ' + httpResponse.status);  }});

Page 39: Parse

cloud modules