Português
- Crie um fork desse repositório
- Escolha entre o Desafio 1 e Desafio 2 qual você irá querer resolver
- Ao final do desafio um pull request deve ser criado nesse repositório com o seguinte padrão:
PR: [DESAFIO-X] username
Assim que terminar, por favor nos avise.
Estamos à disposição, para tirar dúvidas.
Happy coding! 🤓
Utilizando a API do TheMovieDB, criar um app que mostre os filmes que estão em cartaz nos cinemas.
- O app deve conter uma lista com os filmes que estão em cartaz.
- O app deve conter uma lista com os filmes favoritados pelo usuário.
- Ao selecionar um filme mostrar uma nova tela com informações detalhadas do filme e opção de favoritá-lo ou desfavoritá-lo.
- Na tela de listagem dos filmes, ir carregando as próximas páginas ao dar scroll até o final da página atual
- Na tela de detalhe, criar uma opçāo para tocar o vídeo do trailer do filme.
- Na tela inicial, possibilitar a busca por título do filme
O aplicativo contido nesse repositório apresenta bugs, erros de lógica, código incompleto, inconsistência de UI. O objetivo do desafio é fazer o app se comportar como o esperado fazendo as devidas correções. Utilizar a API do TheMovieDB
- Ao fazer as devidas correções o app deve ter o comportamento e UI iguais as do VÍDEO e IMAGENS em anexo.
- Todos os testes unitários que estão implementados devem obter sucesso.
- Cada alteração no código deve ser precedida de um comentário explicando o porquê da alteração. Os tipos de comentários devem seguir o padrão mostrado na seção tipos de comentário
- Implemnentar testes de UI
- Todo código novo que for adicionado no projeto.
/*
@INSERÇÃO
A seguinte função foi criada para …
*/
- Todo código existente que for alterado no projeto.
/*
@ALTERAÇÃO
A seguinte função foi alterada para …
*/
- Todo código que for deletado no projeto.
/*
@DELEÇÃO
A seguinte função foi deletada pois …
-> func loadMovies(page: Int) -> void (assinatura da função)
-> var movies: [Movie] (assinatura da variável)
-> class HomeMoviesViewModel: ObservableObject (assinatura da Classe)
*/
- Não ocorreu nenhuma das ações anteriores, o desafiado apenas faz uma sugestão.
/*
@SUGESTÃO
Nesse caso poderia ser usado …
*/
English
- Create a fork from this repository
- Choose between Challenge 1 and Challenge 2 which you want to solve
- At the end of the challenge a pull request must be created in this repository with the following pattern:
PR: [CHALLENGE-X] username
As soon as you finish, please let us know.
We are available to answer any questions.
Happy coding! 🤓
Using the API from TheMovieDB, create an app that shows the featured movies in the Theaters.
- The app must contain a list of featured movies in the Theaters.
- The app must contain a list of the user's favorite movies.
- When selecting a movie, show a new screen with detailed information of the movie and option to like or unlike it.
- In the main list of the movies, would be nice if the app could load more movies, as the scroll reaches the bottom section of the current page
- In the detail screen, would be nice to have an option to play the movie trailer.
- In the main screen, would be nice to have the possibility to search by the movie title.
The application contained in this repository has bugs, logic errors, incomplete code, UI inconsistency. The goal of the challenge is to make the app behave as expected by making the necessary corrections. Use the API from TheMovieDB
- When making the necessary corrections, the app must have the same behavior and UI as the attached VIDEO and IMAGES.
- All unit tests that are implemented must succeed.
- Each code change must be preceded by a comment explaining the reason for the change. Comment types must follow the pattern shown in the comment types section.
- Implement UI tests.
- Any new code that is added to the project
/*
@INSERTION
The following function was created to …
*/
- Any existing code that changes in the project.
/*
@CHANGE
The following function has been changed to …
*/
- Any code that has been deleted in the project.
/*
@DELETION
The following function was deleted because …
-> func loadMovies(page: Int) -> void (function signature)
-> var movies: [Movie] (variable signature)
-> class HomeMoviesViewModel: ObservableObject (class signature)
*/
- None of the above actions took place, the challenged just makes a suggestion.
/*
@SUGGESTION
In that case it could be used …
*/