Blog
Android dev, QA, AI tools, and solo building.
Android Memory Profiling with Android Studio: A Solo Developer's Guide
Android Gradle Version Catalogs in Depth
Learn how to use Android Studio's memory profiler to detect leaks, analyze heap usage, and write memory‑efficient Kotlin apps as a solo developer.
Discover how version catalogs eliminate version drift, streamline dependency updates, and keep 22+ Android projects consistent across a solo developer workflow.
Discover how to replace string‑based navigation in Jetpack Compose with sealed‑class routes, achieving compile‑time safety, better IDE support, and cleaner architecture.
A solo Android developer compares Retrofit and Ktor across real-world criteria: setup complexity, coroutine support, serialization, and maintenance overhead, with working code examples you can copy today.
A practical breakdown of Kotlin Enum and Sealed Class, when to use each, and how to decide based on your app's architecture needs.
Learn how to model one‑to‑many and many‑to‑many relationships in Android Room with Kotlin, including entity definitions, relationship annotations, and query examples.
A hands‑on guide to replacing legacy permission flows with the modern Activity Result API, covering migration steps, code samples, and best practices for secure app development.
A practical guide to Compose's three side effect APIs with real code examples, decision tables, and a framework for choosing the right API every time.
Modifier order in Jetpack Compose isn't cosmetic. It directly affects layout size, click handling, padding behavior, and recomposition cost. This post breaks down the rules, shows real failures, and gives you a mental model you can apply today.
Learn how Kotlin scope functions reduce boilerplate and improve readability through real-world examples. Covers when to use let, run, with, apply, and also with clear guidance.
I break down the biggest cold start bottlenecks in Android apps and show you how to measure, profile, and eliminate them with real code examples.
After 13 years of Android builds and 22 shipped apps, here are the Gradle optimizations that genuinely cut my build times — not theoretical advice, just the knobs I actually turned and the results I measured.
A hands‑on walkthrough of converting a legacy XML View layout and its surrounding Activity or Fragment into a modern Jetpack Compose implementation, keeping functionality intact while boosting maintainability.
This post shows how to replace exception-based error handling with Kotlin's Result type and sealed class hierarchies, including composition patterns and repository integration.
Explore how Android's notification system evolved in 2026, covering channel management, runtime permission changes, and proven techniques to ensure reliable delivery across devices.
Learn how Kotlin's delegation with the 'by' keyword eliminates repetitive interface implementations and reduces boilerplate code in Android development.
A hands-on guide to building smooth, performant animations in Jetpack Compose, covering animate*AsState, AnimatedContent, Animatable, and gesture-driven animations with real production patterns from 22+ shipped Android apps.
Learn how to replace messy enum-and-null-check patterns with sealed class hierarchies that make UI state exhaustive, testable, and impossible to represent illegally.
I walk through the pitfalls of Compose state when the device rotates, show how to use rememberSaveable, ViewModel, and lifecycle owners to keep UI data intact, and provide real code snippets and tables for quick reference.
A battle-tested migration playbook covering auto-migration pitfalls, manual migration patterns, and a zero-downtime deployment strategy I use across 22+ production apps.