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

No packages published

Languages