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.
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