Upload
gustavo-barbosa
View
1.100
Download
0
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
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: [email protected]: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
Gustavo Barbosa
facebook.com/gustavocsb
github.com/barbosa
twitter.com/gustavocsb
obrigado,