Parse

Preview:

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

Parse

Parse Data Parse Push

Parse Social Cloud Code

iOS OS X Android Javascript

Windows Phone Windows 8 .NET Rest API

Parse Data

criando uma nova classe

criando uma nova classe

criando uma nova classe

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

criando um novo objeto

// 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

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

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

api requests

Parse Push

interface códigoou

via interface

// 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

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

via código

pushs enviados

Parse Social

SSO Linkvs

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

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

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

twitter connect

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

Cloud Code

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

$ parse new LightningTalkCloudCodeEmail: gustavocsb@gmail.comPassword:1:Foliao2:Lightning TalkSelect an App: 2$ cd LightningTalkCloudCode

command line tool

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

cloud/main.js

$ 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

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");    }  });});

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();  }});

logging

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

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);  }});

cloud modules