Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sergio11/android_jsonplaceholder_prototyping_app
Android {JSON} Placeholder Prototyping App
https://github.com/sergio11/android_jsonplaceholder_prototyping_app
coroutines dagger2 gson jetpack-android material-design mockito-kotlin mvvm mvvm-architecture retrofit2 room room-persistence-library
Last synced: about 23 hours ago
JSON representation
Android {JSON} Placeholder Prototyping App
- Host: GitHub
- URL: https://github.com/sergio11/android_jsonplaceholder_prototyping_app
- Owner: sergio11
- License: gpl-3.0
- Created: 2020-11-28T19:29:11.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2020-11-29T19:43:12.000Z (about 4 years ago)
- Last Synced: 2024-12-14T17:39:58.889Z (about 2 months ago)
- Topics: coroutines, dagger2, gson, jetpack-android, material-design, mockito-kotlin, mvvm, mvvm-architecture, retrofit2, room, room-persistence-library
- Language: Kotlin
- Homepage:
- Size: 21.3 MB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Android {JSON} Placeholder Prototyping App
## Main Goals
* Clean architecture approach.
* Dependency injection through Dagger.
* Asynchronous operations management with coroutines.
* Using Material Design guidelines.
* Using Jetpack Navigation to configure the navigation between screens.
* Using local storage baseond on Jetpack Room Library to implement cache layer through repository pattern.
* Testing with mockito-kotlin, assertj, junit, robolectric mock web server..## Points to be assess.
* Post detail is retrieved only once, next calls get the information from local storage.
* Also, I have configured a HTTP cache layer to give support to the ETAG mechanism. If a second post has the same author that has been retrieved before, is not necessary to get the same data again.
* You can see with the Android Studio database inspector how the data is structured to persist locally.
* Unit tests have been implemented to validate the logic implemented in the repository layer
## Screenshots