Uma calculadora construída com Flutter
Este projeto foi criado como uma forma prática de aprender e implementar os fundamentos do Flutter e gerenciamento de estado usando conceitos como:
- Gerenciamento de estado local
- Separação de responsabilidades (UI, lógica, dados)
- Widgets customizados
- Criação de componentes reutilizáveis
- Implementação de operações matemáticas e validações
- Operações aritméticas básicas (adição, subtração, multiplicação, divisão)
- Cálculos de porcentagem
- Suporte para números decimais
- Funções de limpar e deletar
- Interface limpa e intuitiva
- Design responsivo
- Integração com Google Fonts customizadas
lib/
├── main.dart # Ponto de entrada do app
├── app.dart # Configuração principal do app
├── constants/
│ ├── app_colors.dart # Paleta de cores
│ └── app_styles.dart # Estilos de texto e temas
├── models/
│ └── calculator_state.dart # Modelo de gerenciamento de estado
├── screens/
│ └── calculator_screen.dart # Tela principal da calculadora
├── services/
│ └── calculator_service.dart # Lógica de negócio
└── widgets/
├── calculator_button.dart # Widget de botão reutilizável
└── calculator_display.dart # Widget do display
- Flutter SDK (^3.10.7)
- Dart SDK
- Android Studio / VS Code com extensões Flutter
flutter pub getflutter runO projeto segue um padrão de arquitetura limpa:
- Constants: Cores e estilos centralizados
- Models: Estruturas de dados para gerenciamento de estado
- Services: Lógica de negócio separada da UI
- Screens: Visualizações de página completa
- Widgets: Componentes de UI reutilizáveis
Esta estrutura torna o código:
- Fácil de manter
- Simples de testar
- Escalável para futuras funcionalidades
- Clara separação de responsabilidades
- Gerenciamento de Estado: Usa o modelo
CalculatorStatepara rastrear números atuais, operação e display - Lógica de Negócio:
CalculatorServicelida com todos os cálculos - Componentes de UI: Widgets modulares para botões e display
- Lógica da Tela:
CalculatorScreengerencia interações do usuário e atualizações de estado
Durante o desenvolvimento deste projeto, aprendi:
- Gerenciamento de Estado
- Arquitetura Limpa
- Design UI/UX
- Resolução de Problemas
- Modo calculadora científica
- Histórico de cálculos
- Customização de tema
- Suporte para modo paisagem
Este projeto é de código aberto e está disponível para fins educacionais.