Issue #669

April 6th, 2025
Articles & Tutorials
Sponsored
Wasted time, delayed fixes, developer frustration. Mobile teams pay more than they realize for outdated release processes. Runway’s new report shares the real ROI of mobile release management — and what it can unlock for your org. Download the report.
Zac Sweers introduces Metro, a compile-time dependency injection framework inspired by Dagger, Anvil, and Kotlin-Inject, aiming to unify their best features into a cohesive solution implemented as a compiler plugin.
Ninad Bhase explains how Kotlin’s coroutines enhance asynchronous programming by introducing suspendable functions and non-blocking operations, enabling concurrent execution that overcomes the blocking limitations of traditional subroutines.
Sponsored
We reach out to more than 80k Android developers around the world, every week, through our email newsletter and social media channels. Advertise your Android development related service or product!
Anthony provides an overview of generics in Kotlin, explaining their role in creating flexible and type-safe code, and delving into concepts such as type parameters, variance (including invariant, covariant, and contravariant types), and best practices for their use.
Nika Chapidze outlines methods for analyzing and benchmarking Android build performance using tools like Android Studio’s Build Analyzer, Gradle’s profiling and scanning options, and the Gradle Profiler, providing insights into build durations and task execution times.
Danil Perevalov discusses utilizing Dagger’s SPI to identify and remove unused component dependencies in Android projects, thereby enhancing build efficiency and reducing unnecessary module interdependencies.
Omar Sahl explains how to write testable, time-dependent coroutine code in Kotlin by replacing System.currentTimeMillis() with a TestCoroutineScheduler-based time source, facilitating more reliable and controlled testing environments.
Eevis Panula evaluates the accessibility of Android apps generated by Gemini, noting that the first version had issues like redundant content descriptions and non-scrollable screens, while the second version showed significant improvements, though some problems persisted.
Ignacio Carrión explores creating custom animations and transitions in Jetpack Compose, discussing animation APIs, custom transitions, and performance optimization techniques.
Shreyas Patil explains how Dispatchers.Main.immediate runs coroutines instantly on the main thread if possible, unlike Dispatchers.Main which always enqueues them.
Libraries & Code
Metro is a compile-time dependency injection framework that draws heavy inspiration from Dagger, Anvil, and Kotlin-Inject.
News
Sponsored
KotlinConf 2025, happening May 21–23, is the must-attend event for Kotlin developers, featuring hands-on workshops and 100+ talks on Multiplatform, Compose, coroutines, Ktor, Spring, functional programming, and more. Learn from experts at JetBrains, Google, AWS, and beyond—don’t miss this chance to level up your Kotlin skills and connect with the global community!
Amper 0.6.0 is out, with improvements to both the IDE and CLI experience. Read on for all of the details.
Videos & Podcasts
Daniel Atitienei talks about what tech stack to use for building native mobile applications in 2025.
Philipp Lackner summarizes the most relevant news for Android & Kotlin developers, so you don't need to look it up yourself.
No more Manual Koin Initialization - New Context Binding is Awesome!
Learn how the SDK Runtime enhances Android app and SDK security and privacy by isolating third party code. This video covers the architecture, communication, permissions, and new distribution model, with more details in the video series.
Join Rosário Fernandes in the March 2025 edition of Firebase Release Notes. Watch along and learn about new features in Cloud Functions, server-side remote config for Python updates, Genkit updates, and more!
Jov Mit continues this Android development live stream with: automated end-to-end testing, design patterns: Bulder, Factory, Adapter, Facade, managing 3rd party library code & reusability, and more.
Learn the art and science of using the expect/actual mechanism to create great KMP applications.
Christopher Cartland is joined by Nam Nguyen, Software Engineer on Google Maps, and Carmen Jackson, Software Engineer on Android, to discuss how they optimize Android apps for performance.
Code with the Italians and explore the gray area of RSS feed validation with Marco Gomiero. Spoiler: it’s all chaos!