{"id":19521815,"url":"https://github.com/smarttoolfactory/posts-mvvm-daggerhilt-dynamic-feature-rxjava3-flow-sample","last_synced_at":"2025-04-26T09:31:59.496Z","repository":{"id":109487349,"uuid":"289228982","full_name":"SmartToolFactory/Posts-MVVM-DaggerHilt-Dynamic-Feature-RxJava3-Flow-Sample","owner":"SmartToolFactory","description":"Posts Api sample with Kotlin RxJava3/Coroutines Flow,  Clean Architecture, Offline first/last with Room + Retrofit2, Dagger Hilt, Dynamic Feature Modules, Static Code Analysis, Gradle DSL, MockK+ MockWebServer with Test Driven Development including Api and Database tests","archived":false,"fork":false,"pushed_at":"2020-09-24T07:01:30.000Z","size":1180,"stargazers_count":71,"open_issues_count":1,"forks_count":14,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-04T10:24:37.717Z","etag":null,"topics":["android","clean-architecture","coroutines-flow","dagger-hilt","dynamic-feature-module","dynamic-features","jetpack-android","kotlin-android","kotlin-coroutines","ktlint","mockk","mockwebserver","navigation-architecture-component","navigation-components","offline-first","retrofit2","room","room-persistence-library","rxjava3","test-driven-development"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SmartToolFactory.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-08-21T09:19:50.000Z","updated_at":"2024-11-14T20:54:28.000Z","dependencies_parsed_at":"2023-05-01T03:49:39.306Z","dependency_job_id":null,"html_url":"https://github.com/SmartToolFactory/Posts-MVVM-DaggerHilt-Dynamic-Feature-RxJava3-Flow-Sample","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SmartToolFactory%2FPosts-MVVM-DaggerHilt-Dynamic-Feature-RxJava3-Flow-Sample","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SmartToolFactory%2FPosts-MVVM-DaggerHilt-Dynamic-Feature-RxJava3-Flow-Sample/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SmartToolFactory%2FPosts-MVVM-DaggerHilt-Dynamic-Feature-RxJava3-Flow-Sample/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SmartToolFactory%2FPosts-MVVM-DaggerHilt-Dynamic-Feature-RxJava3-Flow-Sample/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SmartToolFactory","download_url":"https://codeload.github.com/SmartToolFactory/Posts-MVVM-DaggerHilt-Dynamic-Feature-RxJava3-Flow-Sample/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250967132,"owners_count":21515543,"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","coroutines-flow","dagger-hilt","dynamic-feature-module","dynamic-features","jetpack-android","kotlin-android","kotlin-coroutines","ktlint","mockk","mockwebserver","navigation-architecture-component","navigation-components","offline-first","retrofit2","room","room-persistence-library","rxjava3","test-driven-development"],"created_at":"2024-11-11T00:35:09.561Z","updated_at":"2025-04-26T09:31:59.491Z","avatar_url":"https://github.com/SmartToolFactory.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MVVM Clean Architecture with RxJava3+Coroutines Flow, Static Code Analysis, Dagger Hilt, Dynamic Features\n\n[![ktlint](https://img.shields.io/badge/code%20style-%E2%9D%A4-FF4081.svg)](https://ktlint.github.io/)\n[![Kotlin Version](https://img.shields.io/badge/kotlin-1.4.0-blue.svg)](https://kotlinlang.org)\n[![API](https://img.shields.io/badge/API-21%2B-brightgreen.svg?style=flat)](https://android-arsenal.com/api?level=21)\n\n\nSample project that build with MVVM clean architure and various cool tech stack including RxJava3 and Coroutines Flow, Dynamic Feature modules as base of BottomNavigationView or ViewPager2, with both OfflineFirst and OfflineLast approaches as database Single Source of Truth\n\n| Posts with Stautus        | Flow   | RxJava3  | Dashboard\n| ------------------|-------------| -----|--------------|\n| \u003cimg src=\"./screenshots/post_with_status.png\"/\u003e | \u003cimg src=\"./screenshots/post_flow.png\"/\u003e | \u003cimg src=\"./screenshots/post_rxjava3.png\"/\u003e |\u003cimg src=\"./screenshots/dashboard.png\"/\u003e |\n\n\n### Overview\n* Gradle Kotlin DSL is used for setting up gradle files with ```buildSrc``` folder and extensions.\n* KtLint, Detekt, and Git Hooks is used for checking, and formatting code and validating code before commits.\n* Dagger Hilt, Dynamic Feature Modules with Navigation Components, ViewModel, Retrofit, Room, RxJava, Coroutines libraries adn dependencies are set up.\n* ```features``` and ```libraries``` folders are used to include android libraries and dynamic feature modules\n* In core module dagger hilt dependencies and ```@EntryPoint``` is created\n* Data module uses Retrofit and Room to provide Local and Remote data sources\n* Repository provides offline and remote fetch function with mapping and local save, delete and fetch functions\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmarttoolfactory%2Fposts-mvvm-daggerhilt-dynamic-feature-rxjava3-flow-sample","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmarttoolfactory%2Fposts-mvvm-daggerhilt-dynamic-feature-rxjava3-flow-sample","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmarttoolfactory%2Fposts-mvvm-daggerhilt-dynamic-feature-rxjava3-flow-sample/lists"}