Skip to content

slomanojlo/oktomaca

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

## Oktomaca
Github user info fetching.


## Overview
Oktomaca is a demo app written in Kotlin that displays the profile, repos & commits of the Github user Oktocat.
The data is fetched from a remote [Github] (https://developer.github.com/v3/).
This app demonstrate the use of [Retrofit](https://square.github.io/retrofit/) to make REST requests
to the web service and [Glide](https://bumptech.github.io/glide/) to load and cache images by URL.

The app also leverages [ViewModel](https://developer.android.com/topic/libraries/architecture/viewmodel),
[LiveData](https://developer.android.com/topic/libraries/architecture/livedata),
[Data Binding](https://developer.android.com/topic/libraries/data-binding/) with binding
adapters, and [Navigation](https://developer.android.com/topic/libraries/architecture/navigation/).


## Architecture

* **Model** layer is in charge of storing and accessing data.
* **Retrofit** is in charge of the REST communication.
* **Repository** is an abstraction in charge of empowering the separation of concerns.
* **ViewModel** is the core of the app which interacts both with the UI and the Data layer.
* **MainActivity** is as the only app activity + as lightweight as possible
* **Fragments** are in charge of binding data and xml and passing events to the ViewModels
* The app responds well to edge cases like connection failure and supports **screen rotation**


## Potential Enhancements
* thouroughly test the MVVM structure
* increase the No of tests
* add more error handling feedback to the user
* implement local caching with the Room DB
* test on multiple devices (tested on Samsung A10 and Samsung S8)



## Other
* Kotlin and MVVM knowledge base: [Codelabs](https://codelabs.developers.google.com/android-kotlin-fundamentals/)
* [Dagger Hilt] (https://dagger.dev/hilt/)

About

Fetching repos from GitHub

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages