Este aplicativo exibe uma lista de cartões do cliente, permitindo visualizar transações e informações relevantes de cada cartão. Ele foi desenvolvido em Flutter, utilizando MVVM como padrão arquitetural e Atomic Design para organização dos componentes da UI.
- Linguagem: Dart
- Framework: Flutter
- Arquitetura: MVVM
- Padrão de UI: Atomic Design (atoms, molecules, organisms, templates)
- Gerenciamento de estado: Provider
O projeto segue uma estrutura modularizada:
/lib
├── app
│ ├── models # Modelos de dados
│ ├── services # Serviços e requisições HTTP
│ ├── viewmodels # ViewModels (lógica de negócios e estado)
│ ├── views # Telas do aplicativo
│ │ ├── widgets # Componentes reutilizáveis
│ │ │ ├── atoms # Elementos básicos (ex: botões, textos)
│ │ │ ├── molecules # Pequenos agrupamentos de átomos
│ │ │ ├── organisms # Componentes mais complexos
│ │ │ ├── templates # Estruturas completas de tela
│ │ ├── home_view.dart # Tela principal
├── core
│ ├── shared # Componentes compartilhados (AppBar, Drawer, etc.)
│ ├── utils # Utilitários e funções auxiliares
│ ├── constants # Constantes globais do app
O projeto inclui testes unitários e de widgets para garantir a qualidade do código e a estabilidade das funcionalidades. Os testes são escritos utilizando o pacote mockito para simulação de dependências e flutter_test para validação de widgets.
Para executar os testes, utilize o seguinte comando:
flutter testAs seguintes bibliotecas foram utilizadas no projeto:
dependencies:
equatable: ^2.0.7
http: ^1.3.0
provider: ^6.1.2
flutter_svg: ^2.0.17
intl: ^0.20.2
dev_dependencies:
mockito: ^5.4.5Certifique-se de ter instalado:
- Flutter (https://flutter.dev/docs/get-started/install)
- Dart
- Emulador ou dispositivo físico
-
Clone o repositório:
git clone https://github.com/origemjhanpoll/flutter_gs3_test cd flutter_gs3_test -
Instale as dependências:
flutter pub get
-
Execute o aplicativo:
flutter run
(Para rodar no iOS, é necessário um Mac com Xcode instalado.)
Atualmente, este aplicativo não possui suporte para Web. Ele foi desenvolvido exclusivamente para Android e iOS.
Sinta-se à vontade para abrir issues ou contribuir com melhorias!
Este projeto está sob a licença MIT.

