GitHub - dtodt/ca_flutter_test: Conta Azul Flutter Test
Development process, step by step.
FIGMA DESIGN SYSTEM & FRONTEND REFERENCE
The project goal is to develop a mobile application with test coverage and the following features:
- Splash Art: Animation, responsive UI/UX, Cropping container effect on “Conta Azul” logo, Circle animation and BG color transitions, logo color changing animation from: blue > white.
- Authentication: Login, Logout, User Creation, Password Recovery, Delete User.
- Home (fake API list): Fake API response list.
- Favorites: Items that were marked as favorite by the user.
- User Offline Warning: User offline popup banner that gets displayed when user is offline.
The proposed software architecture used by the project is detailed below, including MiniCore Arc images and diagrams.
ARCHITECTURE.md TDD - Test Driven Design with Clean Architecture
-
MiniCore Arc - Documentation:
Software architecture proposal for Flutter/Dart Inspired by Robert C. Martin’s - Clean Architecture.
- UI (Presentation Layer): Flutter widgets that compose the user interfaces of the application.
- Interactor (Business Logic Layer): Responsible for defining business logic of the feature, managing its state, entities, interfaces, repositories, services, validations, DTOs, and current state.
- Data (Data Layer): Responsible for implementing the services and repositories defined in the Interactor Layer (business logic layer).
-
Flutter Modular - Documentation:
-
Flutter TDD - Step by step:
- [FIX]
- [FEAT]
- [BREAKING CHANGE]
- Other used titles: build, chore, ci, docs, feat, fix, perf, refactor, revert, style, test.
[TYPE_CHOOSEN] FEATURE_NAME: mandatory description text goes here…
[OPTIONAL BODY HERE]
[Optional footer → “ Best regards, Vitor F. Thomé. ”]
EXAMPLE:
[FEAT] Onboarding Feature: fully functional onboarding feature.
Changelog:
- Shared widgets updated.
- Core project interfaces updated.
- Assets added.
- Design System improvements.
- Testing architecture using a StateEntity for housing feature atoms.
- Development of business logic for Onboarding feature.
Best regards, Vitor.
Language used in the project is English. All comments and naming conventions should be in English and follow the rules below:
- Data sources:
- Class name:
<Name>DataSource
- File name:
<name>_ds.dart
- Folder name:
datasources/
- Parent folder name:
data
- Class name:
- Data source contracts:
- Class name:
I<Name>DataSource
- File name:
i_<name>_ds.dart
- Folder name:
datasources/
- Parent folder name:
interactor
- Class name:
- Data transfer objects (DTOs):
- Class name:
<Name>DTO
- File name:
<name>_dto.dart
- Folder name:
dtos/
- Parent folder name:
data
orinteractor
- Class name:
- Entities:
- Class name:
<Name>Entity
- File name:
<name>_entity.dart
- Folder name:
entities/
- Parent folder name:
interactor
- Class name:
- Pages:
- Class name:
<Name>Page
- File name:
<name>_page.dart
- Folder name:
pages/
- Parent folder name:
ui
or(public)
- Class name:
- Repositories:
- Class name:
<Name>Repository
- File name:
<name>_repository.dart
- Folder name:
repositories/
- Parent folder name:
data
- Class name:
- Repository contracts:
- Class name:
I<Name>Repository
- File name:
i_<name>_repository.dart
- Folder name:
repositories/
- Parent folder name:
interactor
- Class name:
- Services:
- Class name:
<Name>Service
- File name:
<name>_service.dart
- Folder name:
services/
- Parent folder name:
data
orinteractor
- Class name:
- Use Cases:
- Class name:
<Name>UseCase
- File name:
<name>_uc.dart
- Folder name:
usecases/
- Parent folder name:
interactor
- Class name:
- Value Objects:
- Class name:
<Name>VO
- File name:
<name>_vo.dart
- Folder name:
vos/
- Parent folder name:
interactor
- Class name:
- Widgets:
- Class name:
<Name>Widget
- File name:
<name>_widget.dart
- Folder name:
widgets/
- Parent folder name:
ui
- Class name:
Keep these files inside the feature that they belong or in a shared
folder if its use is common.
Special case for pages if using routefly, they are kept inside the
(public)
folder.
Package Adopted: flutter_modular
Package Adopted: flutter_modular
Package Adopted: asp
- ASP
- Video tutorials:
- Documentation - GitHub
- Documentation - Flutterando