{"id":22958040,"url":"https://github.com/sergio11/android_jsonplaceholder_prototyping_app","last_synced_at":"2025-04-02T01:51:57.995Z","repository":{"id":90143360,"uuid":"316807197","full_name":"sergio11/android_jsonplaceholder_prototyping_app","owner":"sergio11","description":"Android {JSON} Placeholder Prototyping App","archived":false,"fork":false,"pushed_at":"2020-11-29T19:43:12.000Z","size":22322,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-07T16:48:09.285Z","etag":null,"topics":["coroutines","dagger2","gson","jetpack-android","material-design","mockito-kotlin","mvvm","mvvm-architecture","retrofit2","room","room-persistence-library"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sergio11.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-28T19:29:11.000Z","updated_at":"2022-03-26T12:33:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"effa2cfe-4469-4e36-8458-51de2c69540c","html_url":"https://github.com/sergio11/android_jsonplaceholder_prototyping_app","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergio11%2Fandroid_jsonplaceholder_prototyping_app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergio11%2Fandroid_jsonplaceholder_prototyping_app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergio11%2Fandroid_jsonplaceholder_prototyping_app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergio11%2Fandroid_jsonplaceholder_prototyping_app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sergio11","download_url":"https://codeload.github.com/sergio11/android_jsonplaceholder_prototyping_app/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246741186,"owners_count":20826063,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coroutines","dagger2","gson","jetpack-android","material-design","mockito-kotlin","mvvm","mvvm-architecture","retrofit2","room","room-persistence-library"],"created_at":"2024-12-14T17:35:26.521Z","updated_at":"2025-04-02T01:51:57.973Z","avatar_url":"https://github.com/sergio11.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Android {JSON} Placeholder Prototyping App\n\n## Main Goals\n\n* Clean architecture approach.\n* Dependency injection through Dagger.\n* Asynchronous operations management with coroutines.\n* Using Material Design guidelines.\n* Using Jetpack Navigation to configure the navigation between screens.\n* Using local storage baseond on Jetpack Room Library to implement cache layer through repository pattern.\n* Testing with mockito-kotlin, assertj, junit, robolectric mock web server..\n\n## Points to be assess.\n\n* Post detail is retrieved only once, next calls get the information from local storage.\n\n\u003cimg  src=\"./images/network_inspector.PNG\" /\u003e\n\n* 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.\n\n\u003cimg src=\"./images/network_inspector_2.PNG\" /\u003e\n\n* You can see with the Android Studio database inspector how the data is structured to persist locally.\n\n\u003cimg src=\"./images/database_inspector.PNG\" /\u003e\n\n* Unit tests have been implemented to validate the logic implemented in the repository layer\n\n\u003cimg src=\"./images/test.PNG\" /\u003e\n\n\n## Screenshots\n\n\u003cimg width=\"250px\" align=\"left\" src=\"./images/app_gift.gif\" /\u003e\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsergio11%2Fandroid_jsonplaceholder_prototyping_app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsergio11%2Fandroid_jsonplaceholder_prototyping_app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsergio11%2Fandroid_jsonplaceholder_prototyping_app/lists"}