O App busca as vagas disponíveis na plataforma do GitHub através de consumo de API.
No Design de Arquitetura do projeto foi utilizado o conceito MVVM + Clean Architecture.
API utilizada The GitHub Jobs API.
O aplicativo possui duas telas e elas são:
- 1º Tela que apresenta a lista de vagas.
- 2º Tela de detalhes da vaga selecionada.
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.
- Glide O Glide suporta a busca, decodificação e exibição de fotos, imagens e GIFs animados. O Glide inclui uma API flexível que permite que os desenvolvedores se conectem a quase qualquer pilha de rede.
-
- 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.
- UseCase o objetivo de um caso de uso é servir o caso de uso de um usuário do sistema. Por exemplo, "acender a luz" ou "enviar e-mail para o locatário".
-
- 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.