finds.dev← search

// the find

mitchtabian/Food2Fork-KMM

★ 369 · Kotlin · updated Feb 2022

Kotlin Multiplatform project that gets network data from Food2Fork.ca

A course companion app for learning Kotlin Multiplatform Mobile — Ktor for networking, SQLDelight for local caching, Jetpack Compose on Android, SwiftUI on iOS. The shared layer handles business logic and data; each platform owns its UI. This is a teaching project, not a production template.

The shared/platform split is clean — network models, interactors, and SQLDelight queries live in commonMain while platform-specific DI (Hilt on Android, manual modules on iOS) stays where it belongs. SQLDelight is a good choice here; type-safe SQL that compiles for both targets beats an ORM that barely works on one. The buildSrc version catalog approach keeps dependency versions consistent across modules without version catalogs plugin complexity. The architecture diagram in the README accurately reflects the actual code structure, which is rarer than it should be.

Last commit was February 2022 — KMM has changed significantly since then, including the rename to KMP and tooling updates that make parts of this setup outdated. The API key for Food2Fork.ca is presumably hardcoded or gone; the food2fork.ca API shut down, so the app doesn't actually work without swapping in a different recipe API. iOS DI is manual module instantiation rather than anything principled — fine for a course but would fall apart at scale. There are no tests anywhere in the repo, shared or platform, which undercuts the main argument for KMM (write once, test once).

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 →