Skip to content

JulioRennan/miio_flutter_test

Repository files navigation

A4 - 1 (2)

Desafio técnico proposto pela empresa Miio, em que o intuito da implementação é construir um aplicativo, que permita listarmos posts de usuários e filtra-los através de texto utilizando uma fake API. Sendo o foco da avaliação a arquitetura do projeto e conhecimentos nos processos de testes unitários.

Tabela de Conteúdos

Telas desenvolvidas

Frame 180804

Arquitetura do projeto

Como a ideia do aplicativo era representar uma porção de um sistema que poderia ser multidiscplinar/escalável, foi optado por utilizar como base a proposta do clean arch do Reso Coder, que possuí uma alta aderência na comunidade do Flutter.

Clean-Architecture-Flutter-Diagram 1

Baseado nessa estrutura, foi possível derivar uma arquitetura com objetivo de sanar alguns gaps que se tornaram conhecidos com o tempo, como o uso de downcasting de modelos para entidade. Exposto isso, foi utilizado no projeto a seguinte arquitetura, seguindos os principios estabelicidos pelo Uncle Bob.

Clean-Architecture-Flutter-Diagram 1

Para tornar possível essa arquitetura de maneira legível a estrutura de pastas, ficou definida do seguinte modo:

lib
├── app
│   ├─ modules
│   │  ├── name_module
|   │  │   ├── domain -> Responsável pelos usecases, entidades e interfaces de repositories
|   │  │   ├── presentation -> Responsável pela UI
|   |  |   └── data -> Responsável pelos datasources e class concretas dos repositories
|   |      ...
|   |
|   ├── app_widget
|   └── app_injection_container
|
├── data -> Camada de data compartilhada
├── domain -> Camada de dominio compartilhada.
├── core
|   ├── adapters -> Wrappers de packages que compõem regras de negócio.
|   ├── config -> Constants, Flavors e etc;
|   ├── managers -> Gerenciadores de strings, imagens, ícones e invocadores de componentes
|   ├── theme -> Design system da aplicação
|   └── widgets -> Componentes compartilhados
|
└── main.dart -> Run App

Pré-requisitos para executar o aplicativo

  • Flutter SDK: versão 3.10.0 ou superior.
  • Ambiente de desenvolvimento (IDE) recomendado: Visual Studio Code ou Android Studio.

Configuração do ambiente

Siga estas etapas para configurar o ambiente de desenvolvimento:

  1. Faça o download e a instalação do Flutter SDK em https://flutter.dev.
  2. Instale o Dart SDK a partir do site oficial do Dart em https://dart.dev/get-dart.
  3. Certifique-se de que o Flutter e o Dart estejam configurados corretamente adicionando-os ao seu PATH de ambiente.
  4. Verifique a instalação do Flutter e do Dart executando flutter doctor em seu terminal. Este comando fornecerá uma visão geral do estado do seu ambiente e ajudará a identificar possíveis problemas.
  5. Instale as dependências do projeto executando flutter pub get na raiz do projeto.

Executando o aplicativo

Siga estas etapas para executar o aplicativo:

  1. Abra seu terminal ou IDE preferido na raiz do projeto.
  2. Certifique-se de ter um dispositivo Android ou iOS conectado ou um emulador configurado.
  3. Execute o comando flutter run para compilar e iniciar o aplicativo no dispositivo/emulador.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages