Um aplicativo Flutter para construção e registro de treinos de musculação, com persistência de dados local via SQLite.
AtlasFit é uma ferramenta de treino projetada para oferecer controle total sobre a criação e o acompanhamento de rotinas de musculação. A arquitetura do projeto foi focada em uma camada de dados robusta, utilizando sqflite para garantir a integridade e a persistência de todas as informações localmente no dispositivo. A UI é construída para ser funcional e reativa, permitindo a manipulação detalhada de planos de treino complexos.
- Construtor de Treinos: Permite a criação de múltiplos planos de treino, cada um contendo divisões customizáveis (ex: "Peito e Tríceps", "Pernas").
- Biblioteca de Exercícios: Módulo CRUD (Criar, Ler, Atualizar, Deletar) para uma biblioteca central de exercícios que alimenta o construtor de treinos.
- Modo de Execução: Uma interface dedicada para registrar sessões de treino, capturando dados por série: carga, repetições, notas e RPE (Avaliação de Esforço Subjetivo).
- Timer de Descanso: Um cronômetro integrado é acionado após a conclusão de uma série para controlar os intervalos de descanso.
- Persistência de Última Performance: O sistema salva automaticamente a carga e as repetições da última execução de um exercício, exibindo-as na sessão seguinte para facilitar a aplicação da sobrecarga progressiva.
- Reordenação Drag-and-Drop: Os exercícios dentro de uma divisão podem ser facilmente reordenados através de uma interface de arrastar e soltar.
- Resumo Pós-Treino: Ao finalizar uma sessão, o app exibe métricas como tempo total, volume de peso total levantado e um gráfico de frequência semanal de treinos.
| Lista de Treinos | Construtor de Treinos |
![]() |
![]() |
| Execução do Treino | Timer de Descanso |
![]() |
![]() |
| Editar Exercício no Treino | Feedback Pós-Treino |
![]() |
![]() |
| Biblioteca de Exercícios | |
![]() |
|
- Linguagem: Dart
- Framework: Flutter
- Banco de Dados:
sqflitepara persistência local, com gerenciamento de migrações e transações. - Gerenciamento de Estado:
StatefulWidget(setState) para controle de estado local e escopado. - Utilitários:
logger: Para um sistema de logs estruturado.shared_preferences: Para salvar pequenas preferências do usuário (ex: último treino fixado).fl_chart: Para o gráfico de frequência na tela de feedback.path&uuid: Utilitários para manipulação de caminhos e geração de IDs únicos.
- Arquitetura: O projeto segue uma estrutura clara com separação de responsabilidades:
screens: Widgets de tela inteira.widgets: Componentes de UI reutilizáveis.models: Camada de dados que define a estrutura dos objetos de negócio.helpers: Classes utilitárias, incluindo oDatabaseHelper(Camada de Acesso a Dados).






