• I Gave My AI Agent Eyes Inside a Real Compose App

    Title Image generated By Author For years, AI coding agents have written Compose UI blind — they generate the code, then wait for you to run it, look at it, and report back. Compose Hot Reload’s new MCP server changes that math. I wired one up to a fresh Compose Multiplatform desktop app, handed the agent a bug…

    Read More

  • Building Android Apps at the Speed of Thought with Android CLI

    Illustration Generated by Gemini Hello Folks! Let me start with a very honest and personal confession :). Four months ago, I was impacted by a massive layoff at company where I was working as a contractor (my side job) as a Senior Android Engineer. The reason? It was simple and sounded very futuristic from my point of…

    Read More

  • One Flag, Two Checkpoints: How a Canceled Upload Reported Success

    The bug report arrived with a screen recording and no reproduction rate. Someone on the team had been checking the demo build of our short-video SDK. Publish a clip, get redirected to the grid, wait until the upload progress bar climbed somewhere between 30 and 99 percent, then hit cancel. The clip stayed in the grid,…

    Read More

  • The Recompositions That Weren’t There!

    How memory allocation data revealed what the Layout Inspector was hiding about Compose recompositions. I recently went down a rabbit hole trying to understand why a production Compose screen felt heavier than it should. What started as a simple profiling session turned into something bigger. The Layout Inspector and the Memory Profiler were telling me…

    Read More

  • Writing clean models using extensions

    Models in Kotlin with data classes are already leaner and cleaner than their Java counterparts. Abstracting away all those getters, setters, toString() and copy() method with a single keyword makes our models reflect the only thing they should be concerned about — holding data. As I was exploring Swift for a project, I came across…

    Read More

  • Low-overhead wrappers using inline classes

    Previously, we discussed how Kotlin’s type aliases could make our code more readable. However, if you remember, since type aliases don’t introduce new types, they don’t provide any type-safety. This week we will be exploring Kotlin’s experimental inline classes which have benefits that type aliases provide but go further than that. A little about inline…

    Read More

  • Computed properties with property getters

    Custom getters and setters for fields in a class is not a new idea. We have been using them since our early days in programming. Kotlin, however, takes that concept to a more elegant level by allowing us to define getters and setters at the declaration site of our properties. The primary advantage of this…

    Read More

  • Uniform list access with subscripts

    Accessing values from an array using subscripts is a light and easy way to fetch list data. Kotlin brought uniformity in data access across regular arrays and Lists by allowing us to access data from a List using subscripts. But, what about our custom data models? Can they have subscripts if they mostly represent a…

    Read More