https://github.com/concretesolutions/flutter-moviesapp
Uma aplicação para listar e favoritar filmes em flutter
https://github.com/concretesolutions/flutter-moviesapp
Last synced: 8 months ago
JSON representation
Uma aplicação para listar e favoritar filmes em flutter
- Host: GitHub
- URL: https://github.com/concretesolutions/flutter-moviesapp
- Owner: concretesolutions
- License: mit
- Created: 2021-03-05T19:33:33.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2021-05-13T01:15:03.000Z (about 5 years ago)
- Last Synced: 2025-06-22T18:53:10.226Z (12 months ago)
- Language: Dart
- Size: 96.9 MB
- Stars: 0
- Watchers: 8
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Flutter Movies App
[](https://pub.dev/packages/lint)
[](https://codecov.io/gh/concretesolutions/flutter-moviesapp)
[](https://github.com/concretesolutions/flutter-moviesapp/actions/workflows/CI.yml)

# Pesquisa & Desenvolvimento
Este repositório é utilizado pelo time de Flutter do projeto de Pesquisa e Desenvolvimento para validar essa tecnologia.
O 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.
## Engenharia
Alguns tópicos que foram validados com relação ao Flutter foram:
* **CI:** A criação de uma CI com o Github Actions foi simples e rápida.
* **Arquitetura:** A arquitetura utilizada foi o MVVM e se provou ser uma arquitetura válida, assim como ela costuma ser para outras tecnologias mobile.
* **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.
* **Métricas:** Para avaliar a qualidade do produto desenvolvido foi possível gerar relatórios de cobertura e validações de lint.
## Produto Desenvolvido
O produto desenvolvido foi o aplicativo Movies.
Este aplicativo é utilizado como o desafio técnico mobile da empresa.
O aplicativo consiste em Listar filmes da API do [TheMovieDB](https://www.themoviedb.org/?language=en) e criar uma lista de filmes favoritos.
### Aplicativo
Android
iOS
Web
## Executando o projeto
Um pré requisito para executar o projeto é possuir o Flutter instalado corretamente. É possível validar a instalação pelo seguinte comando.
```
$ flutter doctor
```
Com 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).
Para gerar ela acesse o seguinte link e siga as instruções:
[TheMovieDB API](https://developers.themoviedb.org/3/getting-started/introduction)
### VSCode
Caso esteja utilizando o VSCode é preciso criar uma *launch configuration*.
Com 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 & Flutter".

Após criar a configuração, substitua seu conteúdo pelo seguinte snippet, alterando apenas o valor da APIKey para a que foi gerada.
```json
{
"version": "0.2.0",
"configurations": [
{
"name": "build",
"type": "dart",
"request": "launch",
"program": "lib/main.dart",
"args": [
"--dart-define", "APIKEY="
],
},
]
}
```
Com 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*.

### Android Studio
Caso esteja utilizando o Android Studio é preciso modificar a configuração de execução.
Para isso clique na configuração "main.dart" e em seguida em "Edit Configurations...".

Após abrir a configuração, adicione o seguinte valor no campo "Additional arguments" e clique em "Apply" e em seguida em "OK".
```
--dart-define=APIKEY=
```
Com a configuração feita, basta executar ela clicando no botão de play.
### Terminal
Para executar o projeto pelo terminal basta utilizar a *flag* `--dart-define` com a APIKey.
```
flutter run --dart-define=APIKEY=
```