Make illegal states unrepresentable, until you have to explain themA config file with eight things wrong with it A config file lands with eight things wrong with it. Your loader is built by the book, every constraint in the type system, so it stops on the first one a2TAAug 30 · 9 min readunderdroid.hashnode.dev
Proto DataStore for Configuration, Room for Entities: Choosing the Right Cache MediumThere's a reflexive tendency in Android development to pick one persistence library and apply it everywhere. You chose Room, so everything goes in Room. You liked DataStore, so now your user preferencApr 7 · 7 min readunderdroid.hashnode.dev
Self-Referential Generics in Kotlin: When Type Safety Requires Talking to YourselfKotlin's type system is expressive enough to let you write code that is simultaneously statically typed, runtime validated, and ergonomic at the call site. That combination usually requires some machiApr 1 · 13 min readunderdroid.hashnode.dev
Lean CachingOrchestrating data between a remote API and a local database is a foundational problem in mobile development. While the industry consensus rightly leans toward the Single Source of Truth pattern, the Mar 26 · 5 min readunderdroid.hashnode.dev
Stop Copying Gradle CodeIf you've worked on a multi-module Android project, you know the pain: build.gradle.kts files multiplying like rabbits, each containing the exact same Android compileSdk, Kotlin compiler options, and Mar 24 · 10 min readunderdroid.hashnode.dev