BAAS
Como isso pode ajudar a vida de um desenvolvedor
Quem somos?
Jonas Tomaz
Desenvolvedor iOS desde 2011
Trabalhei em 10+ projetos iOS
Trabalhando na:
então …
BAAS
O que é isso ?
Um jeito mais fácil para um
desenvolvedor configurar, usar e
operar um backend na cloud para uma
app mobile ou web.
Um backend é complexo
Um backend é complexo
Um backend é complexo
Um backend é complexo
Um backend é complexo
Um backend é complexo
Um backend é complexo
Um backend é complexo
Um backend é complexo
Um backend é complexo
Um backend é complexo
Um backend é complexo
Existem muitas empresas que oferecem esse serviço:
Existem muitas empresas que oferecem esse serviço:
Open Source
Helios
LiveOak
Que serviços são comumente oferecidos ?
Gerenciamento de usuários
Gerenciamento de usuários Armazenamento de dados
Gerenciamento de usuários Armazenamento de dados
Customizável
Gerenciamento de usuários Armazenamento de dados
Customizável API
Gerenciamento de usuários Armazenamento de dados
Customizável API Disponibilidade
Gerenciamento de usuários Armazenamento de dados
Customizável API
Comunicação
Disponibilidade
Gerenciamento de usuários Armazenamento de dados
Customizável API
Comunicação Social
Disponibilidade
E quanto custa isso?
Depende…
De graça
Paga por mês
Paga por quantidade de uso
Licenciamento
Como podemos usar esses serviços ?
ou
SDK
API
var gameScore = PFObject(className:"GameScore")
gameScore["score"] = 1337
gameScore["playerName"] = "Sean Plott"
gameScore["cheatMode"] = false
gameScore.saveInBackground()
Swift
var GameScore = Parse.Object.extend("GameScore");
var query = new Parse.Query(GameScore);
query.equalTo("playerName", "Dan Stemkoski");
query.find({
success: function(results) {
alert("Successfully retrieved " + results.length + " scores.");
// Do something with the returned Parse.Object values
for (var i = 0; i < results.length; i++) {
var object = results[i];
alert(object.id + ' - ' + object.get('playerName'));
}
},
error: function(error) {
alert("Error: " + error.code + " " + error.message);
}
});
JavaScript
ParseQuery<ParseObject> teamQuery =
ParseQuery.getQuery("Team");
teamQuery.whereGreaterThan("winPct", 0.5);
ParseQuery<ParseUser> userQuery = ParseUser.getQuery();
userQuery.whereMatchesKeyInQuery("hometown", "city", teamQuery);
userQuery.findInBackground(new FindCallback<ParseUser>() {
  void done(List<ParseUser> results, ParseException e) {
  }
});
Android
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");
    }});
});
CloudCode
Cenários:
Primeiro cenário:
Segundo cenário:
Terceiro cenário:
Pontos negativos
Lock in
Detalhes de Implementação
Dietzler’s Law
&
Deva’s Law
Acesso a sistemas internos e integrações com
outros sistemas da sua empresa
Futuro de BAAS
Camadas de negócios
construidas em cima de
Backend as a Services
Cross-Platform?
Qual é o significado dessa
mudança de paradigma?
Perguntas ?
Jonas Tomaz
@Jonas_Tomaz
/jonas.tomaz
jonas.tomaz
@ .com.br

Backend