Issue #664

March 2nd, 2025
Articles & Tutorials
Sponsored
This post recounts our difficult but rewarding journey of building one of our most popular features - Session Replay - for Android. Session Replay is one of many features teams rely on to run mobile observability with Bitdrift. Read more on our process & unique approach to observability here.
Ioannis Anifantakis explores how Kotlin’s inline and reified keywords address type erasure, and provides a practical guide on using noinline and crossinline modifiers to control lambda inlining behavior.
Monika Kumar Jethani discusses how Google’s Dynamic Delivery utilizes advanced capabilities of app bundles, allowing certain features of your app to be delivered conditionally or downloaded on demand.
Sponsored
With over 3.6 billion mobile banking users across the globe, mobile banking apps are a prime target for threat actors. Learn how to protect mobile banking apps and ensure regulatory compliance by implementing strong security controls. Register for the webinar now.
Narayan Panthi explains how to implement per-app language preferences in Jetpack Compose, covering locale configuration, storage, and a custom language picker.
Nirav Tukadiya highlights seven powerful Kotlin features, including enhanced error handling, type safety, optimized collections, and better state management in Jetpack Compose.
Alejandra Stamato explains how the READ_MEDIA_IMAGES permission in Android can cause release issues, including blocking deployment to the Alpha channel.
Philippe Boisney explores advanced navigation strategies in Jetpack Compose for multi-module projects, proposing a dedicated module to manage public routes and nested graphs.
Andrei Beriukhov discusses scalability challenges in adopting Kotlin Multiplatform for a large project, focusing on library migration and native integration.
Place a sponsored post
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 course!
Libraries & Code
Chris Sinco built a small tool in Compose Desktop to more easily iterate through building fancy mesh gradients.
News
The Kotlin Foundation is once again participating in Google Summer of Code (GSoC), offering contributors an opportunity to work on open-source projects that shape the Kotlin ecosystem.
Videos & Podcasts
Kaushik Gopal dives into the power of rapid prototyping for Android developers using Kotlin.
Arnaud Giuliani discusses the inception of Koin, a lightweight dependency injection framework for Kotlin, and shares insights into dependency injection practices on the Kotlin Khronicles podcast.
Philipp Lackner compares the two most popular approaches to state management (MVVM vs. MVI) and shares the advantages and disadvantages of each.
Dave Leeds takes a look a Junie, a new AI coding agent from JetBrains.
Daniel Atitienei integrates ‪Supabase‬ Google and Email authentication and builds a custom registration UI for the app.
Philipp Lackner shares some thoughts on AI coding trends, which scenarios could happen and how likely they are.
kt whisperer's 3-part mini-series on converting an Android app to run on the web using Kotlin/Wasm and Compose Multiplatform!
This video highlights three common navigation issues that developers face when using a type-safe navigation library.
Specials
Meet Tor Norbye, an Engineering Director at Google leading the development of Android Studio.
Meet Dan Dole, a UX Manager for Android Developer UX, who offers a unique perspective on the Android development journey.
Matt McKenna provides a visual explanation of GitHub’s merge strategies—merge commit, squash and merge, and rebase and merge—illustrating how each affects commit history and project workflows.
We're there as well!