{"id":13610534,"url":"https://github.com/krzdabrowski/android-starter-2022","last_synced_at":"2025-04-12T22:34:08.586Z","repository":{"id":46295578,"uuid":"482774200","full_name":"krzdabrowski/android-starter-2022","owner":"krzdabrowski","description":"Clean Android multi-module offline-first scalable app in 2022. Including Jetpack Compose (with tests), MVI, Material 3, Kotlin coroutines/Flow, Kotlin serialization, Hilt, Room, JUnit5, Turbine, MockK, GitHub Actions, Renovate, KtLint and Detekt.","archived":false,"fork":false,"pushed_at":"2024-11-23T13:12:52.000Z","size":635,"stargazers_count":409,"open_issues_count":2,"forks_count":45,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-11-23T13:22:05.537Z","etag":null,"topics":["android","clean-architecture","hilt-android","jetpack-compose","kotlin","kotlin-coroutines","kotlin-flow","kotlin-serialization","material3","mockk","room","turbine","version-catalog"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/krzdabrowski.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2022-04-18T08:35:58.000Z","updated_at":"2024-11-19T10:09:12.000Z","dependencies_parsed_at":"2022-09-14T09:42:14.700Z","dependency_job_id":"3ee5a6e5-8f52-4e19-b9cf-012b28f319dc","html_url":"https://github.com/krzdabrowski/android-starter-2022","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krzdabrowski%2Fandroid-starter-2022","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krzdabrowski%2Fandroid-starter-2022/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krzdabrowski%2Fandroid-starter-2022/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krzdabrowski%2Fandroid-starter-2022/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/krzdabrowski","download_url":"https://codeload.github.com/krzdabrowski/android-starter-2022/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248642233,"owners_count":21138350,"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":["android","clean-architecture","hilt-android","jetpack-compose","kotlin","kotlin-coroutines","kotlin-flow","kotlin-serialization","material3","mockk","room","turbine","version-catalog"],"created_at":"2024-08-01T19:01:45.635Z","updated_at":"2025-04-12T22:34:08.580Z","avatar_url":"https://github.com/krzdabrowski.png","language":"Kotlin","funding_links":[],"categories":["Kotlin"],"sub_categories":[],"readme":"# **Android Kotlin starter project - 2022 edition**\n\n[![Android Weekly #532 badge](https://androidweekly.net/issues/issue-532/badge)](https://androidweekly.net/issues/issue-532)\n\n[![Jetc.dev #147 badge](https://img.shields.io/badge/Featured%20in%20jetc.dev-Issue%20%23147-blue)](https://jetc.dev/issues/147.html)\n\nAndroid starter project, described precisely in [this](https://proandroiddev.com/clean-android-multi-module-offline-first-scalable-app-in-2022-including-jetpack-compose-mvi-987ebecbecae) and [this article](https://medium.com/codequest/clean-android-multi-module-offline-first-scalable-app-in-2022-part-2-including-compose-ui-e1fd0a0f410e).\n\nThe codebase is still up-to-date in 2023 and 2024 with periodically updates.\n\n### **Purpose**\nTo show good practices using Kotlin features and latest Android libraries from Jetpack in 2022.\n\nFor comparison, 2019 edition code available [here](https://github.com/krzdabrowski/android-starter-2019).\n\n### **Description**\nApplication connects to SpaceX API to download its rocket fleet.\n\nData always comes from the local persistence (offline-first approach) and updates when necessary.\n\nClicking on each item navigates user to a browser to read more information on the Web.\n\nUse swipe-down gesture to refresh downloaded data.\n\nSupports light/dark mode theming automatically.\n\n\n### **Libraries/concepts used**\n\n* Gradle modularised project by features\n* The Clean Architecture with MVI pattern in presentation layer\n* Jetpack Compose with Material3 design - for UI layer\n* Kotlin Coroutines \u0026 Kotlin Flow - for concurrency \u0026 reactive approach\n* Kotlin Serialization converter - for JSON parsing\n* Retrofit - for networking\n* Hilt - for Dependency Injection pattern implementation\n* Room - for local database\n* Coil - for image loading\n* Version Catalog - for dependency management\n* Baseline and Startup Profiles - for performance improvements during app launch\n* Timber - for logging\n* JUnit5, Turbine and MockK - for unit tests\n* Jetpack Compose test dependencies, Maestro and Hilt - for UI tests\n* GitHub Actions - for CI/CD\n* KtLint and Detekt - for code linting\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrzdabrowski%2Fandroid-starter-2022","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkrzdabrowski%2Fandroid-starter-2022","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrzdabrowski%2Fandroid-starter-2022/lists"}