// the find
kasem-sm/SlimeKT
An article sharing platform where you can personalize, subscribe to your favorite topics, get daily-read reminders, etc. App built using Kotlin, Dagger Hilt, Room Database, Coroutines, Flow, AndroidX Glance, WorkManager, Coil etc.
SlimeKT is an Android article-sharing app with a Ktor backend in the same repo, built as a reference for multi-module Jetpack Compose architecture: Hilt, Room, Flow, WorkManager, and a Glance home-screen widget. It is for Android developers who want a full-stack example of how those pieces fit together. The README calls it a work in progress, so it is not a product to adopt as-is.
The module split is real rather than cosmetic: auth-api and auth-impl are separate modules, database and core are their own modules, and features/article/daily-read-worker keeps the WorkManager code apart from the UI. The Interactor, ObserverInteractor, and ObservableLoader classes in core/domain, documented in docs/guide, give one pattern for cache-first Flow updates, which most sample apps leave out. The Glance widget driven by WorkManager is a worked example of a combination with very little public sample code. The Room DAO test wires Hilt through a custom test runner with Flow helpers, so the persistence layer runs on a device.
The last push was 2023-03-21, more than three years ago, so the Compose, Hilt, Ktor, and Glance versions are probably well behind, and anyone copying the build setup should check versions first. The module count is out of proportion to the app: at least seven Android modules plus a custom navigator layer (CoreNavigator, BottomNavigatorImpl, BackHandlerImpl) alongside Compose Destinations adds indirection a single-module app would not need. api/.env is committed to the tree and I have not seen its contents, so check it for secrets before reusing this backend config. The visible tests are one DAO test file, and nothing in the visible part of the tree covers the interactors or view models the architecture is built around.