Skip to content

Kotlin project, MVVM, Paging 3.0, Koin, Navigation.

Notifications You must be signed in to change notification settings

diegocunhawarren/GitHub-TechChallenge

Repository files navigation

GitHub-TechChallenge

Descrição do Projeto

Aplicação Android desenvolvida utilizando Kotlin e arquitetura MVVM, com a finalidade de pesquisar e listar os repositório públicos do gitHub e fornecer detalhes sobre os repositórios.

Como executar

1. Instale o Android Studio

2. Através do terminal, clone o repositório com o seguinte comando: $ git clone https://github.com/Felipe041198/GitHub-TechChallenge

3. Abre o projeto utilizando o Android Studio e aguarde a indexação

4. Execute o projeto

Utilizações

Os componentes, bibliotescas e técnicas utilizadas foram pensadas para dar a aplicação fluidez, organização e escalabilidade.

MVVM

Projeto divido em 3 camadas: A camada de Model, onde estão presentes a origem dos dados apresentados na aplicação. (Por exemplo classes de banco de dados). A camada de View, onde estão presentes as activitys/fragments responsaveís por receber e apresentar os dados. E a camada ViewModel, que vai abstrair a view e ser responsável pelo tratamento das informações apresentadas.

Material Design

As interfaces foram desenvolvidas utilizando componentes do Material Desing, para melhorar a experiência do usuário.

Coroutines

Courotines foram utilizadas para conseguir fazer um bom uso das threads disponível e potencializar a performance da aplicação, sendo possível executar rotinas em cooperação.

Paging Library 3.0

A Paging Library 3.0 permite que os dados carregados da Api sejam salvos no banco de dados e carregados de acordo com a página em questão. O Remote Mediador age como uma camada que verifica a página atual, próxima e anterior para determinar a próxima chamada à Api, assim como a operação de inserção dos dados.

Koin

Biblioteca utilizada para injeção de dependências por ser simples e pratica, além de funcionar bem.

Glide

Biblioteca utilizada para utilização de imagens.

Android Jetpack Nabigation

Componente utilizada para facilitar a navegação entre as telas.

Possibilidades Futuras

Houve a tentativa de implementação dos testes unitários, que seria feita utilizando o JUnit para automatização dos testes e o Mockito para isolar e criar as dependências, porém a biblioteca utilizada para controlar a exibição das informações e a paginação (Paging 3.0) dificultou a implementação dos testes usando as courotines.

Dessa forma, para criar testes eficientes e lógicos, seria preciso um estudo sobre a documentação do Paging 3.0 e um tempo maior para implementação. Os resultados obtidos até o momento não foram satisfatorios para entrar na versão final do projeto.

About

Kotlin project, MVVM, Paging 3.0, Koin, Navigation.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages