Kotlin Coroutines Under the Hood
I still remember the first time I wrote suspend fun and felt like something magical was happening. The function could pause, go do something else,...
In-depth articles on Jetpack Compose, Coroutines, architecture patterns, and modern Android development.
Stay updated with curated new releases, API changes, docs, and what's happening in the Android ecosystem — every week.
Coding challenges, system design tips, and practice questions to help you ace your next Android engineering interview.
No signups, no tracking, no subscriptions, no paywalls. All content is free forever and the source code is fully open.
Zero analytics, zero cookies, zero data collection. Learn without being watched — your privacy is respected here.
Stay ahead with the latest Android APIs, libraries, and trends — without wasting time searching across official pages and social media.
I still remember the first time I wrote suspend fun and felt like something magical was happening. The function could pause, go do something else,...
In my previous post, I walked through different ways to write ViewModels — single field states, UI state classes, combine pipelines, and the Compose way...
A few years ago, I remember managing almost everything with Threads, AsyncTask, and Handlers for background tasks and UI updates. It was quite messy, specifically...
In the early days of development, I had no idea about testing. I kept avoiding testable code and ended up with multiple production bugs and...
Before building a product, we need to set some requirements, architecture designs, security concerns etc. These play an important role in organizing, creating fast and...
You might wonder how software engineers are able to write well-structured, flexible, and clean code. You might also wonder what patterns and principles they follow...
Survive Recomposition Use remember to retain state across recompositions. For example, store a text field’s value to prevent resetting during UI updates.
This explores common naming patterns used in software architecture and explains their purposes. Each pattern serves a specific role in creating maintainable and well-structured code....
Resource Management Use the use() function for resources like files or databases to ensure automatic closure, even if an exception occurs. This will help in...
Use App Startup for Initialization The App Startup library simplifies application-level initialization by centralizing component setup. Instead of relying on base application (which add overhead...
Choosing the right software architecture is a crucial decision that can significantly impact your project’s success. While there’s no one-size-fits-all solution, there are clear principles...
Coroutines And Flow are one of the ways to deal with asynchronous programming with multiple operators like RxJava. In Android, We use coroutines for dealing...
When building Android applications that load images from URLs, implementing an efficient caching strategy is crucial for performance and user experience. Without proper caching, your...
In an ever-growing code base, scalability, readability, testability, and overall code quality often decrease over time. This comes as a result of the codebase increasing...
Clean Architecture typically consists of three main layers: Data, Domain, and Presentation, each with distinct responsibilities and dependencies.
As Android apps grow in size, it’s important to design architecture that allows the app to scale, increases the app’s robustness, and makes the app...
Let’s talk about something that’s been bugging Android developers for ages - Clean Architecture. You know how everyone’s always like “Should I use MVVM? Or...
Imagine that, we have to create lots of objects which are depends on one another to perform some operations. As codebase grows, we need some...
Gradle is a open source build automation tool that is designed to be flexible enough to build almost any type of software with certain defined...
Activity & Fragment Lifecycle — What Interviewers Really Ask
Android Components — What Interviewers Really Ask
Intents, Intent Filters & Launch Modes — What Interviewers Really Ask
Views, RecyclerView & UI Fundamentals — What Interviewers Really Ask
Storage & Data Persistence — What Interviewers Really Ask