{"id":34787676,"url":"https://github.com/alvarobcprado/animes_app","last_synced_at":"2025-12-25T09:32:56.623Z","repository":{"id":65355163,"uuid":"535904936","full_name":"alvarobcprado/animes_app","owner":"alvarobcprado","description":"App Flutter para estudo de modularização em packages","archived":false,"fork":false,"pushed_at":"2023-05-18T02:08:42.000Z","size":4158,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-04-17T23:02:48.957Z","etag":null,"topics":["dart","flutter","flutter-hive","flutter-provider","flutter-triple","gorouter"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alvarobcprado.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-09-13T00:56:11.000Z","updated_at":"2024-01-08T13:27:51.000Z","dependencies_parsed_at":"2023-02-11T00:45:23.413Z","dependency_job_id":null,"html_url":"https://github.com/alvarobcprado/animes_app","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/alvarobcprado/animes_app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alvarobcprado%2Fanimes_app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alvarobcprado%2Fanimes_app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alvarobcprado%2Fanimes_app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alvarobcprado%2Fanimes_app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alvarobcprado","download_url":"https://codeload.github.com/alvarobcprado/animes_app/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alvarobcprado%2Fanimes_app/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28025618,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-25T02:00:05.988Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dart","flutter","flutter-hive","flutter-provider","flutter-triple","gorouter"],"created_at":"2025-12-25T09:32:54.549Z","updated_at":"2025-12-25T09:32:56.612Z","avatar_url":"https://github.com/alvarobcprado.png","language":"Dart","readme":"# Animes\n\nAplicativo Flutter\n\n## Principais dependências\n\n- Navegação: [GoRouter](https://pub.dev/packages/go_router)\n- Injeção de dependência: [Provider](https://pub.dev/packages/provider)\n- Chamadas de rede: [Dio](https://pub.dev/packages/dio)\n- Persistência de dados: [Hive](https://pub.dev/packages/hive)\n- Gerenciamento de estado: [Flutter Triple](https://pub.dev/packages/flutter_triple)\n\n## Sobre\n\n- O aplicativo possui modularização\n- Possui internacionalização de strings, onde cada feature é responsável pelas suas strings utilizadas, além do módulo core possuir strings compartilhadas no projeto\n- É destinado um módulo para o design system do aplicativo\n- O aplicativo possui a implementação do [Widgetbook](https://www.widgetbook.io/), facilitando testar visualmente os componentes do Design System isoladamente\n- Contém a classe [Result](https://github.com/alvarobcprado/animes_app/blob/main/modules/core/lib/src/commons/result.dart), que tem como objetivo empacotar os dados retornados deixando com que cada camada lide responsavelmente com as possíveis falhas\n- Possui testes unitários, utilizando [Mocktail](https://pub.dev/packages/mocktail)\n\n## Arquitetura\n\nO aplicativo segue o padrão MVVM + Clean Architecture contendo os seguintes módulos:\n\n- App: Responsável pela inicialização do aplicativo \n- Core: Módulo que contém código compartilhado e todas as dependências utilizadas no projeto\n- Data Local: Módulo responsável por salvar e obter as informações salvas localmente\n- Dependency Injection: Responsável pela injeção de dependência do aplicativo. Este módulo conhece todos os outros\n- Design System: Módulo independente que contém as cores, tipografias e os componentes reutilizáveis de UI\n- Feature Auth: Módulo responsável pela tela de login\n- Feature Home: Módulo responsável pelas telas de listagem de animes, detalhes de um anime clicado e animes favoritados\n- Navigation: Responsável pela navegação entre as features (qualquer módulo feature tem acesso a este módulo). Cada feature pode possuir uma interface de navegação, como por exemplo: a [AuthBoundary](https://github.com/alvarobcprado/animes_app/blob/main/modules/navigation/lib/src/auth_boundary.dart) é uma interface que contém um método para navegação da Feature Auth para Feature Home. Sendo assim, cada feature é responsável pela implementação da navegação de outra feature para a sua própria feature (neste caso temos a [AuthBoundaryImpl](https://github.com/alvarobcprado/animes_app/blob/main/modules/feature_home/lib/src/boundary/auth_boundary_impl.dart) contida na Feature Home)\n\n## Telas\n\n- Login\n- Listagem de animes: Tela que exibe por paginação uma lista de animes (aleatórios, por busca ou por categoria)\n- Detalhes de um anime: Apresenta os detalhes de um anime clicado na tela anterior. Nesta tela é possível favoritar/desfavoritar um anime\n- Animes favoritados: Tela que exibe os animes favoritados do usuário\n\n# \n\n\u003cimg height=\"480px\" src=\"assets/readme/login.png\"\u003e \u003cimg height=\"480px\" src=\"assets/readme/home.png\"\u003e \u003cimg height=\"480px\" src=\"assets/readme/details.png\"\u003e \u003cimg height=\"480px\" src=\"assets/readme/favorites.png\"\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falvarobcprado%2Fanimes_app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falvarobcprado%2Fanimes_app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falvarobcprado%2Fanimes_app/lists"}