O aplicativo consome uma API REST para buscar e apresenta uma lista de livros sugerida pelo The New York Times.
API utilizada The New York Times Developer Network.
O aplicativo possui duas telas e elas são:
- 1º Tela que apresenta a lista de livros;
- 2º Tela de detalhes do livro selecionado na lista;
No desenvolvimento do projeto foram utilizadas as tecnologias descritas abaixo:
-
- Kotlin
-
- Retrofit é utilizada para fazer requisições HTTP a serviços Web
- Moshi é uma moderna biblioteca JSON para Android, Kotlin e Java. Ela faz de forma fácil a conversão de um JSON para objetos Kotlin e Java
- Koin é utilizada para fazer injeção de depedência
- Timber é um logger com uma API pequena e extensível que fornece utilidade sobre a classe Log normal do Android
- Mockito-Kotlin é uma pequena biblioteca que fornece funções de ajuda para trabalhar com Mockito em Kotlin
- JUnit é um framework que facilita a criação e manutenção do código para a automação de testes com apresentação dos resultados.
-
- RecyclerView é utilizada para criar listas de informações, objetos, imagens que serão apresentados na tela
- Material Design é a orientação de código e projeto oficial do Google
- ConstraintLayout permite você criar layouts grandes e complexos com uma hierarquia de visão plana (sem grupos de visão aninhados)
-
- Mockito-Kotlin é uma pequena biblioteca que fornece funções de ajuda para trabalhar com Mockito em Kotlin
- JUnit é um framework que facilita a criação e manutenção do código para a automação de testes com apresentação dos resultados.
-
- MVVM é o padrão de design de arquitetura de software que a Google indica para os novos desenvolvimento. Os novos componentes de arquitetura já são lançados com suporte a esse tipo de padrão
-
- Repository é estratégia para abstrair o acesso aos dados. Ele é composto pelo código em uma aplicação que lida com o armazenamento e a recuperação de dados. Mais detalhes.
- Dependency injection é um padrão de desenvolvimento de programas de computadores utilizado quando é necessário manter baixo o nível de acoplamento entre diferentes módulos de um sistema.
- Adapter o padrão Adapter converte a interface de uma classe para outra interface que o cliente espera encontrar, "traduzindo" solicitações do formato requerido pelo usuário para o formato compatível com o a classe adapter e as redirecionando. Dessa forma, o Adaptador permite que classes com interfaces incompatíveis trabalhem juntas
-
- Single Responsibility (SRP) principio da Responsabilidade Única
- Interface Segregation (ISP) princípio da Segregação da Interface
- Dependency Inversion (DIP) princípio da inversão da dependência