Home | Escopo e Cronograma | Processo | Design/Mockups | Configuração | Arquitetura | Código | BD | Qualidade | Utilização |
---|
Arquitetura do Sistema
Descrição
Esta seção irá abordar a arquitetura selecionada para o Backend e Frontend explicando os motivos das escolhas das tecnologias utilizadas junto ao funcionamento da aplicação.
Sumário
Tecnologias
O time realizou um debate para mapear os conhecimentos tecnológicos de todos os integrantes da equipe para facilitar e nortear as decisões sobre as tecnologirias a a serem usadas no desenvolvimento da aplicação levando em consideração o tempo de entrega, conhecimentos existentes de cada integrante da equipe e conhecimentos a serem adquiridos durante o desenvolvimento. Após realizar esse levantamento, optamos por trabalhar com as tecnologias citas abaixo:
Flutter
O Flutter é um kit de desenvolvimento de interface de usuário(front-end), de código aberto, criado pela empresa Google em 2015, baseado na linguagem de programação Dart, que possibilita a criação de aplicativos compilados nativamente, para os sistemas operacionais Android, iOS, Windows, Mac, Linux e Fuchsia e Web.
A escolha do flutter foi baseada em quatro pontos:
- Conhecimento prévio de alguns membros da equipe referente a tecnologia;
- Necessidade por parte dos stakeholders para aplicativos nativos para o plataforma IPad.
- Curva de aprendizagem mais baixa em relação a tecnologias semelhantes.
- Integração perfeita com o Firebase, pois ambas tecnologias são da Google.
Firebase
Firebase é uma plataforma desenvolvida pelo Google para a criação de aplicativos móveis e da web de uma forma efetiva, rápida e simples. Ele contém diversas funcionalidades já desenvolvidas, incluindo dois bancos de dados integrados, e possui um cota free para utilização, sendo perfeito para desenvolvimento back-end de MVPs, POCs e soluções em estágio inicial.
A escolha do Firebase foi baseada em cinco motivos:
- Perfeita integração com o Flutter;
- Cota free suficiente para a aplicação;
- Banco de dados integrado - FireStore;
- Autenticação de usuário já desenvolvido, sendo necessário apenas chamar no Flutter;
- Diversos recursos disponíveis já desenvolvidos;
Integração
Como mencionado anteriormente, ambas tecnologias escolhidas são mantidas pela Google e possui uma integração perfeita. Desse modo, conseguimos desenvolver todo o projeto com mais facilidade e velocidade.
Para realizar a integração dentro do Flutter com o Firebase foi necessário importas as dependências do Firebase no Flutter da seguinte forma no arquivo pubspec.yaml
:
...
29 dependencies:
...
38 #Firebase
39 firebase_storage: ^10.2.9
40 firebase_core: ^1.13.1
41 firebase_auth: ^3.3.11
42 cloud_firestore: ^3.1.10
...
Para consulta, clone o projeto, abra o arquivo pubspec.yaml
e vá até a linha 38 do arquivo.
Diagrama de Comunicação
Abaixo está representado graficamente como funciona a comunicação do front-end (Flutter) com o back-end (Firebase)