slomanojlo/oktomaca
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
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/)