finds.dev← search

// the find

philipplackner/CMP-Bookpedia

★ 280 · Kotlin · updated Nov 2024

A teaching project by Philipp Lackner showing how to build a book search and favorites app with Kotlin Multiplatform and Compose Multiplatform, targeting Android, iOS, and desktop. It pulls data from the Open Library API and persists favorites locally via Room. This is a course companion repo, not a production app or reusable library.

Clean MVI architecture with proper separation of domain, data, and presentation layers — `Book` domain model never leaks DTO or entity types upward. The custom `Result<D, E: Error>` type with typed `DataError` variants is a solid pattern that avoids stringly-typed error handling. Room is used across all three targets via the new KMP Room alpha, which is the right call over SQLDelight for teams already familiar with Android Room. The per-platform `DatabaseFactory` expect/actual split is done correctly rather than hacked around.

It's a course sample, so there are no tests at all — not unit, not integration, not UI. The README is the bare-bones KMP project template with zero description of what the app actually does or how to run it. Last pushed November 2024, and it depends on Room KMP alpha; that library has since moved and the build will likely need dependency updates before it compiles. The 230 forks to 280 stars ratio tells you most people cloned this as homework, not because they're using it as a reference.

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 →