finds.dev← search

// the find

mitchtabian/Clean-Notes

★ 555 · Kotlin · updated Mar 2024

Clean Architecture by layer

A teaching repo for Android Clean Architecture by layer, paired with a paid course on codingwithmitch.com. It wires together Room, Firestore, Dagger2, coroutines, and MVI into a notes app. Aimed at Android devs who want to see how the layers actually connect in a real project, not just a diagram.

The layer separation is genuine — domain, data, and framework packages are distinct with no leakage between them, not just renamed folders. The test setup is thorough for a sample: unit tests on interactors with fake data sources, instrumentation tests with Espresso, and a Firebase emulator wired into the test runner. The MVI state management via DataChannelManager and typed StateEvent is more structured than the typical ViewModel-with-LiveData example. Mapper pattern between cache/network entities and domain models is cleanly applied throughout.

Dagger2 in 2024 is a significant barrier to entry — Hilt would make this far easier to follow and is the current Android recommendation. The app requires you to create your own Firebase project just to run it, which kills the 'clone and build' experience most people expect from a sample. The README is thin — it mostly points to the paid course, so the repo is incomplete documentation on its own. Last meaningful activity is old and the architecture predates Compose, so anyone adopting this as a template is inheriting a View-based UI they'll have to rethink.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →