Parse

1,884 views

Published on

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).

Parse

  1. 1. Parse
  2. 2. Parse Data Parse PushParse Social Cloud Code
  3. 3. iOS OS X Android JavascriptWindows Phone Windows 8 .NET Rest API
  4. 4. Parse Data
  5. 5. criando uma nova classe
  6. 6. criando uma nova classe
  7. 7. criando uma nova classe
  8. 8. criando um novo objetoParseObject profile = new ParseObject("Profile");profile.put("age", 45);profile.put("name", "John Doe");profile.saveInBackground();
  9. 9. objetos com relacionamento// 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();
  10. 10. buscando objetosParseQuery 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");
  11. 11. outras funções úteisParseObject profile = new ParseObject("Profile");profile.put("age", 27);profile.put("name", "Mary Moe"); er!profile.saveEventually(); o pud quand Salveprofile.increment("age");profile.saveInBackground();profile.deleteInBackground();profile.remove("name");profile.saveInBackground();
  12. 12. api requests
  13. 13. Parse Push
  14. 14. interface código ou
  15. 15. via interface
  16. 16. adicionando a um canal de envio// Salva a instalação no Parse.ParseInstallation.getCurrentInstallation().saveInBackground();// Adiciona o usuário no canal “Giants”.PushService.subscribe(context, "Giants", YourActivity.class);
  17. 17. via códigoParsePush push = new ParsePush();push.setChannel("Giants");push.setMessage("Touchdown para os Giants! O time vira contra os Mets.");push.sendInBackground();
  18. 18. pushs enviados
  19. 19. Parse Social
  20. 20. SSO vs Link
  21. 21. facebook connectParseFacebookUtils.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);}
  22. 22. 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!");    }  }}); SSOif (!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!");      }    }  });} LINK
  23. 23. twitter connectParseTwitterUtils.initialize("CONSUMER KEY", "CONSUMER SECRET");
  24. 24. 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!");    }  }}); SSOif (!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!");      }    }  });} LINK
  25. 25. Cloud Code
  26. 26. command line tool$ 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
  27. 27. cloud/main.jsParse.Cloud.define("hello", function(request, response) {  response.success("Hello world!");});
  28. 28. deploy$ parse deployNew 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!"}
  29. 29. cloud functionsParse.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");    }  });});
  30. 30. cloud functions - validationsParse.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();  }});
  31. 31. loggingParse.Cloud.define("Logger", function(request, response) {  console.log(request.params);  response.success();});
  32. 32. networkingParse.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);  }});
  33. 33. cloud modules
  34. 34. obrigado,Gustavo Barbosa gustavo.barbosa@quatix.com.br facebook.com/gustavocsb twitter.com/gustavocsb github.com/barbosa

×