O aplicativo WordsApp oferece uma experiência intuitiva ao exibir uma lista de palavras em inglês. Ao tocar em uma palavra, os usuários podem acessar uma tela detalhada contendo descrição, pronúncia e frequência de uso. A funcionalidade de salvar palavras favoritas localmente adiciona comodidade, permitindo aos usuários revisitar suas seleções. Esse projeto foi proposto como desafio pela equipe Pilar e pode ser acessado em DesafioMobile.
- Realizar fork e clone do projeto;
- Investigar o funcionamento da API (descobri que não é necessário cadastrar cartão de crédito para uso, testando com F12 no navegador, encontrei os parâmetros padrões);
- Adicionar dependências e estrutura inicial;
- Buscar e armazenar localmente os dados da lista de palavras;
- Criar tela inicial e exibir a lista;
- Adicionar requisição dos detalhes das palavras;
- Salvar o resultado de cada palavra pesquisada;
- Criar tela e exibir detalhes das palavras para começar a salvar o histórico;
- Adicionar recurso de histórico e armazenamento local;
- Adicionar recurso para salvar como favorito (processo semelhante ao histórico, mas com a opção de remover);
- Feito testes unitarios do wordsRepository;
- Adicionada feature para tocar pronuncia das palavras.
- Como utilizar o
secure_storage
para armazenar dados "complexos"; eu havia usado somente para guardar uma string de refreshToken; - Dependendo de onde é utilizado, o
safeArea
pode causar congelamentos no aplicativo.
-
Flutter Versão 3.10.6 - última versão estável em 15/08/2023 [doc]
-
Freezed para ajudar a criar modelos e estados de exibição [pub.dev] [doc]
-
Flutter Modular para injeção de dependência e rotas [pub.dev] [doc]
-
Flutter Secure Storage para armazenamento local criptografado [pub.dev] [doc]
-
Dio para simplificar requisições de rede e interações com API [pub.dev] [doc]
-
Mocktail facilitar os testes possibilitando a criação de mocks [pub.dev] [doc]
-
Flutter_text_to_speech (flutter_tts) tocar em audio as palavras selecionadas [pub.dev] [doc]
Este projeto foi desenvolvido utilizando uma estrutura de módulos, permitindo a separação de cada módulo em pacotes, facilitando a manutenção e coesão de cada módulo.
- CoreModule: responsável por fornecer recursos básicos a todos os módulos;
- wordsModule: para exibir a lista de palavras;
flutter pub get
flutter run
Fernando Danza Barreto
https://www.linkedin.com/in/fernando-barreto-75bb841a0/
Alguns recursos para você começar se este é o seu primeiro projeto Flutter:
Para obter ajuda para começar com o Flutter, consulte está documentação documentação online, que oferece tutoriais, exemplos, orientações sobre desenvolvimento mobile e uma referência completa da API.