O desafio consiste em desenvolver um app simples em Flutter, composto por apenas 3 páginas. A primeira será sua splash screen, que fará a transição para a Home . Nela você poderá exibir um logo, ou uma mensagem ao usuário por exemplo. A segunda é um perfil de usuário, apresentando a foto, nome completo e em ail deste usuário. A segunda página é uma listagem de amigos mostrando o nome completo e imagem de 15 usuários. Enquanto esta lista é buscada na API a página deverá exibir um loader. Caso um problema ocorra nesta request, um modal deverá ser mostrado dando o feedback de erro ao usuário. Os dados serão obtidos da API https://randomuser.me/api.
A fim de acelerar o processo de desenvolvimento e garantir uma boa qualidade final ao produto, realizei a implementação do protótipo(UI) da solulção, juntamente com um design system do projeto
Design system
UI
Para complementar na questão do UX, criei também um tema dark.
Alguns packages e decisões arquiteturais do projeto:
- Arquitetura: Clean architecture
- State management: MobX
- Http Client : DIO
- Dependency injection: Provider
- Routes: Flutter Navigator
- Local data store: Shared Preferences
Outros
- DartZ
- google_fonts
- flutter_launcher_icons
Foi trabalhado também a questão da responsividade da aplicação, de maneira simples mas funcional para a maioria dos casos
Possuindo o ambiente flutter/dart instalado e configurado, realize os passos a seguir:
- Execute os comandos a seguir:
flutter pub get
flutter pub run build_runner build
- Execute a aplicação