Mobile apps

What to Cook — Android

The same recipe matching as a native app: 1.5 MB, fully offline, and not a single permission requested.

Year
2026
Role
Sole author
  • Kotlin
  • Android SDK
  • Gradle
  • R8

About the project

The Android build of “What to Cook”, written in Kotlin. Fully offline and permission-free — there is no internet access even in the manifest: the database sits in assets, your own recipes in a file in internal storage, the basket in app preferences. Recipes and catalogue are shared with the web version and built from a single source.

What is inside

  • A 1.5 MB APK: R8 with obfuscation, resource shrinking, only two languages bundled
  • Integers instead of strings: checking a product against the basket is an indexed lookup in a boolean array, not a string comparison
  • Parallel arrays instead of objects — less pressure on the garbage collector while scrolling
  • Two-phase matching: sorting only counts shortfalls, the detailed breakdown runs solely for cards actually on screen
  • Streaming database parsing via JsonReader: second-language strings are skipped on the fly and never reach memory
  • A fully vector adaptive icon — no per-density PNGs at all