
Projeto: Calculadora de IMC
**Versão do Flutter:** 2.10.5
### Objetivo do Projeto
Este projeto visa desenvolver uma aplicação para cálculo do Índice de Massa Corporal (IMC) do utilizador, proporcionando uma compreensão abrangente sobre navegação entre telas, gestão de pilhas de visualização e o uso de bibliotecas essenciais como Hive e SharedPreferences para persistência de dados. Além disso, o projeto pretende introduzir uma base sólida em padrões de design com uma migração para a arquitetura MVC (Model-View-Controller), promovendo conhecimentos em modelagem de dados, controlo de lógica e criação de interfaces de utilizador.
### Tecnologias e Objetivos
- **Desenvolvimento em Flutter**: Criação de uma aplicação completa.
- **Navegação e Empilhamento de Telas**: Configuração de uma navegação fluida e eficiente.
- **Persistência de Dados**: Utilização das bibliotecas Hive e SharedPreferences.
- **Padrão de Design MVC**: Implementação do padrão MVC para estruturação do código.
- **Boas Práticas de Código**: Refatoração e identação adequadas para manutenção de qualidade.
- **Lógica Condicional em Dart**: Implementação e otimização de lógica condicional.
- **Interface de Utilizador**: Design alinhado com os princípios do Material Design.
- **Separação de Lógica de Negócios e Visualização**: Distinção entre a lógica de negócios e a camada de apresentação.
- **Armazenamento em Cache**: Uso do Hive para manipulação de dados em cache.
- **Adaptação de Modelos para Hive**: Estruturação de dados para persistência local.
- **Repositórios de Dados**: Criação de repositórios para acesso a dados locais.
- **Componentes Personalizados**: Desenvolvimento de componentes reutilizáveis.
- **Autenticação com Email e Senha**: Gestão de sessões de utilizador com SharedPreferences.
- **Funcionalidade de Logout**: Implementação de função de encerramento de sessão.
- **Carregamento Assíncrono com FutureBuilder**: Carregamento de dados com FutureBuilder.
- **Async, Await e Future em Dart**: Aplicação de métodos assíncronos.
- **Null Safety em Dart**: Utilização de null safety para segurança no código.
Este projeto fornece uma introdução prática e completa ao desenvolvimento de aplicações com Flutter, promovendo o domínio de técnicas essenciais para o mercado.