Criar um aplicativo de filmes que consulte a API do TheMovieDatabase.
- Escolher algumas funcionalidades e implementar seguindo os critérios de avaliação
- Nenhuma das funcionalidades dos desafios abaixo exigem autenticação do usuário. Podem ser acessados apenas usando alguma(s) chave(s) de aplicação dependendo da API.
Navegação de filmes usando a TheMovieDatabase API
- Use o parâmetro
language
com o valor pt-BR ou en. - Campos sugeridos: Title (caso use a língua
pt-BR
), name, release date e vote average. - Mostre uma imagem, usando os campos
backdrop_path
ouposter_path
- Url para Imagens podem ser montadas de acordo com a documentação
- A exibição pode ser em formato de lista ou grade
- No caso de grade, exiba apenas o atributo
Title
.
- No caso de grade, exiba apenas o atributo
2) Listagem de filmes populares
- Mesmas funcionalidades de filmes em cartaz
3) Listagem de filmes mais bem avaliados
- Mesmas funcionalidades de filmes em cartaz
- Youtube
Uso de algum framework ou biblioteca para organização de arquitetura e/ou redução de código "boilerplate":
- Dagger2 ou Dagger
- Databind
- RxAndroid/RxJava
- ButterKnife
- Dart
- Gradle
- Maven
- GSON
- Jackson Mapper
- Moshi
- Volley
- Ion
- Wasp
- Retrofit
- Picasso
- Fresco
- Glide
- Ion
- Volley
- MVP
- MVVM
As bibliotecas citadas são apenas sugestões, sinta-se a vontade para usar outras.
- Qualidade é melhor que quantidade.
- Usar Kotlin em vez de Java é um grande diferencial.
- Evite fazer requisições desnecessárias. Exemplos de tratamentos:
- Cache de imagens.
- Tente manter o estado durante rotações (caso seja permitido).
- Uso de níveis de SDK compatíveis com o mercado.
- Mantenha uma estrutura consistente de navegação, seja por abas ou menu deslizante, conforme o caso.
- Preocupação com compatibilidade e bom uso de biblioteca de suporte: Support Library v4, Appcompat v7, Design Library.
- Uso de componentes novos e/ou do Material Design: Toolbar, RecyclerView, AppBar, CoordinatorLayout, SnackBar, FloatActionButton e etc...
- Preocupação com organização de código/padronização.
- Uso de design patterns.
- Não é obrigatório tratamento para mudança de orientação, caso permita, será avaliado.
- Testes unitários ou instrumentados serão considerados extras.