Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • appoio-wiki appoio-wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • APPOIO
  • appoio-wikiappoio-wiki
  • Wiki
  • arquitetura

arquitetura · Changes

Page history
Update arquitetura authored Nov 21, 2020 by João Flores de Leão's avatar João Flores de Leão
Hide whitespace changes
Inline Side-by-side
arquitetura.md
View page @ 00f25033
...@@ -12,6 +12,7 @@ _Acesso rápido_ ...@@ -12,6 +12,7 @@ _Acesso rápido_
- [Diagrama do sistema](#diagrama-do-sistema) - [Diagrama do sistema](#diagrama-do-sistema)
- [Diagrama de sequência](#diagrama-de-sequência) - [Diagrama de sequência](#diagrama-de-sequência)
- [Frontend](#frontend) - [Frontend](#frontend)
- [Definições de Tecnologias](#definições-de-tecnologias)
- [Módulos do sistema](#módulos-do-sistema-1) - [Módulos do sistema](#módulos-do-sistema-1)
- [Arquitetura básica do frontend](#arquitetura-básica-do-frontend) - [Arquitetura básica do frontend](#arquitetura-básica-do-frontend)
- [Diagrama do sistema](#diagrama-do-sistema) - [Diagrama do sistema](#diagrama-do-sistema)
...@@ -73,12 +74,29 @@ Seguindo um fluxo que percorre a estrutura: **Route > Controller > Service > Rep ...@@ -73,12 +74,29 @@ Seguindo um fluxo que percorre a estrutura: **Route > Controller > Service > Rep
## Frontend ## Frontend
### Definições de Tecnologias
Os pontos chaves levados em consideração na escolha das tecnologias de Frontend são os mesmos descritos na seção de Backend.
Escolhas:
* Linguagem: JavaScript;
* Framework: React Native.
* Ferramentas: Prettier, ESLint e Expo.
Depois de conversas com a Stakeholder e discussões com o time em relação a tecnologias do projeto, foi concluído que JavaScript com a utilização de ReactNative seria ideal para a criação de aplicações Android e iOS nativas.
[React Native](https://reactnative.dev/) é um framework aborda a interface como uma função, que representa o estado atual da aplicação, apresentando componentes visuais escritos em JavaScript que podem ser reutilizados em diferentes telas. Para mais informações em relação ao modo que o React Native cria aplicações nativas tanto para Android quanto para iOS, verifique a seção [Arquitetura básica do frontend](#arquitetura-básica-do-frontend).
[Expo ](https://expo.io/)é uma ferramenta utilizada para garantir uma maneira fácil de acessar API's nativas sem precisar instalar dependências. Por meio de uma aplicação disponível para Android e iOS ele estabelece uma conexão com o dispositivo móvel sendo utilizado para desenvolvimento e apresenta em tempo real as mudanças realizadas no código. Expo também oferece diversos recursos disponíveis em aparelhos mobile, como seleção de fotos da galeria, acesso ao storage assíncrono, notificações e outras funcionalidades utilizadas no desenvolvimento nativo. O mesmo garantiu uma configuração de ambiente rápida, e fácil, eliminando barreiras de configuração dos diferentes sistemas operacionais de dispositivos mobile e computadores.
[Prettier](https://prettier.io/) e [ESLint ](https://eslint.org/)são ferramentas voltadas para a padronização de código, a primeira sendo utilizada para formatação do mesmo e a segunda para identificar padrões e garantir o uso de boas práticas. Quando configuradas em uma IDE, elas garantem que ao salvar trechos do código, padrões de indentação, aplicação de boas práticas e formatação sejam seguidas.
### Módulos do Sistema ### Módulos do Sistema
- **Components**: Onde estarão localizados os componentes visuais encontrados em diferentes páginas da aplicação. Os componentes em sua maioria são genéricos e podem ser utilizado em mais de uma parte do sistema. - **Components**: Onde estarão localizados os componentes visuais encontrados em diferentes páginas da aplicação. Os componentes em sua maioria são genéricos e podem ser utilizado em mais de uma parte do sistema.
- **Screen**: Onde estarão localizadas as telas da aplicação. Cada tela é composta de diversos componentes que quando juntos apresentam funcionalidades da aplicação - **Screen**: Onde estarão localizadas as telas da aplicação. Cada tela é composta de diversos componentes que quando juntos apresentam funcionalidades da aplicação
- **Routes**: A camada de rotas da aplicação, utilizando o padrão de arquitetura *Coordinator*, irá realizar a navegação entre as telas da aplicação, tendo conhecimento do fluxo e como devem se comportar. Possui a `StackNavigator` (navegação em telas empilhadas que seguem um determinado fluxo) e a `TabNavigator` (navegação por blocos com funcionalidades que diferem umas das outras, possui uma barra com suas opções na parte inferior da aplicação) - **Routes**: A camada de rotas da aplicação, utilizando o padrão de arquitetura *Coordinator*, irá realizar a navegação entre as telas da aplicação, tendo conhecimento do fluxo e como devem se comportar. Possui a `StackNavigator` (navegação em telas empilhadas que seguem um determinado fluxo) e a `TabNavigator` (navegação por blocos com funcionalidades que diferem umas das outras, possui uma barra com suas opções na parte inferior da aplicação)
- **Utils**: Classes que podem ser reaproveitadas na aplicação, com funcionalidades de formatação de texto, modelos de entrada, acesso a constantes, etc... - **Constants**: Classes que podem ser reaproveitadas na aplicação, com funcionalidades de formatação de texto, modelos de entrada, acesso a constantes, etc...
- **Assets**: Pasta com as imagens que são utilizadas na aplicação uma ou mais vezes. - **Assets**: Pasta com as imagens que são utilizadas na aplicação uma ou mais vezes.
### Arquitetura Básica do Frontend ### Arquitetura Básica do Frontend
...@@ -87,7 +105,7 @@ A utilização de React Native permite a o desenvolvimento da aplicação inteir ...@@ -87,7 +105,7 @@ A utilização de React Native permite a o desenvolvimento da aplicação inteir
![arquitetura frontend](https://tools.ages.pucrs.br/appoio/appoio-wiki/raw/master/images/arquitetura/Arquitetura_Frontend.png) ![arquitetura frontend](https://tools.ages.pucrs.br/appoio/appoio-wiki/raw/master/images/arquitetura/Arquitetura_Frontend.png)
Os formato *.ipa* é utilizado para o sistema operacional iOS e o `.apk` para o Android. Para mais informações de como gerar a aplicação e realizar o build, é possível verificar a seção Os formato `.ipa` é utilizado para o sistema operacional iOS e o `.apk` para o Android. Para mais informações de como gerar a aplicação e realizar o build, é possível verificar a seção
[Compilação e Instalação](https://tools.ages.pucrs.br/appoio/appoio-wiki/wikis/instalacao). [Compilação e Instalação](https://tools.ages.pucrs.br/appoio/appoio-wiki/wikis/instalacao).
### Diagrama do Sistema ### Diagrama do Sistema
......
Clone repository
  • Rotas
  • arquitetura
  • banco_dados
  • configuracao
  • deploy
  • escopo
  • git_workflow
  • gp
  • Home
  • instalacao
  • mockups
  • padronizacao
  • processo
  • qualidade