Desenvolvimento

14 nov, 2014

Como o BaaS pode ajudar o dia a dia de um desenvolvedor

Publicidade

Seguindo as tendências do mundo do desenvolvimento mobile, e esse será o foco deste artigo, vamos falar um pouco sobre algumas ferramentas e cenários em que o Backend as a Service, ou o BaaS, pode ser útil no dia a dia de um desenvolvedor.

O que é BaaS?

Dando a minha humilde definição, Backend as a Service (BaaS) é um jeito mais fácil para um desenvolvedor configurar, usar e operar um backend em cloud, para uma app mobile ou web. Existem muitas empresas que prestam esse serviço, mas como estamos falando especificamente de desenvolvimento mobile, vamos citar algumas que prestam esses serviços, claro, com foco em mobile. Lembrando, porém, que existem outras grande empresas que oferecem BaaS não focadas em mobile, como a Amazon, por exemplo. Dentre as principais empresas de BaaS estão a Apiary, a Appcelerator, a Kinvey, a StackMob e a Parse.

Empresas

E quais são os serviços oferecidos?

  • Gerenciamento de usuários: considerando o gerenciamento básico de usuários em BaaS, queremos dizer que o desenvolvedor tem tudo o que é necessário para que seus usuários entrem e engajem nas suas apps.
  • Gerenciamento de dados: o BaaS providencia um jeito muito fácil e rápido de visualizar os dados usados pela sua aplicação, muitas vezes por meio de uma interface simples e intuitiva.
  • Armazenamento de fotos de imagens: este é um recurso muito comum em BaaS e em alguns casos você pode até conseguir integração com Flickr e Instagram.
  • Customização de código na plataforma: muitas plataformas Baas permitem a inserção de código personalizado dentro das áreas controladas da plataforma, que podem em seguida executar o código dentro de cada aplicativo.
  • Objetos customizáveis: com o BaaS, os desenvolvedores podem criar seus próprios objetos, com suas próprias estruturas de dados, o que lhes permite controlar e manipular esses objetos dentro de seus programas.
  • API: muitas plataformas de BaaS oferecem ferramentas para desenvolvedores implementarem APIs personalizadas, permitindo estender a API básica para além de armazenamentos de dados.
  • Push notifications: usuários esperam que informações e mensagens sejam enviadas por suas apps. Push notifications é a ferramenta de comunicação mais comum oferecida pelas plataformas de BaaS.
  • Disponibilidade e escalabilidade: abstrair a complexidade da infraestrutura e fornecer uma plataforma que escala automaticamente é também um dos principais motivos para desenvolvedores adotarem BaaS em suas apps.
  • Integração com redes sociais: Facebook, Twitter e outras redes sociais estão incorporadas nos serviços de BaaS. Assim, é possível fazer autenticação, postagem, compartilhamento e outras ações comuns nas redes muito mais facilmente.

Como usar esses serviços na minha app?

A maior parte dessas empresas oferecem seus serviços por meio de SDKs nativos às plataformas, iOS ou Android por exemplo, bastando somente incluir o SDK ao projeto e adicionar as dependências. Em outros casos, pode-se interagir com os serviços via API.

Ok, mas em quais situações isso pode ser útil no meu dia-a-dia?

Para exemplificar, vamos falar de alguns cenários nos quais o uso de BaaS pode reduzir bastante o tempo de desenvolvimento de uma app, aumentando sua produtividade.

O primeiro cenário é um desenvolvedor solo, aquele que pensa em criar sua app sozinho. Esse desenvolvedor precisa saber um pouco sobre UX (User Experience) e as ferramentas utilizadas para desenvolver o layout de uma APP (seja o Photoshop, Sketch ou outra ferramenta do tipo).

 

Como a proposta é desenvolver uma app, ele precisa saber também uma linguagem de programação, que pode variar de acordo com a plataforma. Neste caso, vamos usar o Objetive-C ou até a nova linguagem, Swift, como exemplo, pois queremos construir uma app para o iOS. Por fim, esse mesmo desenvolvedor precisa ter um bom conhecimento da IDE (Integrated Development Environment), que nesse caso é o Xcode.

 

Não esquecendo que essa app deve falar diretamente com um Backend, ou uma API. Nosso desenvolvedor exemplo precisa saber uma linguagem de programação para construir essa API, seja Ruby, Java, Python, e por aí vai.

cenário1

Bem, se você é um desenvolvedor que sabe bem essas três coisas… Parabéns, você é o Chuck Norris!

cn

Se você não é, seria muito interessante poder eliminar pelo menos a preocupação com uma dessas três competências. Então, você pode usar um BaaS e eliminar a necessidade de saber uma linguagem de programação para Backend. Com isso, você não precisa construir e saber fazer bem uma API e você pode focar nas outras duas coisas. Um bom tempo (senão a maior parte) gasto pra desenvolver uma app já é economizado com isso.

cenario1.1

Muito legal, não?!

cn2

No segundo cenário, você trabalha em uma empresa e essa empresa tem que desenvolver apps para os clientes dela.

empresa

Neste ambiente, muito maior, normalmente você tem uma pessoa responsável pelo UX, que entende bem de Photoshop ou Sketch, uma pessoa responsável pelo desenvolvimento da APP, que entende do XCode, Swift e Objective-C, e mais uma pessoa da API, que sabe como o Backend funciona.

cenario2

Vamos imaginar que, neste contexto, o desenvolvedor mobile tem uma certa dependência do responsável pela API para poder fazer algumas coisas. Por exemplo, a tela da app e o endpoint correspondente entram no Backlog do mesmo Sprint. Mesmo sabendo que podemos fazer esse tipo de teste com as ferramentas de teste (fazendo um mock da resposta do servidor), seria bom ter um endpoint já configurado respondendo a um Json combinado pela equipe até que a API fique pronta. Mas uma ferramenta de BaaS, como o Apiary, pode ser útil e aumentar a produtividade.

Ainda no ambiente empresarial, podemos ter um terceiro cenário. Imagine que vamos fazer um processo de Product Discovery, no qual o time é geralmente formado por três pessoas: o profissional UX, o Hacker (que é o desenvolvedor que tem que saber “tudo”) e uma pessoa de negócio, que entende de métricas, do produto e etc. Essa segunda figura, o Hacker, é um profissional muito difícil de achar e custa caro, uma vez que ele é o Chuck Norris.

Nesse cenário, o BaaS entra novamente tirando a necessidade de saber fazer bem e rápido um backend nesse segundo papel. Como estamos falando de um processo iterativo e incremental constante, que tem como premissa um processo de validação de ideias muito rápido, quanto menor for o tempo de desenvolvimento e mais iterações forem possíveis, mais lados envolvidos saem ganhando. É melhor para o produto que está sendo validado; para a empresa contratante, pois menos tempo de desenvolvimento geram menos custos e quanto mais rápido o produto for para produção melhor; e para as figuras envolvidas, pois eles podem passar para um próximo processo de evolução dessa app ou até mesmo para um novo projeto muito mais rápido.

Concluindo: uma vez que a nossa proposta pessoal e profissional é desenvolver apps de qualidade, nós, desenvolvedores, temos que gastar e focar nosso tempo de trabalho com o que realmente importa: desenvolver as apps e, assim, diminuindo ou eliminando qualquer outra preocupação que fuja do que nos propomos a fazer. Essas ferramentas podem ser de grande ajuda na hora de criar uma app.

Tem alguma dúvida ou sugestão? Só deixar seu comentário aqui embaixo. Até a próxima!