{"id":21541727,"url":"https://github.com/concretesolutions/flutter-moviesapp","last_synced_at":"2025-10-14T14:42:25.848Z","repository":{"id":52497199,"uuid":"344914253","full_name":"concretesolutions/flutter-moviesapp","owner":"concretesolutions","description":"Uma aplicação para listar e favoritar filmes em flutter","archived":false,"fork":false,"pushed_at":"2021-05-13T01:15:03.000Z","size":101568,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-06-22T18:53:10.226Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/concretesolutions.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":"2021-03-05T19:33:33.000Z","updated_at":"2021-03-25T20:36:35.000Z","dependencies_parsed_at":"2022-09-06T14:41:10.016Z","dependency_job_id":null,"html_url":"https://github.com/concretesolutions/flutter-moviesapp","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/concretesolutions/flutter-moviesapp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/concretesolutions%2Fflutter-moviesapp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/concretesolutions%2Fflutter-moviesapp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/concretesolutions%2Fflutter-moviesapp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/concretesolutions%2Fflutter-moviesapp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/concretesolutions","download_url":"https://codeload.github.com/concretesolutions/flutter-moviesapp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/concretesolutions%2Fflutter-moviesapp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279019154,"owners_count":26086682,"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-10-14T02:00:06.444Z","response_time":60,"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":[],"created_at":"2024-11-24T05:07:24.485Z","updated_at":"2025-10-14T14:42:25.832Z","avatar_url":"https://github.com/concretesolutions.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Flutter Movies App\n[![style: lint](https://img.shields.io/badge/style-lint-4BC0F5.svg)](https://pub.dev/packages/lint) \n[![codecov](https://codecov.io/gh/concretesolutions/flutter-moviesapp/branch/main/graph/badge.svg?token=KDMRUVBEW6)](https://codecov.io/gh/concretesolutions/flutter-moviesapp) \n[![Run CI](https://github.com/concretesolutions/flutter-moviesapp/actions/workflows/CI.yml/badge.svg)](https://github.com/concretesolutions/flutter-moviesapp/actions/workflows/CI.yml)\n\n![Gif](readmeResources/LogoConcrete-animado.gif)\n\n# Pesquisa \u0026 Desenvolvimento\nEste repositório é utilizado pelo time de Flutter do projeto de Pesquisa e Desenvolvimento para validar essa tecnologia.\n\nO objetivo principal desse time na iniciativa é validar como o Flutter está preparado para os padrões de engenharia sólida que a Concrete busca nos produtos que desenvolvemos.\n\n## Engenharia \nAlguns tópicos que foram validados com relação ao Flutter foram:\n* **CI:** A criação de uma CI com o Github Actions foi simples e rápida.\n* **Arquitetura:** A arquitetura utilizada foi o MVVM e se provou ser uma arquitetura válida, assim como ela costuma ser para outras tecnologias mobile.\n* **Testes:** A criação de testes foi simples devido a grande quantidade de códigos prontos que auxiliam na escrita. Entretando, o log de testes que falham é ruim e de díficil entendimento.\n* **Métricas:** Para avaliar a qualidade do produto desenvolvido foi possível gerar relatórios de cobertura e validações de lint.\n\n## Produto Desenvolvido\nO produto desenvolvido foi o aplicativo Movies.\n\nEste aplicativo é utilizado como o desafio técnico mobile da empresa.\n\nO aplicativo consiste em Listar filmes da API do [TheMovieDB](https://www.themoviedb.org/?language=en) e criar uma lista de filmes favoritos.\n\n### Aplicativo\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd style='text-align:center; vertical-align:middle'\u003eAndroid\u003c/td\u003e\n     \u003ctd style='text-align:center; vertical-align:middle'\u003eiOS\u003c/td\u003e\n     \u003ctd style='text-align:center; vertical-align:middle'\u003eWeb\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"readmeResources/android.gif\" width=270 height=480\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"readmeResources/ios.gif\" width=270 height=480\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"readmeResources/web.gif\" width=270 height=480\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n \u003c/table\u003e\n\n## Executando o projeto\nUm pré requisito para executar o projeto é possuir o Flutter instalado corretamente. É possível validar a instalação pelo seguinte comando.\n\n```\n$ flutter doctor\n```\n\nCom o flutter instalado corretamente é preciso realizar mais uma configuração para que seja possível executar o projeto. Para essa configuração será necessário ter uma `APIKey` da API do [TheMovieDB](https://www.themoviedb.org/?language=en). \n\nPara gerar ela acesse o seguinte link e siga as instruções:\n\n[TheMovieDB API](https://developers.themoviedb.org/3/getting-started/introduction)\n\n### VSCode\nCaso esteja utilizando o VSCode é preciso criar uma *launch configuration*.\n\nCom o projeto aberto no VSCode é possível adicionar uma launch configuration ao ir na aba \"Run and Debug\", clicando em \"create a launch.json file\" e por fim selecionando a opção \"Dart \u0026 Flutter\".\n\n![img](readmeResources/VSCodeConfig.png)\n\nApós criar a configuração, substitua seu conteúdo pelo seguinte snippet, alterando apenas o valor da APIKey para a que foi gerada.\n\n```json\n{\n    \"version\": \"0.2.0\",\n    \"configurations\": [\n        {\n            \"name\": \"build\",\n            \"type\": \"dart\",\n            \"request\": \"launch\",\n            \"program\": \"lib/main.dart\",\n            \"args\": [\n                \"--dart-define\", \"APIKEY=\u003cSUA API KEY\u003e\"\n            ],\n        },\n    ]\n}\n```\nCom a configuração feita, basta executar ela clicando na aba \"Run and Debug\" e, em seguida, no botão de play com o nome *build*.\n\n![img](readmeResources/VSCodeRun.png)\n\n\n### Android Studio\nCaso esteja utilizando o Android Studio é preciso modificar a configuração de execução.\n\nPara isso clique na configuração \"main.dart\" e em seguida em \"Edit Configurations...\".\n\n![img](readmeResources/ASOpenConfiguration.png)\n\nApós abrir a configuração, adicione o seguinte valor no campo \"Additional arguments\" e clique em \"Apply\" e em seguida em \"OK\".\n\n```\n--dart-define=APIKEY=\u003cSUA API KEY\u003e\n```\n\nCom a configuração feita, basta executar ela clicando no botão de play.\n\n### Terminal\nPara executar o projeto pelo terminal basta utilizar a *flag* `--dart-define` com a APIKey.\n\n```\nflutter run --dart-define=APIKEY=\u003cSUA API KEY\u003e\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconcretesolutions%2Fflutter-moviesapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fconcretesolutions%2Fflutter-moviesapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconcretesolutions%2Fflutter-moviesapp/lists"}