<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel>
    <title>Android Weekly</title>
    <description>Android Weekly is a free newsletter that helps you to stay cutting-edge with your Android Development</description>
    <link>https://androidweekly.net/</link>
      <item>
    <title>Android Weekly Issue #717</title>
    <link>https://androidweekly.net/issues/issue-717/rss.xml</link>
    <description><![CDATA[<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Articles & Tutorials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://firebender.com/" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/69ad36/0c3c93bc4ac3003b55/square_firebender.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://firebender.com/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
🔥 Most powerful AI in Android Studio 👊
</a></div><div>Code 10x faster. Tell Firebender to create full screens, ship features, or fix bugs - and watch it do the work for you. It's been battle tested by the best android teams at companies like Tinder, Adobe, and Instacart.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/jetpack-compose-why-you-shouldnt-use-localcontext-for-strings-4d4c372b14ab" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Jetpack Compose: Why you shouldn't use LocalContext for Strings
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Katie Barnett explains why LocalResources.current should be used over LocalContext.current when accessing resources in Compose, to correctly handle configuration changes.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/@heoderer/physicsbox-adding-physics-to-compose-driven-projects-bc7926fe3b23" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
PhysicsBox. Adding physics to compose driven projects
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Alexey Zinchenko shows how to add JBox2-powered physics simulations to Jetpack Compose and Compose Multiplatform projects using PhysicsBox.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/motion-blur-for-a-spinning-wheel-in-jetpack-compose-368c1647224d" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Motion Blur for a Spinning Wheel in Jetpack Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Piotr Prus shows how to implement velocity-driven rotational motion blur on a spinning Compose canvas, using an AGSL RuntimeShader on API 33+ with a ghost-layer fallback for older versions.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://dela.dev/2026/03/generating-timeline-hover-previews-with-android-media3" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Generating Timeline Hover Previews with Android Media3
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Kirk Agbenyegah demonstrates how to implement timeline hover preview thumbnails in a media player using Jetpack Media3.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.insert-koin.io/detekt-rules-koin-c0b6330fc37b" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Detekt rules for Koin
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Kirill Rozov introduces a set of Detekt static analysis rules for enforcing best practices when using the Koin dependency injection framework.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2026/03/how-whoop-decreased-excessive-partial.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How WHOOP decreased excessive partial wake lock sessions by over 90%
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>The WHOOP engineering team shares how they reduced excessive wake lock sessions by over 90% using WorkManager and Android Vitals.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="http://android-developers.googleblog.com/2026/03/supercharge-your-android-development.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Supercharge your Android development with 6 expert tips for Gemini in Android Studio
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Trevor Johns shares expert tips from Google engineers and GDEs for getting the most out of Gemini in Android Studio, including Agent Mode and the New Project Assistant.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2026/03/elevating-ai-assisted-androi.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Elevating AI-assisted Android development and improving LLMs with Android Bench
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google introduces Android Bench, a new benchmark suite for evaluating the quality of AI-assisted Android development tools.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2026/03/instagram-and-facebook-deliver-instant.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Instagram and Facebook deliver instant playback and boost user engagement with Media3 PreloadManager
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Mayuri Khinvasara Khabya walks through how Meta integrated Jetpack Media3's PreloadManager to achieve true instant video playback in Facebook and Instagram.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://touchlab.co/kmp-view-models" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Is AndroidX ViewModel the best choice for KMP projects?
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Gustavo Fão Valvassori examines the trade-offs of using AndroidX ViewModel in Kotlin Multiplatform projects.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Place a sponsored post</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://androidweekly.net/jobs/new" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/69ad36/1f3c93bc4ac3003b60/square_aw.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://androidweekly.net/jobs/new" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Advertise to more than 80k Android developers!
</a></div><div>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!
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Libraries & Code</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/aouledissa/deep-match" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
deep-match
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>A Gradle plugin that simplifies deeplink routing by matching URLs to Android navigation destinations.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/alexstyl/avdbuddy" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
AVD Buddy
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>A macOS menu bar app for quickly launching and managing Android Virtual Devices without opening Android Studio.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/solrudev/Ackpine" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Ackpine
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>A library providing a consistent and reliable API for installing and uninstalling APKs on Android.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/iamjosephmj/OpenPAD" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
OpenPAD
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>An open-source on-device face liveness detection library for Android.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://simonmarquis.github.io/Lint-Playground/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Lint Playground
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>A browser-based playground for writing, testing, and sharing custom Android Lint rules with live SARIF output.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/wayfair-incubator/compose-lazy-adaptive-layout" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
compose-lazy-adaptive-layout
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>A Jetpack Compose library providing a lazy adaptive grid layout for building responsive UIs across different screen sizes.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">News</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2026/03/battery-technical-quality-enforcement.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Battery Technical Quality Enforcement is Here: How to Optimize Common Wake Lock Use Cases
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google details the Google Play wake lock enforcement rollout and best practices for reducing excessive partial wake lock usage.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2026/03/a-new-era-for-choice-and-openness.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
A new era for choice and openness
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google announces expanded billing choice, a Registered App Stores program, and reduced service fees on Google Play.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2026/05/go-from-prompt-to-working-prototype.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Go from prompt to working prototype with Android Studio Panda 2
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google releases Android Studio Panda 2 stable, with an AI-powered New Project flow that generates a working app from a single prompt.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2026/03/android-devices-extend-seamlessly-to.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Android devices extend seamlessly to connected displays
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google announces connected display support is generally available in Android 16 QPR3, enabling desktop windowing on external monitors.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Videos & Podcasts</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=BhUf_Sv_Bv0" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Tracing 2.0 - Performance on Android has never been easier - with Rahul Ravikumar
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Coding with the Italians explores Android's Tracing 2.0 API for simplified performance tracing with guest Rahul Ravikumar.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=m0Cq6J-V_RY" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Everything new in AGP 9.0 for Kotlin projects
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Kotlin by JetBrains covers the key AGP 9.0 changes for Kotlin projects, including built-in Kotlin support and migration to the new Android KMP library plugin.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
]]></description>
    <pubDate>Sun, 08 Mar 2026 17:31:11 +0000</pubDate>
    <guid>https://androidweekly.net/issues/issue-717</guid>
  </item>
  <item>
    <title>Android Weekly Issue #716</title>
    <link>https://androidweekly.net/issues/issue-716/rss.xml</link>
    <description><![CDATA[<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Articles & Tutorials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://www.runway.team/use-case/white-label?utm_source=androidweekly&utm_medium=newsletter&utm_campaign=feb-8-26" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/69a407/133c93bc078a00fb73/square_runway.jpeg">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.runway.team/use-case/white-label?utm_source=androidweekly&utm_medium=newsletter&utm_campaign=feb-8-26" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Release white-label apps with a single click 
</a></div><div>Shipping white-label apps used to mean repeating the same steps and signing in and out of Google Play Console dozens of times per release. With Runway, ship everything in one place, just once.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://doveletter.dev/preview/articles/compose-styles" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Introducing the Experimental Styles API in Jetpack Compose 
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Jaewoong Eum examines the experimental Compose Styles API for declarative, interaction-aware styling with automatic animations and efficient modifier invalidation.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://itnext.io/understanding-dependencies-injection-with-unit-tests-and-koin-04f4032f6bea" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Understanding Dependencies injection with unit-tests and Koin 
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Tezov explores how Koin actually works by observing what happens when dependencies are resolved at runtime.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://firebender.com/" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/69a407/233c93bc078a00fb7c/square_firebender.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://firebender.com/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
🔥 Most powerful AI in Android Studio 👊
</a></div><div>Code 10x faster. Tell Firebender to create full screens, ship features, or fix bugs - and watch it do the work for you. It's been battle tested by the best android teams at companies like Tinder, Adobe, and Instacart.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/@fredosuala/kmp-architecture-the-case-for-pure-kotlin-viewmodels-c85ce95499ee" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
KMP Architecture: The Case for Pure Kotlin ViewModels
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Fredrick Chibuzor Osuala recommends pure Kotlin ViewModels with platform-owned scope and lifecycle wrappers to keep commonMain independent and interop predictable.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/google-developer-experts/on-device-rag-for-app-developers-embeddings-vector-search-and-beyond-47127e954c24" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
On-Device RAG for App Developers: Embeddings, Vector Search, and Beyond
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Sasha Denisov outlines on-device RAG using local embeddings plus vector search.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://aditlal.dev/play-store-heisenbug-art-verify/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Hunting the Play Store Heisenbug: R8, ART Verify Mode, and Firebase Init Races
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Adit Lal shows Play Store ART verify mode plus R8 full mode can trigger a Firebase init race.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://annycedavis.com/2026/02/jetpack-compose-and-the-speed-of-thinking.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Jetpack Compose and the Speed of Thinking
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Annyce Davis considers how Compose removes cognitive drag, speeding up debugging, previews, and testing.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://eevis.codes/blog/2026-02-28/adding-navigation-support-to-large-content-viewer-with-compose/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Adding Navigation support to Large Content Viewer with Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Eevis Panula adds accessible navigation to a Compose large-content viewer.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://aditlal.dev/compose-styles/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
The Compose Styles API: Building 8 Labs to Master Declarative Styling
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Adit Lal highlights Compose’s new Styles API as a declarative styling layer that cuts boilerplate.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Place a sponsored post</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://androidweekly.net/jobs/new" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/69a407/383c93bc078a00fb84/square_aw.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://androidweekly.net/jobs/new" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Advertise to more than 80k Android developers!
</a></div><div>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!
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Libraries & Code</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/rubensousa/ProjectGuard" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
ProjectGuard
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>A Gradle plugin that acts as a powerful gatekeeper for your project's dependencies.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">News</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://android-developers.googleblog.com/2026/02/the-second-beta-of-android-17.html" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/69a39a/c83c93bc078a00ebbd/square_Bildschirmfoto_2026-03-01_um_10.31.13.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2026/02/the-second-beta-of-android-17.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
The Second Beta of Android 17
</a></div><div>Google previews Android 17 Beta 2, centered on new system pickers, cross-device handoff, and privacy tightening.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2026/02/the-intelligent-os-making-ai-agents.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
The Intelligent OS: Making AI agents more helpful for Android apps
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google introduces AppFunctions and an AI-driven UI automation framework so Gemini and other agents can discover, invoke, and complete Android app tasks.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Videos & Podcasts</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=6dOXCV_8nEI" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Intro to Kotlin's Flow API
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Dave Leeds shows how your experience with collections and sequences can make it easy for you to start working with Flows.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=V8iaROVm-eU" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How To Navigate Back With Results In Nav3
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Jov Mit shows how to navigate back sending results using Navigation 3.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=Zwmcr6duzhY" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Senior Developer Ranks Jetpack Compose State Management Approaches
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner goes over the 5 most common state management approaches for Jetpack Compose and rank them from S-tier to F-tier.


</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Events</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://kotl.in/d2sgll" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/699dca/803c93bc55e8004af2/square_KC_icon_85x85__x2.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://kotl.in/d2sgll" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
KotlinConf'26: Full Schedule and Speaker List
</a></div><div>Discover the complete agenda and full speaker lineup for KotlinConf’26. Explore the keynote, workshops, and hands-on sessions led by industry experts. Plan your experience, bookmark must-see talks, and get ready for an inspiring Kotlin journey!
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table>]]></description>
    <pubDate>Sun, 01 Mar 2026 09:33:10 +0000</pubDate>
    <guid>https://androidweekly.net/issues/issue-716</guid>
  </item>
  <item>
    <title>Android Weekly Issue #715</title>
    <link>https://androidweekly.net/issues/issue-715/rss.xml</link>
    <description><![CDATA[<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Articles & Tutorials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://firebender.com/" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/699877/903c93bc779000e852/square_firebender.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://firebender.com/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
🔥 Most powerful AI in Android Studio 👊 
</a></div><div>Code 10x faster. Tell Firebender to create full screens, ship features, or fix bugs - and watch it do the work for you. It's been battle tested by the best android teams at companies like Tinder, Adobe, and Instacart.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.zacsweers.dev/re-dependency-injection-vs-service-locators/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Re: Dependency Injection vs. Service Locators 
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Zac Sweers reframes the DI debate as compile-time graph construction versus runtime service lookup, arguing the real tradeoff is explicitness and build cost versus runtime risk, testing friction, and scaling pain.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://publicobject.com/2026/02/21/keep-android-open/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Keep Android Open 
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Jesse Wilson urges folks to oppose Google’s ID and fee based Android developer verification as an anti-competitive lock that enables software blocking.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://fandf.co/4rUqKlL" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/699877/783c93bc779000e848/square_developer_avatar_85x85__1_.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://fandf.co/4rUqKlL" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Get Started with React Native for Vega
</a></div><div>React Native for Vega delivers native performance across Fire TV devices. Ship faster with hot reloading and built-in focus management. Access SDKs, testing tools, libraries and distribution resources to launch your app on Vega OS-powered devices. 

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://vinted.engineering/2026/02/12/from-dagger-to-metro/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
From Dagger to Metro
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Andrius Semionovas and Heorhii Popov explain how migrating a huge codebase from Dagger and Anvil to Metro unlocked K2 and improved build times despite significant tooling and legacy hurdles.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://aditlal.dev/building-stickerexplode-part-1-gestures-physics-and-making-stickers-feel-real/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Building StickerExplode: Gestures, physics, and making stickers feel real
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Adit Lal demonstrates making stickers feel physical in Compose Multiplatform through custom gestures, springy peel interactions, and die cut visuals backed by persistent state.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2026/02/under-hood-android-17s-lock-free.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Under the hood: Android 17’s lock-free MessageQueue
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>In Android 17, apps targeting SDK 37 or higher will receive a new implementation of MessageQueue where the implementation is lock-free.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Place a sponsored post</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://androidweekly.net/jobs/new" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/699877/a23c93bc779000e857/square_aw.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://androidweekly.net/jobs/new" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Advertise to more than 80k Android developers!
</a></div><div>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!
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Libraries & Code</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/azikar24/WormaCeptor" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
WormaCeptor
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>A modular Android debugging toolkit and network inspector built with Clean Architecture and Jetpack Compose — designed for zero-impact production builds.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/androidbroadcast/Koin-Detekt" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Koin-Detekt
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Detekt rules for Koin DI
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/AndroidPoet/playconsole-cli" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
playconsole-cli
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Fast, lightweight, and scriptable CLI for Google Play Console
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">News</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.jetbrains.com/kotlin/2026/02/java-to-kotlin-conversion-comes-to-visual-studio-code/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Java to Kotlin Conversion Comes to Visual Studio Code
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>To help streamline the transition from Java to Kotlin for VS Code users, Jetbrains introduces the Java to Kotlin (J2K) converter extension.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2026/02/get-ready-for-google-io-may-19-20.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Get ready for Google I/O May 19-20
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google I/O streams May 19-20 with Gemini and agentic coding highlights alongside major Android and broader product updates.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://keepandroidopen.org/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Keep Android Open
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Keep Android Open argues Google’s 2026 verification mandate will centralize app installation behind paid, identity-verified registration, undermining Android’s openness.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Videos & Podcasts</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://www.youtube.com/watch?v=FF01B6urN0A" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/699a38/033c93bc7790013420/square_Bildschirmfoto_2026-02-22_um_18.10.05.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=FF01B6urN0A" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Top 5 Jetpack Compose Performance Killers
</a></div><div>Philipp Lackner showcase 5 different issues that can break performance in your Compose app. Make sure to look at these first when running into performance problems.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=nEocynqm3ZA" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Generate Android Code from Pull Request Comments with GitHub MCP + Gemini
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Sergio Sastre teaches how to read pull request review comments and use GitHub MCP with Gemini to automatically generate the corresponding Android code.


</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=0B07A_c45_o" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
What’s so great about R8?
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Join hosts Tor and Romain as they sit down with Søren Gjesse, Chris Craik, and Shai Barack to dive into R8.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=u9VdJyILNYk" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
You won't believe how we created an Android Lint rule using AI - with Tor Norbye
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>In this episode of Code With The Italians, try something a little different: Let's build a custom Android Lint rule using Gemini inside Android Studio.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=Wze7qsDl4BM" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How Major Metros Run on Kotlin Multiplatform
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Sit down with Paweł Kwieciński from Masabi to explore how they brought a decade-old Java codebase to Kotlin Multiplatform, powering ticket validation across mobile apps, embedded devices, and backend systems
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=9caMeFQYCLk" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Talking about Gemini in Android Studio
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>This fireside chat explores Gemini's unique integration, its ability to build entire apps, and strategies for managing AI-generated code.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Specials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.kotzilla.io/the-next-software-crisis-wont-be-about-writing-code" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
The Next Software Crisis Won't Be About Writing Code
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Arnaud Giuliani says AI will accelerate technical debt unless teams design for meaning and architecture before prompting.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
]]></description>
    <pubDate>Sun, 22 Feb 2026 17:10:51 +0000</pubDate>
    <guid>https://androidweekly.net/issues/issue-715</guid>
  </item>
  <item>
    <title>Android Weekly Issue #714</title>
    <link>https://androidweekly.net/issues/issue-714/rss.xml</link>
    <description><![CDATA[<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Articles & Tutorials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://fandf.co/4aIHRkR" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/699101/ab3c93bc63190117c3/square_developer_avatar_orange_85x85.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://fandf.co/4aIHRkR" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Build Fire TV Apps with React Native for Vega
</a></div><div>Vega OS delivers cross-device development with native performance, hot reloading, and built-in focus management. Vega Developer Tools provides you with the resources you need to develop, test, and distribute apps on Vega OS-powered devices.  

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.revenuecat.com/blog/engineering/kotlinx-serialization/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How kotlinx.serialization generates code: a compiler plugin deep dive 
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Jaewoong Eum dives deep into the internal mechanisms of the kotlinx.serialization compiler plugin.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://avatsav.dev/hello-retain/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Goodbye ViewModel. Hello retain! 
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Abhi says Compose "retain" lets you drop ViewModel ceremony by retaining simple injectable presenters and cleaning them up via RetainObserver.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://firebender.com/" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/699101/c93c93bc63190117ce/square_firebender.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://firebender.com/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
🔥 Most powerful AI in Android Studio 👊
</a></div><div>Code 10x faster. Tell Firebender to create full screens, ship features, or fix bugs - and watch it do the work for you. It's been battle tested by the best android teams at companies like Tinder, Adobe, and Instacart.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/mastering-the-new-embedded-photo-picker-in-androidx-4cd151870757" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Mastering the New Embedded Photo Picker in AndroidX
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Oğuzhan Aslan takes a closer look at the new Embedded Photo Picker.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2026/02/prepare-your-app-for-resizability-and.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Prepare your app for the resizability and orientation changes in Android 17
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Miguel Montemayor says Android 17 targeting forces large screen resizability and orientation support, pushing apps to adopt adaptive layouts, resilient camera previews, and robust state handling.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://le0nidas.gr/2026/02/08/handle-recyclerviews-scroll-events-in-custom-topappbarscrollbehavior/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Handle RecyclerView’s scroll events in custom TopAppBarScrollBehavior
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Leonidas Partsas implements a custom TopAppBarScrollBehavior that translates RecyclerView scroll into smooth collapse and expansion without partial rendering.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.pamelaahill.com/post/do-i-need-an-umbrella-framework" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Do I need an umbrella framework for my Kotlin Multiplatform app?
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Pamela Hill says iOS-targeted multi-module KMP apps need an umbrella framework to prevent stdlib duplication and incompatible binaries across modules.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://commonsware.com/blog/2026/02/14/random-musings-android-17-beta-1.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Random Musings on the Android 17 Beta 1
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Mark Murphy warns that Android 17 Beta 1 mainly adds behavior hardening that can break apps using a small set of rare features.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Place a sponsored post</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://androidweekly.net/jobs/new" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/699101/db3c93bc63190117d4/square_aw.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://androidweekly.net/jobs/new" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Advertise to more than 80k Android developers!
</a></div><div>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!
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">News</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2026/02/the-first-beta-of-android-17.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
The First Beta of Android 17
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google says Android 17 Beta 1 mostly advances adaptability and media, connectivity, and companion device tooling alongside ongoing privacy, security, and performance work.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Videos & Podcasts</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://www.youtube.com/watch?v=Y8huP6eFbZY" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/6990ff/003c93bc6319011736/square_Bildschirmfoto_2026-02-15_um_17.36.22.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=Y8huP6eFbZY" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Return... in Expression Bodies?!
</a></div><div>Dave Leeds explores a Kotlin feature change allowing return keywords in expression bodies.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=-6m2D2KTIpE" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Retrofit vs OkHttp
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Amit Shekhar provides a detailed comparison of Retrofit and OkHttp, two popular libraries used by Android developers for networking.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=6Wh1CXzRF2k" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Custom Video Player In Jetpack Compose On Android (Media3 Library)
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner explores the Media3 library along with its Jetpack Compose toolkit to build a custom-styled video player with our own UI letting you control media playback.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=HdlAlN_u_-Q" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
API Design at Google: Building Android Libraries
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Alan Viverette and Aurimas Liutikas discuss the challenges and evolution of API design, particularly within the Android ecosystem.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=yD182S7m7Fs" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
No more get() calls in your Koin Module!
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Stevdza-San examines the new Koin Kotlin compiler plugin, which brings auto-detect constructor parameter features and compile-time code transformation, catching errors during the build process
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=7gR7WRHsvSs" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Can we Make It So on Android?
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Peter Friese and Marina Coelho attempting to port their "Make It So" to-do list app from iOS to Android using AI-powered coding agents, specifically Antigravity and Stitch
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=7UMd-XmrQYw" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
The Exact AI Workflow I Use to Build Apps SOLO (step by step / no fluff)
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Daniel Atitienei presents a detailed AI-powered workflow for developing and launching profitable apps as a solo developer
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=Of6cqKjEBGw" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
What Really Is Structured Concurrency In Kotlin?
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner explains structured concurrency in Kotlin coroutines, using a cooking analogy to illustrate concurrency concepts.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
]]></description>
    <pubDate>Sun, 15 Feb 2026 16:36:53 +0000</pubDate>
    <guid>https://androidweekly.net/issues/issue-714</guid>
  </item>
  <item>
    <title>Android Weekly Issue #713</title>
    <link>https://androidweekly.net/issues/issue-713/rss.xml</link>
    <description><![CDATA[<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Articles & Tutorials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://www.runway.team/use-case/white-label?utm_source=androidweekly&utm_medium=newsletter&utm_campaign=feb-8-26" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/6985a9/fc3c93bc0a6a010c53/square_square_runway_team_logo.jpeg">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.runway.team/use-case/white-label?utm_source=androidweekly&utm_medium=newsletter&utm_campaign=feb-8-26" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Release white-label apps with a single click 
</a></div><div>Shipping white-label apps used to mean repeating the same steps and signing in and out of Google Play Console dozens of times per release. With Runway, ship everything in one place, just once.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/@yassine.sayah/default-vs-buffered-sharedflow-in-kotlin-a-practical-guide-6abe92aad7d7" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Default vs buffered SharedFlow in Kotlin: a practical guide 
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Yassine Sayah shows that adding extraBufferCapacity is essential when using tryEmit on SharedFlow to avoid silently dropped events with active collectors.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.insert-koin.io/koin-powered-by-kotlin-compiler-0722f1cc96a4" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Koin Powered by Kotlin Compiler 
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Arnaud Giuliani announces a native Kotlin Compiler Plugin that brings compile-time safety and auto-wiring to your dependency injection.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://firebender.com/" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/6985aa/223c93bc0a6a010c64/square_firebender.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://firebender.com/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
🔥 Most powerful AI in Android Studio 👊 
</a></div><div>Code 10x faster. Tell Firebender to create full screens, ship features, or fix bugs - and watch it do the work for you. It's been battle tested by the best android teams at companies like Tinder, Adobe, and Instacart.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://sonique6784.medium.com/android-modularization-for-large-teams-part-2-technical-deep-dive-d30a3bfdc08e" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Android Modularization for Large Teams — Part 2: Technical Deep Dive
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Cedric Ferry shows how ServiceLoader plus Koin module providers enable runtime wiring of feature implementations while the app depends only on API modules for compile-time decoupling.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://dev.to/bansalayush/visualizing-compositionlocal-in-the-composition-tree-2jkg" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Visualizing CompositionLocal in the Composition Tree
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Ayush Bansal shows CompositionLocal values are attached to a node and resolved by upward lookup, so only composables that read them recompose.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://kt.academy/article/compose-stability" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
You don't understand stability in Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Marcin Moskała explains modern Compose stability as reference versus equality change checks under Strong Skipping Mode, with automatic lambda memoization reducing unnecessary recompositions.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://itnext.io/dependency-injection-with-koin-linked-scopes-a305c05f36a7" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Dependency Injection with Koin: Linked Scopes
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Tezov's fifth part of an educational series about dependency injection with Kotlin and Koin. This part introduces a small but important evolution: linked scopes.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.jetbrains.com/ai/2026/02/koog-x-acp-connect-an-agent-to-your-ide-and-more/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Koog x ACP: Connect an Agent to Your IDE and More
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>rains shows how Koog’s built-in ACP support makes Kotlin agents IDE-connectable through IntelliJ AI Chat with minimal glue code.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Place a sponsored post</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://androidweekly.net/jobs/new" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/6985aa/373c93bc0a6a010c6c/square_aw.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://androidweekly.net/jobs/new" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Advertise to more than 80k Android developers!
</a></div><div>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!
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">News</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.jetbrains.com/kotlin/2026/02/kotlin-ecosystem-mentorship/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Join the Kotlin Ecosystem Mentorship Program
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>JetBrains outlines the Kotlin Foundation mentorship pilot that pairs maintainers with newcomers to land a meaningful merged contribution and strengthen Kotlin open source.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Videos & Podcasts</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://www.youtube.com/watch?v=Z52Rf4koRlU" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/6987bc/d43c93bc0a6a016e62/square_Bildschirmfoto_2026-02-08_um_17.06.42.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=Z52Rf4koRlU" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
These Refactorings Are A Must For Every Android Dev
</a></div><div>Jov Mit covers refactorings that are a important for every Android developer.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=SKwyiNoNzfM&t=680s" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
AGP 9 in Compose Multiplatform: Upgrading an app
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Upgrading Android Gradle Plugin from 8 to 9 in Compose Multiplatform is not a trivial update, so Mykola Miroshnychenko walks you through the necessary changes.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=cLyxWGV6GKg" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How to Encrypt Local Preferences In KMP With KSafe
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner shows how we can encrypt and decrypt local preferences in Kotlin Multiplatform for Android, iOS and desktop.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=ZwvkPwXH_9E" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Compose Multiplatform 1.10.0, Ktor 3.4.0 & More
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner goes over what has changed in the Kotlin ecosystem in January 2026.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://fragmentedpodcast.com/episodes/303/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How LLMs Work - the 20 minute explainer
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Walk through the full pipeline: tokenization, embeddings, inference — so you understand it well enough to explain it. Walk away with a mental model that you can use for your next dinner party.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=Ca6UWkVWbac" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Kotlin 2.3 Release Special (Audio Only)
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Sebastian and Márton host a special, audio-only episode where they discuss everything that’s new and noteworthy in the Kotlin 2.3 release.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Specials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://jonnyzzz.com/blog/2026/02/02/git-fork-pattern/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Git Fork Pattern: Full Checkouts Without the Bloat
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Eugene Petrenko shows how git alternates enable cheap full repo forks that avoid worktree limitations for parallel or agent-driven development.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
]]></description>
    <pubDate>Sun, 08 Feb 2026 16:07:19 +0000</pubDate>
    <guid>https://androidweekly.net/issues/issue-713</guid>
  </item>
  <item>
    <title>Android Weekly Issue #712</title>
    <link>https://androidweekly.net/issues/issue-712/rss.xml</link>
    <description><![CDATA[<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Articles & Tutorials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://firebender.com/" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/697f69/d23c93bc76330155aa/square_firebender.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://firebender.com/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
🔥 Most powerful AI in Android Studio 👊
</a></div><div>Code 10x faster. Tell Firebender to create full screens, ship features, or fix bugs - and watch it do the work for you. It's been battle tested by the best android teams at companies like Tinder, Adobe, and Instacart.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://doveletter.skydoves.me/preview/articles/kotlin-shared-internals-keep#transitive-sharing-simplifying-complex-hierarchies" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Shared Internals: Kotlin's New Proposal for Cross-Module Visibility
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Jaewoong Eum discusses shared internal as a transitive, opt-in cross-module visibility level that replaces friend modules without widening your public API.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.kotlin-academy.com/kotlin-annotation-targets-are-changing-and-kt-73255-b58eef18b6bf" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Kotlin Annotation Targets Are Changing and KT-73255
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Burak Karaduman advises using explicit @field or @param targets to avoid Kotlin 2.2 KT-73255 surprises for constructor property annotations.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.jetbrains.com/ai/2026/01/building-ai-agents-in-kotlin-part-5-teaching-agents-to-forget/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Building AI Agents in Kotlin – Part 5: Teaching Agents to Forget
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>JetBrains teaches adding threshold-based history compression to Koog strategies so coding agents keep essential decisions without exceeding context limits.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/@kmpbits/master-compose-shared-element-transitions-a-smooth-ui-journey-fc483172531a" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Master Compose Shared Element Transitions: A Smooth UI Journey
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>KMP Bits explains Compose Navigation shared element transitions using a SharedTransitionScope and stable keys to avoid flaky recomposition bugs.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.jetbrains.com/qodana/2026/01/qodana-for-android-kotlin/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Qodana for Android
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>JetBrains frames Qodana as CI-first Kotlin inspection enforcement for Android teams that scales code quality without replacing Android Lint.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2026/01/httpsandroid-developers.googleblog.com202506android-embedded-photo-picker.html%20.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
The Embedded Photo Picker
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google’s embedded photo picker lets apps offer in-place, cloud-aware media selection with scoped URI grants, eliminating photo permissions for Android 14+ devices.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/google-developer-experts/architectural-evolution-and-implementation-strategy-of-the-litert-compiledmodel-api-136b79000100" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Architectural Evolution of the LiteRT CompiledModel API
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Kartikey Rawat outlines LiteRT CompiledModel as a compile-and-cache runtime that auto-targets CPU, GPU, or NPU with zero-copy I/O for lower-latency on-device inference.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.sinasamaki.com/how-to-create-dials-in-jetpack-compose/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How to create Dials in Jetpack Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>sinasamaki demonstrates configuring ChromaDial with degree-based state, custom ranges, multi-turn visuals, and snapping, plus a finish callback for costly side effects.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/@santimattius/how-to-migrate-to-android-gradle-plugin-agp-9-0-in-android-and-kotlin-multiplatform-projects-cf3c20a5c3ed" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How to migrate to AGP 9.0 in Android and Kotlin Multiplatform projects
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Santiago Mattiauda outlines AGP 9.0 upgrade essentials: built-in Kotlin, androidComponents, and KMP module separation via multi-platform library.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/@ranger163/stop-treating-dependency-injection-as-an-android-detail-a-koin-first-walkthrough-a95a3734265d" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Part3: Stop Treating Dependency Injection as an Android Detail
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Ahmed Nassar presents Koin-first DI as a KMP architectural contract that keeps the dependency graph in shared code and reduces platforms to simply starting it.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Place a sponsored post</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://androidweekly.net/jobs/new" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/697f69/ec3c93bc76330155b0/square_aw.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://androidweekly.net/jobs/new" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Advertise to more than 80k Android developers!
</a></div><div>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!
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Libraries & Code</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://chromadial.sinasamaki.com/?ref=sinasamaki.com" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
ChromaDial
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Beautiful & customizable circular dial components for Compose Multiplatform
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">News</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2026/01/accelerating-your-insights-with-faster.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Accelerating your insights with faster, smarter monetization data
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google highlights Play Console monetization updates that pair faster financial reporting with actionable recommendations and programmatic Orders API access.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Videos & Podcasts</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://www.youtube.com/playlist?list=PL9Pfzam3fFde4NtK6Nkca3zsK7Pg2Juqy" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/697ecd/e73c93bc7633013de7/square_Bildschirmfoto_2026-02-01_um_15.58.20.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/playlist?list=PL9Pfzam3fFde4NtK6Nkca3zsK7Pg2Juqy" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
droidcon London 2025
</a></div><div>All the presentations from droidcon London 2025
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=qU_a1ioqOR8" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Explicit Backing Fields in Kotlin 2.3 - What You Need to Know
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Dave Leeds shows you what Explicit Backing Fields are, when you'll want to use them, and what to look out for.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=5wJ-MOH6GBQ" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Why you should delete your base classes on Android
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner explains why the base class pattern is an anti-pattern on Android and KMP.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=xBHRK_Qp55c" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How I Create App Store Screenshots 10x Faster
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Daniel Atitienei demonstrates AppScreens, which helps generate App Store screenshots more easily than opening up Figma or Photoshop.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=53CKZw9n0ys" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Making Apps Accessible with Kotlin and Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Vanessa Johnson discusses why implementing accessibility is easier than people think, especially with modern tools like the Kotlin semantics modifier in Jetpack Compose.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
]]></description>
    <pubDate>Sun, 01 Feb 2026 14:58:37 +0000</pubDate>
    <guid>https://androidweekly.net/issues/issue-712</guid>
  </item>
  <item>
    <title>Android Weekly Issue #711</title>
    <link>https://androidweekly.net/issues/issue-711/rss.xml</link>
    <description><![CDATA[<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Articles & Tutorials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://firebender.com/" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/6974ef/683c93bc3a090107a5/square_firebender.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://firebender.com/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
🔥 Most powerful AI in Android Studio 👊 
</a></div><div>Code 10x faster. Tell Firebender to create full screens, ship features, or fix bugs - and watch it do the work for you. It's been battle tested by the best android teams at companies like Tinder, Adobe, and Instacart.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://alexzh.com/how-to-fix-the-compose-preview-naming-problem/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How to fix the Compose preview naming problem 
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Alex Zhukovich explains how to give descriptive names to Compose preview states instead of index-based default names.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://itnext.io/dependency-injection-with-koin-interfaces-and-qualifiers-7a7c078d9689" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Dependency Injection with Koin, interfaces and qualifiers 
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Tezov shows how Koin uses interfaces and qualifiers to inject specific implementations of the same contract in Kotlin.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://fandf.co/45qcatG" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/6974ef/903c93bc3a090107ae/square_developer_avatar_orange_85x85.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://fandf.co/45qcatG" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Want to start building with React Native? 
</a></div><div>An Android developer's guide to React Native explores the mental shift from Android. Whether from View/XML or Jetpack Compose, learn how React components map to Android's Activities and Intents, discover Flexbox vs XML layouts, and understand state management. Read the full guide.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.jetbrains.com/idea/2026/01/how-to-avoid-common-pitfalls-with-jpa-and-kotlin/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How to Avoid Common Pitfalls With JPA and Kotlin
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Teodor Irkhin and Thorben Janssen advise modelling JPA entities as open mutable classes using compiler plugins, not Kotlin data classes or val.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://jonnyzzz.com/blog/2026/01/19/kotlin-dsl-2026/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Kotlin DSLs in 2026: Patterns That Stood the Test of Time
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Eugene Petrenko examines patterns that not only survived but have become fundamental to how we build modern JVM applications.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://jonnyzzz.com/blog/2026/01/24/16-ai-agents-documentation-refactor/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How 16 AI Agents Fixed Our Documentation Problem 
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Eugene Petrenko used 16 AI agents to refactor docs around a single quick-start command, cutting length 39% and improving navigation for both humans and agents.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/building-a-text-sentiment-classifier-in-kotlin-multiplatform-987ee2da1717" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Building a Text Sentiment Classifier in Kotlin Multiplatform
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Shubham Panchal shows how to target Android, iOS, and Desktop (JVM) with platform-specific Text Sentiment Classifier APIs.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/how-to-create-a-tubelight-effect-in-android-compose-2383befc47b1" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How to Create a Tubelight Effect in Android Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Roman Khrupa demonstrates a Compose Canvas sweepGradient animation that produces a tubelight-style neon scan.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/those-red-squiggly-lines-that-dont-break-your-build-understanding-kotlin-s-suspicious-811304f3fd52" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Understanding Kotlin’s “Suspicious Indentation” Warning
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Sehaj Kahlon demystifies Kotlin’s Suspicious Indentation warning so you catch newline-terminated statements that look like continuations.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/swipe-to-dismiss-with-compose-material-3-38445e0143f7" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Swipe-to-Dismiss with Compose Material 3
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Domen Lanišnik shows how Material 3 SwipeToDismissBox handles swipe-to-dismiss or update interactions in Compose lists.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/serverless-ai-for-android-with-firebase-ai-logic-6db446ae2f86" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Serverless AI for Android with Firebase AI Logic
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Stevan Milovanovic writes about building generative, multimodal features on Android without managing backend infrastructure.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/how-i-got-tired-of-writing-boilerplate-in-compose-and-wrote-my-own-emmet-like-plugin-for-android-337e4421fad6" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How I got tired of writing boilerplate in Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Andrew Malitchuk introduces YARC, an Emmet-like DSL plugin that generates Compose UI trees from abbreviations.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://publicobject.com/2026/01/22/dont-block-suspend-functions/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Don’t Block Suspend Functions
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Jesse Wilson warns that blocking inside suspend functions breaks coroutines and shows why suspend functions must always suspend rather than block.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Place a sponsored post</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://androidweekly.net/jobs/new" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/6974ef/553c93bc3a0901079f/square_aw.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://androidweekly.net/jobs/new" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Advertise to more than 80k Android developers!
</a></div><div>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!
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Libraries & Code</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/andrew-malitchuk/yet-another-rapid-compose" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
yet-another-rapid-compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Yet Another Rapid Compose - build Jetpack Compose layouts effortlessly with an intelligent shorthand generator. 
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">News</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2026/01/ready-to-review-some-changes-but-not.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Try using Play Console’s new Save for later feature
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google adds Play Console Save for later so you can hold back selected changes and submit only what is ready for review.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.jetbrains.com/kotlin/2026/01/exposed-1-0-is-now-available/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Exposed 1.0 Is Now Available
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Simon Vergauwen reveals Exposed 1.0 with R2DBC support and a stable API that ensures no breaking changes until the next major version.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Videos & Podcasts</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://fragmentedpodcast.com/episodes/301/" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/69755d/123c93bc3a09011bf2/square_Bildschirmfoto_2026-01-25_um_18.53.14.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://fragmentedpodcast.com/episodes/301/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
The AI coding ladder
</a></div><div>Kaushik Gopal and Iury Souza map AI coding into four paradigms so experienced developers can align tooling choices.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=_6PSSkqwbp8" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Everything New in Kotlin 2.3 in Roughly 10 Minutes
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Kotlin 2.3 is packed with nice updates: new language features like the unused return value checker and explicit backing fields, and a lot more.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=r74X0p7R21k" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How To Handle Deep Links With Navigation3
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div> Jov Mit shows how to handle Deep Links with Navigation 3
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=9CwXD9rJnQQ" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Firebase After Hours: Agentic coding with Gemini Skills
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Explore the brand new "Agent Skills" feature in the Gemini CLI. If you've been stuffing everything into a massive GEMINI.md file, you're doing it the hard way.


</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=Jp3Yg1VSRkY" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Gradle 9 Will Break Your KMP Project - Here's the Full Migration Strategy
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner shows the core changes of Gradle 9 to KMP projects, so you can migrate your own projects.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=Fa92Y_TX3iM" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Stop using LaunchedEffect for passing an Argument to a ViewModel
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Stop using LaunchedEffect for passing an Argument to a ViewModel
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=ZEzFi_JrANc" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Gemini CLI Tips & Tricks: The Context Bloat Solution
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Learn how Skills solve the problem of context bloat by using progressive disclosure
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
]]></description>
    <pubDate>Sun, 25 Jan 2026 17:53:28 +0000</pubDate>
    <guid>https://androidweekly.net/issues/issue-711</guid>
  </item>
  <item>
    <title>Android Weekly Issue #710</title>
    <link>https://androidweekly.net/issues/issue-710/rss.xml</link>
    <description><![CDATA[<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Articles & Tutorials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://fandf.co/49cCAl0" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/696d08/fa3c93bc664f000061/square_developer_avatar_85x85__1_.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://fandf.co/49cCAl0" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Curious about building with React Native?
</a></div><div>An Android developer's guide to React Native breaks down the mental shift, from XML & Activities to components, hooks and state management - especially if you’re coming from View-based or Jetpack Compose. Read the full guide.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://itnext.io/dependency-injection-with-koin-the-minimal-setup-kmp-d696ae2db09f" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Dependency Injection with Koin, the minimal setup (KMP) 
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Tezov outlines a minimal Koin configuration approach tailored for Kotlin Multiplatform projects.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.jetbrains.com/kotlin/2026/01/the-journey-to-compose-hot-reload-1-0-0/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
The Journey to Compose Hot Reload 1.0 
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Sebastian Sellmair and Azat Abdullin describe stable Compose Hot Reload 1.0 enabling zero-configuration dynamic UI updates in Compose Multiplatform.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://firebender.com" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/696d08/ba3c93bc664f00004f/square_firebender.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://firebender.com" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
🔥 Most powerful AI in Android Studio 👊
</a></div><div>Code 10x faster. Tell Firebender to create full screens, ship features, or fix bugs - and watch it do the work for you. It's been battle tested by the best android teams at companies like Tinder, Adobe, and Instacart.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://engineering.mercari.com/en/blog/entry/20260108-naventryscope-the-missing-scope-in-android-hilt/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
NavEntryScope: The missing scope in Android Hilt
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Luca presents NavEntryScope to bridge Hilt’s scope gaps and manage shared dependencies per navigation entry.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.jetbrains.com/ai/2026/01/building-ai-agents-in-kotlin-part-4-delegation-and-sub-agents/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Building AI Agents in Kotlin – Part 4: Delegation and Sub-Agents
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Bruno Lannoo shows how delegation and sub-agents help structure scalable AI agent architectures in Kotlin.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.jetbrains.com/kotlin/2026/01/update-your-projects-for-agp9/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Update your Kotlin projects for Android Gradle Plugin 9.0
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Márton Braun explains the essential changes developers must apply to keep Android projects compatible with Android Gradle Plugin 9.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/the-easiest-way-to-add-haptic-feedback-in-compose-multiplatform-31fc4cb85ea2" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
The Easiest Way to Add Haptic Feedback in Compose Multiplatform
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Suhyeon Kim showcases a declarative haptic-feedback library that makes implementing cross-platform tactile interactions in Compose Multiplatform easy.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/in-out-reified-a-practical-guide-to-kotlin-generics-2beb6b9eb67a" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
in, out, reified: A Practical Guide to Kotlin Generics
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Anshul Vyas breaks down how Kotlin’s in, out, and reified generics enable safer, more flexible type-safe code with examples.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/beyond-flat-lists-build-expressive-material-3-lists-in-compose-65e6f8f355fb" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Beyond Flat Lists: Build Expressive Material 3 Lists in Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Nav Singh showcases Material3 ListItem upgrades, adding segmented variants and integrated selection and click behaviors with expressive elevation, shape, and motion support.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/google-developer-experts/supercharging-android-studio-ai-e59e609a84dd" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Supercharging Android Studio AI
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Angélica Oliveira and Aline Ayres explain configuring Android Studio’s AI with MCP servers, alternate models, and prompt libraries to enhance development workflows.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://krossovochkin.com/posts/2026_01_11_kotlin_coroutines_cancellation_and_exception_handling/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Kotlin Coroutines Cancellation and Exception Handling
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Vasya Drobushkov clarifies cancellation and exception handling in Kotlin coroutines and suggests relying on safe return types over exceptions.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://victorbrandalise.com/reducing-unnecessary-recompositions-in-jetpack-compose/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Reducing Unnecessary Recompositions in Jetpack Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Victor Brandalise outlines practical techniques to minimize unnecessary recompositions in Jetpack Compose for better performance.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://segunfamisa.com/posts/exploring-custom-text-rendering-in-compose" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Exploring Custom Text Rendering with Jetpack Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Segun Famisa shows how custom text rendering in Compose enables deeper control using TextMeasurer and Canvas.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://joebirch.co/android/building-a-responsive-tab-row-in-jetpack-compose/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Building a Responsive Tab Row in Jetpack Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Joe Birch demonstrates a responsive Compose TabRow that adapts layout based on available space.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://eevis.codes/blog/2026-01-17/beyond-font-scaling-large-content-viewer-with-compose/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Beyond Font Scaling: Large Content Viewer with Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Eevis Panula shows how Compose layouts can adapt content structure, not just text size, to improve accessibility.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Place a sponsored post</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://androidweekly.net/jobs/new" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/696d08/d03c93bc664f000059/square_aw.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://androidweekly.net/jobs/new" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Advertise to more than 80k Android developers!
</a></div><div>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!
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Libraries & Code</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://github.com/iamjosephmj/flinger" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/696c3e/603c93bc136a000e3a/square_Bildschirmfoto_2026-01-18_um_17.24.43.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/iamjosephmj/flinger" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
flinger
</a></div><div>Customizable Fling Physics for Jetpack Compose. Take full control of scroll momentum in LazyColumn, LazyRow, Pagers, and more with 9+ presets, snap behavior, and adaptive physics. 
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/creativedrewy/Mozart" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Mozart
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Mozart is a library that allows you to create Android Live Wallpapers using Jetpack Compose.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/compose-jindong/jindong" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
jindong
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Declarative Haptic Feedback Library for Compose Multiplatform
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">News</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.jetbrains.com/kotlin/2026/01/compose-multiplatform-1-10-0/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Compose Multiplatform: Navigation 3, and Stable Compose Hot Reload & more
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Elvira Mustafina introduces Compose Multiplatform 1.10.0 with performance, API, and stability improvements across all supported platforms.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://developer.android.com/build/releases/agp-9-0-0-release-notes" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Android Gradle plugin 9.0.0 - January 2026
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Android Gradle plugin 9.0 is a major release that brings API and behavior changes.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2026/01/llm-flexibility-agent-mode-improvements.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
LLM flexibility, Agent Mode improvements in Android Studio Otter 3 Feature Drop
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google introduces more flexible LLM selection and enhanced Agent Mode capabilities in Android Studio to support complex, multi-step developer workflows.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Videos & Podcasts</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://www.youtube.com/watch?v=WQhiA25aExI" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/696c38/d53c93bc136a000d5e/square_Bildschirmfoto_2026-01-18_um_17.25.16.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=WQhiA25aExI" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
What’s new in Android Studio Otter
</a></div><div>Discover the new features and updates in Android Studio Otter Feature Drops 1, 2, and 3.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=1TYeFGufawk" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
XR: Virtually here
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Join hosts Tor, Chet, and Romain as they sit down with Diego Perez (Android Studio) and Patrick Fuentes (Developer Relations) to explore the new frontiers of Android XR.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=fngzEKzTVfc" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How to get the right CoroutineScope
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>We know we're not supposed to use `GlobalScope`. Dave Leeds examines what CoroutineScope we should use instead.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://fragmentedpodcast.com/episodes/300/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
From Vibe coding to Software engineering - Fragmented
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Fragmented is changing. New direction, new cohost. Kaushik explains the pivot from Android to AI development and introduces Iury Souza.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=R4sTHK2QoWw" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Nav2 vs. Nav3 - Which Library For a Production Android App In 2026?
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner talks about which navigation library in Jetpack Compose is recommended in a real production Android app in early 2026.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=W9d06eRyNU8" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How to Configure MCP Servers and Custom Models in Android Studio
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Angélica Oliveira and Aline Ayres show how to enhance Android Studio AI with MCP servers, external models, and custom prompt libraries.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Specials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://chethaase.medium.com/once-upon-a-time-there-was-a-podcast-5851ebd6a063" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Once Upon a Time, there was a podcast
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Chet Haase tells a "fictional" podcast origin story to reflect on how creative projects change once reality meets initial enthusiasm.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://paul-samuels.com/blog/2026/01/15/make-nice-tools/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Make nice tools
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Paul Samuels shares insights from evolving a developer tool to improve developer experience by reducing friction, enhancing usability, and fostering broader contribution
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://surveys.jetbrains.com/s3/8723a6b7c448 " target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
3-minute Android Developers Survey
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>JetBrains is running a quick 3-minute survey for Android developers about cross-platform development, including Kotlin-based code sharing: what you’ve heard of, how you feel about different approaches, and what influences the decision to use them (or not). As a thank you, thoughtful responses can enter a raffle to win either a $50 Amazon gift card or a 6-month JetBrains All Products Pack subscription.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
]]></description>
    <pubDate>Sun, 18 Jan 2026 16:25:49 +0000</pubDate>
    <guid>https://androidweekly.net/issues/issue-710</guid>
  </item>
  <item>
    <title>Android Weekly Issue #709</title>
    <link>https://androidweekly.net/issues/issue-709/rss.xml</link>
    <description><![CDATA[<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Articles & Tutorials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://firebender.com/" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/696379/513c93bc35d90066e0/square_firebender.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://firebender.com/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
🔥 Most powerful AI in Android Studio 👊
</a></div><div>Code 10x faster. Tell Firebender to create full screens, ship features, or fix bugs - and watch it do the work for you. It's been battle tested by the best android teams at companies like Tinder, Adobe, and Instacart.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://efebu.medium.com/how-to-implement-a-fancy-topappbar-on-compose-multiplatform-5615ad02492b?sk=541ea29fb95ab3126aa5ae7c5386a085" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
I Wanted the Google Photos Top Bar Animation. Here’s How I Finally Built It.
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>efe budak explains implementing a Google-Photos-style animated top bar in Compose Multiplatform using scroll behavior and nested scrolling.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://alyssoncirilo.com/blog/kotest-kmp-setup/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Setting up Kotest on KMP
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Alysson Cirilo shows how to set up Kotest with proper Gradle and source set configuration for Kotlin Multiplatform testing.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://skydoves.medium.com/announcing-landscapist-core-a-new-image-loading-library-for-android-compose-multiplatform-6a4f408cba00?postPublishedType=repub" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
A New Image Loading Library for Android & Compose Multiplatform
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Jaewoong Eum presents Landscapist Core, a small, KMP-first image loader with efficient caching and UI integration for Compose Multiplatform.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/mastering-pagers-in-android-jetpack-compose-3595214ee6dc" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Mastering Pagers in Android Jetpack Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Oğuzhan Aslan covers using Compose’s Pager APIs, state control, custom layouts, and Paging 3 for advanced paginated UI.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/vhs-glitch-shader-for-compose-from-zero-to-production-3139d74c48e8" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
VHS Glitch Shader for Compose — From Zero to Production
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Max Kach explains creating and integrating a VHS glitch shader in Jetpack Compose using AGSL and reusable components.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/building-a-glowing-bottom-navigation-with-agsl-shaders-6a5faa547e09" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Building a Glowing Bottom Navigation with AGSL Shaders
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Veronica Putri Anggraini demonstrates creating a custom glowing bottom navigation in Jetpack Compose using AGSL shaders.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/from-recyclerview-to-lazycolumn-a-performance-optimization-playbook-for-jetpack-compose-81aa38dca1bf" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
A Performance Optimization Playbook for Jetpack Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Sergey Drymchenko outlines practical performance tips like keys, immutable data, and content types to optimize LazyColumn lists when moving from RecyclerView to Jetpack Compose.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://handstandsam.com/2026/01/07/how-im-using-agents-for-development-january-2026/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How I’m Using Agents for Development
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Sam Edwards describes using agents in IntelliJ IDEA and a Research-Plan-Implement workflow to automate research, planning, and incremental coding tasks in a project.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.revenuecat.com/blog/engineering/custom-paywalls-compose/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Building animated custom Paywalls in Jetpack Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Jaewoong Eum demonstrates crafting advanced animated custom paywalls in Jetpack Compose with RevenueCat integration and remote content testing.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://itnext.io/dependency-injection-from-basics-to-koin-kmp-cmp-9067ce2aa642#bc38-8b6ae8fb7961" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Dependency Injection, from basics to Koin (KMP-CMP)
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Te Zov explains DI fundamentals for Kotlin/KMP and gradually introduces Koin as an effective DI solution.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://hackernoon.com/jetpack-compose-memory-leaks-a-reference-graph-deep-dive" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Jetpack Compose Memory Leaks: A Reference-Graph Deep Dive
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Mohan Sankaran explains how reference leaks in Jetpack Compose arise from improper reference retention and how to diagnose and resolve them.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Place a sponsored post</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://androidweekly.net/jobs/new" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/696379/793c93bc35d90066f3/square_aw.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://androidweekly.net/jobs/new" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Advertise to more than 80k Android developers!
</a></div><div>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!
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Libraries & Code</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://github.com/ferranpons/Llamatik" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/6962f8/583c93bc35d90054ed/square_Bildschirmfoto_2026-01-11_um_11.20.13.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/ferranpons/Llamatik" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Llamatik
</a></div><div>Kotlin-first llama.cpp integration for on-device and remote LLM inference
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/block/trailblaze" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
trailblaze
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Trailblaze is an AI-powered mobile testing framework that lets you author and execute tests using natural language.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Videos & Podcasts</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=9N3WfEv7_AY" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Kotlin 2.3.0, New Compose Features & More
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner covers Kotlin 2.3.0's new features, including nested type aliases and data flow checks. 
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=nFnlkaH9JS8" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How to create a sticky footer for a ModalBottomSheet in Jetpack Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Jov Mit demonstrates how to implement a sticky footer for a ModalBottomSheet in Jetpack Compose.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=joo4D7V1Wus" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Sell or Buy? Custom Financial Data Vis with Kotlin
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Enrique Lopez Manas discusses his KotlinConf 2025 talk on using Kotlin for custom financial data visualization.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=h7QK7RDK1jI" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
If AI makes you feel bad as a developer, watch this video
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner explores AI's coding capabilities using objective metrics and real-world tests.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=De1y2nXVSFw" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Injecting Platform-Specific Dependencies with Koin in Compose Multiplatform
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Mykola Miroshnychenko implements platform-specific dependency injection in a Compose Multiplatform (CMP) application using Koin.


</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
]]></description>
    <pubDate>Sun, 11 Jan 2026 10:21:08 +0000</pubDate>
    <guid>https://androidweekly.net/issues/issue-709</guid>
  </item>
  <item>
    <title>Android Weekly Issue #708</title>
    <link>https://androidweekly.net/issues/issue-708/rss.xml</link>
    <description><![CDATA[<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Articles & Tutorials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://firebender.com/" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/695a9f/2a3c93bc60360119cf/square_firebender.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://firebender.com/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
🔥 Most powerful AI in Android Studio 👊
</a></div><div>Code 10x faster. Tell Firebender to create full screens, ship features, or fix bugs - and watch it do the work for you. It's been battle tested by the best android teams at companies like Tinder, Adobe, and Instacart.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/@azizkhadjaev/android-15-upgrade-diary-target-sdk-35-migration-challenges-088b3fef4d6e" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Android 15 upgrade diary: Target SDK 35 migration challenges
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Azizkhuja Khujaev shares practical Android 15 (API 35) migration lessons including behavior changes and edge case UI fixes across devices and themes that emerged when targeting SDK 35.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/@santimattius/list/adopting-kotlin-multiplatform-without-chaos-1e20a7c2c25c" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Adopting Kotlin Multiplatform without Chaos
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Santiago Mattiauda's series of articles on successfully adopting Kotlin Multiplatform.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/@oianmol/beyond-shared-logic-building-a-whitelabel-app-with-kotlin-multiplatform-d220a0b196b2?postPublishedType=initial" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Beyond Shared Logic: How to Build a Whitelabel app with Kotlin Multiplatform
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Anmol Verma explains using config-driven Kotlin Multiplatform architecture to share ~70 % of code while keeping native Jetpack Compose and SwiftUI rendering for a white-label app.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://efebu.medium.com/viewmodel-with-navigation-3-in-compose-multiplatform-300cc7dd58a8?sk=17fbc2cefdbfd85962243dcc3659fa26" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
ViewModel with Navigation 3 in Compose Multiplatform
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Efe Budak shows how to use ViewModel with Navigation 3 in Compose Multiplatform to share and manage UI state across destinations.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://todd.ginsberg.com/post/java/beware-of-week-year/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Week Year: Java Date Formatting With YYYY Instead of yyyy
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Todd Ginsberg explains why Java’s YYYY week-year causes wrong-formatted dates and how to correct and avoid its misuse. 
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.grokkingandroid.com/the-different-node-types-in-jetpack-compose/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
The Different Node Types in Jetpack Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Wolfram Rittmeyer explains key Compose node types and how they form and support the internal UI tree in Jetpack Compose.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/google-developer-experts/on-device-function-calling-with-functiongemma-39f7407e5d83" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
On-Device Function Calling with FunctionGemma
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Sasha Denisov shows how FunctionGemma enables efficient on-device AI agents to convert language to function calls for mobile and web apps.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Place a sponsored post</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://androidweekly.net/jobs/new" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/695a9f/433c93bc60360119d9/square_aw.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://androidweekly.net/jobs/new" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Advertise to more than 80k Android developers!
</a></div><div>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!
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Videos & Podcasts</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=fPm4yGATPDM" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Is native Android still relevant in 2026?
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner shares thoughts about the current tough job market in the tech sector and gives you a clear recommendation on how to proceed with your career.


</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=JgsPXZIKInw" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Bringing Androidify to Wear OS
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Learn how to create personalized Wear OS watch faces directly from your Android app.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=gHIs0Mdow8M" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
The Genius System Behind the Uber App’s Real-Time Map
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner goes into detail how the Uber app and backend really works to allow streaming millions of live locations of their drivers and riders - while making sure the app still runs fluently.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Specials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://medium.com/@ms.carmen.alvarez/a-13-year-evolution-of-android-what-700-android-weekly-newsletters-reveal-about-rxjava-compose-cd3125ef6b21" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/695a24/af3c93bc6036010896/square_Bildschirmfoto_2026-01-04_um_18.12.04.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/@ms.carmen.alvarez/a-13-year-evolution-of-android-what-700-android-weekly-newsletters-reveal-about-rxjava-compose-cd3125ef6b21" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
What 700+ Android Weekly issues reveal
</a></div><div>Carmen Alvarez uses 700 Android Weekly issues to show how interest in RxJava and Jetpack Compose evolved over 13 years in the Android ecosystem.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table>]]></description>
    <pubDate>Sun, 04 Jan 2026 17:13:52 +0000</pubDate>
    <guid>https://androidweekly.net/issues/issue-708</guid>
  </item>
  <item>
    <title>Android Weekly Issue #707</title>
    <link>https://androidweekly.net/issues/issue-707/rss.xml</link>
    <description><![CDATA[<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Articles & Tutorials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://firebender.com/" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/695156/2e3c93bc5a5e003f07/square_firebender.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://firebender.com/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
🔥 Most powerful AI in Android Studio 👊
</a></div><div>Code 10x faster. Tell Firebender to create full screens, ship features, or fix bugs - and watch it do the work for you. It's been battle tested by the best android teams at companies like Tinder, Adobe, and Instacart.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://kt.academy/article/compose-desktop" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Minimal setup for Compose Desktop
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Marcin Moskala explains how to set up a basic Kotlin Compose Desktop project with essential plugins, dependencies, and a simple Window UI entry point.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://itnext.io/that-simple-backend-change-just-broke-our-mobile-app-76676c0dfbe8" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
That “Simple Backend Change” Just Broke Our Mobile App
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Filipe Batista recounts how a minor backend API change broke a mobile app and stresses stronger API versioning and coordination to avoid such breakages
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/@domen.lanisnik/increase-productivity-with-git-worktrees-as-an-android-developer-c7e8b99eeab5" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Increase Productivity with Git Worktrees as an Android Developer
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Domen Lanišnik explains how Git worktrees let Android developers work on multiple branches in parallel with fewer rebuild delays and faster context switching
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/understanding-how-orbiter-works-on-android-xr-49ed971d45db" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Understanding How Orbiter Works on Android XR
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Veronica Putri Anggraini shows how Orbiter in Jetpack Compose for Android XR creates floating spatial UI elements for immersive, uncluttered interactions.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/the-micro-interaction-pattern-using-quick-settings-tiles-for-instant-input-57db9e52c458" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
The Micro-Interaction Pattern: Using Quick Settings Tiles for Instant Input
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Joseph Sanjaya explains creating “ghost input” patterns with custom Quick Settings tiles for fast, in-place user actions.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/catching-excessive-recompositions-in-jetpack-compose-with-tests-8d0b952e2853" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Catching excessive recompositions in Jetpack Compose with tests
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Sahand Zehtabchi demonstrates making recomposition behavior measurable and testable with a trackRecompositions modifier and automated tests for Jetpack Compose
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/compose-canvas-understanding-shapes-and-animations-for-beginners-255653149393" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Compose Canvas : Understanding Shapes and Animations for beginners
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Rohit Kumar demonstrates foundational shape drawing and animation techniques using Jetpack Compose Canvas through a progressively constructed animated example.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Place a sponsored post</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://androidweekly.net/jobs/new" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/695156/443c93bc5a5e003f0e/square_aw.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://androidweekly.net/jobs/new" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Advertise to more than 80k Android developers!
</a></div><div>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!
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Libraries & Code</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/devhyper/open-video-editor" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
open-video-editor
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Open source Android video editor, built with Media3 and Jetpack Compose. 
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Videos & Podcasts</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://soundcloud.com/kotlin-khronicles/marton-braun-hot-reload-in-compose-and-kotlin-new-features" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Márton Braun, Hot Reload in Compose and Kotlin new features by Kotlin Khronicles
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Sit down with Márton Braun from JetBrains to explore what's new in Kotlin 2.1 through 2.3
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=qJMMc9oK3X8" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Screen Transition Animations With Navigation3 (CMP & Native Android)
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner shows how you can define custom transition animations for normal navigation transitions as well as for popping elements from the back stack.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=LgytL7CXUA4" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Language Design in the Age of AI
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Huyen and Marat discuss how language design is shifting now that AI has become an "infinite consumer for languages.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=qrCoyDTFzIQ" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
The New Retain API in Jetpack Compose - Everything You Need to Know
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner talks about Google's new retain API, which extends remember and rememberSaveable with another function in your toolbox.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
]]></description>
    <pubDate>Sun, 28 Dec 2025 16:10:48 +0000</pubDate>
    <guid>https://androidweekly.net/issues/issue-707</guid>
  </item>
  <item>
    <title>Android Weekly Issue #706</title>
    <link>https://androidweekly.net/issues/issue-706/rss.xml</link>
    <description><![CDATA[<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Articles & Tutorials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://androidweekly.net/jobs/new" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/694823/183c93bc6d49014df4/square_aw.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://androidweekly.net/jobs/new" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Advertise to more than 80k Android developers! 
</a></div><div>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!
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/12/goodbye-mobile-only-hello-adaptive.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Goodbye Mobile Only, Hello Adaptive: Three essential updates from 2025 for building adaptive apps 
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Fahd Imtiaz explains Android 16’s adaptive UI changes, WindowManager 1.5.0’s large/extra-large size classes, and Jetpack Navigation 3’s multi-pane approach to build truly adaptive apps
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/12/18-faster-compiles-0-compromises.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
18% Faster Compiles, 0% Compromises 
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Santiago Aboy Solanes and Vladimír Marko explain how ART achieved ~18% faster compile times in 2025 without sacrificing code quality or memory use
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://firebender.com/" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/694823/2c3c93bc6d49014dfb/square_firebender.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://firebender.com/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
🔥 Most powerful AI in Android Studio 👊
</a></div><div>Code 10x faster. Tell Firebender to create full screens, ship features, or fix bugs - and watch it do the work for you. It's been battle tested by the best android teams at companies like Tinder, Adobe, and Instacart.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.jetbrains.com/kotlin/2025/12/how-mobile-development-teams-use-kotlin-in-2025/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How Mobile Development Teams Use Kotlin in 2025
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>José Luis González shares practical Kotlin concurrency and monitoring recommendations that mobile teams can apply in 2025.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.jetbrains.com/kotlin/2025/12/the-ultimate-guide-to-successfully-adopting-kotlin-in-a-java-dominated-environment/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
The Ultimate Guide to Successfully Adopting Kotlin in a Java-Dominated Environment | The Kotlin Blog
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Alyona Chernyaeva presents a practical five-stage roadmap for introducing and scaling Kotlin in Java-dominant environments.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/@kmpbits/testing-jetpack-compose-ui-on-the-jvm-the-discovery-that-changed-my-workflow-a0b42f83d275" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Testing Jetpack Compose UI on the JVM: The Discovery That Changed My Workflow
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>KMP Bits shows that Robolectric JVM Compose UI tests remove emulator overhead, making fast and reliable UI testing possible.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/theming-your-app-for-the-holidays-4245f4f46a05" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Theming Your App for the Holidays
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Katie Barnett examines how to dynamically update your Android app theme any time you want to add some holiday cheer!
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/when-kotlin-flow-needs-channelflow-and-callbackflow-175e0cea17b2" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
When Kotlin Flow Needs channelFlow and callbackFlow
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Anatolii Frolov shows that flow fails for concurrent and callback emissions, and that channelFlow and callbackFlow are the correct Kotlin Flow builders for those use cases.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=pw17l53waSM" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Coroutines Need a Scope... and That's a Good Thing!
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Dave Leeds teaches how coroutine scopes give us structured concurrency, and once you understand the benefits that it gives you, you'll never want to write concurrent code without it!

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/12/brighten-your-real-time-camera-feeds.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Brighten Your Real-Time Camera Feeds with Low Light Boost
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Donovan McMurray outlines how to implement Android’s Low Light Boost to enhance real-time camera brightness using hardware AE Mode or a software fallback.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/12/bringing-androidify-to-wear-os-with.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Bringing Androidify to Wear OS with Watch Face Push
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Garan Jenkin shows Androidify turning a selfie into a watch face and pushing it to Wear OS using Watch Face Push, validation tokens, and an activation permission.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://buttondown.com/inclusive-android-apps/archive/inclusive-android-apps-1-the-problem-of-rows-breaking-with-large-text/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Inclusive Android Apps #1: The Problem of Rows Breaking with Large Text
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Eeva-Jonna Panula shows that Row breaks with large text in Compose and that FlowRow fixes accessibility issues by allowing content to wrap
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">News</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://android-developers.googleblog.com/2025/12/media3-190-whats-new.html" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/69473d/2f3c93bc6d49013261/square_Bildschirmfoto_2025-12-21_um_17.42.15.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/12/media3-190-whats-new.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Media3 1.9.0 - What’s new
</a></div><div>Kristina Simakova details Media3 1.9.0’s new modules, improved caching/memory, UI Compose Material3 components, Cast integration, and experimental CompositionPlayer for richer Android media experiences.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.jetbrains.com/kotlin/2025/12/kotlin-2-3-0-released/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Kotlin 2.3.0 Released
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>JetBrains announces Kotlin 2.3.0 with stable language features, tooling and platform improvements, Java 25 support, better Gradle and Compose tooling, and standard library updates.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/12/build-smarter-apps-with-gemini-3-flash.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Build smarter apps with Gemini 3 Flash
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google announces Gemini 3 Flash as a faster multimodal model for building responsive AI features in Android apps.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/androiddevelopers/now-in-android-123-7ad94b13d5bc" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Now In Android: Android XR, Android Studio Otter 2
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Dan Galpin reviews Android XR, Android Studio Otter 2, Android 16 QPR2, Compose and Navigation 3, performance tools, camera APIs, and ML Kit updates in Now In Android #123.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/12/notes-from-google-play-2025.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Notes from Google Play: A look back at the tools that powered your growth in 2025
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Sam Bright highlights how Google Play expanded discovery, productivity tools, monetization features, and security to support developers throughout 2025.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Videos & Podcasts</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://www.youtube.com/watch?v=zr5dVXL4dlg" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/694740/8c3c93bc6d490132e0/square_Bildschirmfoto_2025-12-21_um_17.42.43.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=zr5dVXL4dlg" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Notes from Google Play 2025: Build successful apps & games
</a></div><div>Join Sam Bright, VP & GM, Google Play + Developer Ecosystem and take a look back at some of the key features and programs launched this year to help you build successful apps and games businesses. 

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=dj6jdWkgwqc" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Scenes & Scene Strategies In Navigation3 (CMP & Native Android)
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner explores what scenes and scene strategies are in the new Nav3 library from Google.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=37Q5yQaT7_I" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Navigate Back With Result In Navigation3 (CMP & Native Android)
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner teaches how you can pop a screen from the back stack while delivering a result to the previous screen.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=3OfHnhTHpG0" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Koin Annotations Tutorial: Dependency Injection in Kotlin for Android
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>In this beginner-friendly Koin tutorial, Koin creator Arnaud Giuliani explains how annotation-based DI replaces verbose modules with clean, scalable code.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=kIe8ha5MxOk" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Now in Android – Android XR, Jetpack Navigation 3, and more!
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Dan covers the latest releases from Android XR, the Android Studio Otter 2 feature drop with Gemini 3, the release of Android 16 QPR2, Jetpack Navigation 3, and more!

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
]]></description>
    <pubDate>Sun, 21 Dec 2025 16:43:30 +0000</pubDate>
    <guid>https://androidweekly.net/issues/issue-706</guid>
  </item>
  <item>
    <title>Android Weekly Issue #705</title>
    <link>https://androidweekly.net/issues/issue-705/rss.xml</link>
    <description><![CDATA[<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Articles & Tutorials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://firebender.com/" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/693eb0/323c93bc1de700a92a/square_firebender.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://firebender.com/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
🔥 Most powerful AI in Android Studio 👊
</a></div><div>Code 10x faster. Tell Firebender to create full screens, ship features, or fix bugs - and watch it do the work for you. It's been battle tested by the best android teams at companies like Tinder, Adobe, and Instacart.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/from-view-invisible-to-modifier-visible-rethinking-visibility-%EF%B8%8Fin-jetpack-compose-7957650e4d70" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
From View.INVISIBLE to Modifier.visible(): Rethinking Visibility ️in Jetpack Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Nav Singh clarifies how Modifier.visible hides composables without layout shifts by skipping placement and drawing while keeping measured space.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.tunjid.com/articles/shared-element-transitions-for-large-screened-devices-6936d332566f1145a11726a8" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Shared element transitions for large screened devices
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>TJ Dahunsi explains shared element transitions for large-screen Android with MotionLayout and Compose for smooth animated navigation.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.jetbrains.com/kotlin/2025/12/how-backend-development-teams-use-kotlin-in-2025/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How Backend Development Teams Use Kotlin in 2025
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>José Luis González highlights backend Kotlin anti-patterns and idiomatic practices like sealed classes, value classes, and structured coroutines for more maintainable backend code.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/ktoon-tiny-tables-big-savings-plug-toon-into-your-serializable-kotlin-classes-4bf6f65c208f" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Tiny Tables, Big Savings Plug TOON into Your @Serializable Kotlin Classes
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Joseph Sanjaya presents KToon, a compact TOON-style Kotlin serialization format that cuts data size by eliminating redundant JSON fields while staying compatible with existing @Serializable classes.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/google-developer-experts/from-zero-to-hero-running-googles-gemma-3n-on-android-with-litert-qualcomm-qnn-4eaa38bbadd4" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Running Google’s Gemma 3n on Android with LiteRT & Qualcomm QNN
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Kartikey Rawat shows how to run a Gemma 3n LLM on Android with LiteRT and optional Qualcomm QNN acceleration in a polished, offline chat interface.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.romainguy.dev/posts/2025/arbitrary-shape-tap-detection/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Tap Detection on Arbitrary Shapes with Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Romain Guy shows how to use PathHitTester in Jetpack Compose for efficient, precise tap detection on arbitrary shapes.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Place a sponsored post</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://androidweekly.net/jobs/new" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/693eb0/4d3c93bc1de700a939/square_aw.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://androidweekly.net/jobs/new" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Advertise to more than 80k Android developers!
</a></div><div>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!
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Libraries & Code</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/AndroidPoet/compose-guard" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
compose-guard
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Real-time detection of Jetpack Compose best practices and rule violations directly in Android Studio. 
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/JosephSanjaya/ktoon" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
ktoon
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>KToon is a Kotlin Multiplatform serialization library implementing the TOON format (Token-Oriented Object Notation). Think of it as JSON's efficient cousin perfect for mobile apps, IoT devices, and anywhere bandwidth matters. 
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">News</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://android-developers.googleblog.com/2025/12/building-safer-android-and-google-play.html" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/693de8/e83c93bc1de7008d7d/square_Bildschirmfoto_2025-12-14_um_13.41.00.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/12/building-safer-android-and-google-play.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Building a safer Android and Google Play, together
</a></div><div>Google introduces new tools that help Android developers identify policy issues earlier and improve app safety and compliance on Google Play.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/12/start-building-for-glasses-new-devices.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Start building for glasses, new devices for Android XR and more
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>outlines Android XR’s growth with new device support and tools, encouraging developers to begin building for XR headsets and glasses with Developer Preview 3 and the emulator. 
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/12/build-for-ai-glasses-with-android-xr.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Build for AI Glasses with the Android XR SDK Developer Preview 3
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google unveils Jetpack XR tools, an AI Glasses emulator, and ARCore enhancements to help Android developers build augmented experiences for AI glasses.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/12/enhancing-android-security-stop-malware.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Enhancing Android security: Stop malware from snooping on your app data
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google adds a new flag in Android 16 that blocks malware using accessibility APIs from accessing sensitive app views.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Videos & Podcasts</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://www.youtube.com/watch?v=lDY5ch2Ixus" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/693dea/6d3c93bc1de7008dcb/square_Bildschirmfoto_2025-12-14_um_13.41.31.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=lDY5ch2Ixus" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How To Create BottomSheet Destination In Nav3
</a></div><div>Jov Mit shows how to create a BottomSheet destination in Navigation 3.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=hNzRWVr_Yvs" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Bottom Nav With Multiple Back Stacks In Navigation3
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner implements a bottom navigation bar in Jetpack Compose which supports multiple back stacks.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=xD61A8B_gdk" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Android interview — James Cullimore (jamescullimore.dev)
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>James Cullimore discusses freelancing, work–life balance, and Android’s future with KMP and Compose, plus his views on public speaking, simple architecture, and using AI and open source to stay current.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=dMaGQIHwMww" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Fix Critical Android App Performance Issues with Contextual AI Prompts
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Discover how AI-ready prompts give Copilot, Gemini, and Claude exactly what they need to suggest accurate fixes

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=8jZ0O5fZ5DU" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Nested Nav Graphs & Shared ViewModels With Navigation3
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Learn how you can achieve a nested navigation for features and scope a ViewModel to multiple screens of your app.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=vgE_sKiIgWI" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Why iOS Devs Struggle with KMP (and How to Fix It)
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>In this KotlinConf interview, explore why iOS teams often struggle with KMP, what makes native dependencies fundamentally different from the JVM world, and how linker errors and tooling gaps can slow teams down.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=I9Ws2Lxv0dw" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Navigating Navigation 3 — with Alex Vanyo & Don Turner
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Alex Vanyo and Don Turner from the Android team to explore Navigation 3 — what’s new, what’s changing, and how to keep your app’s navigation graph from becoming a spaghetti diagram worthy of a Michelin star.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=gQuUhIfjTyI" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Bring your own model - Android Developers Backstage
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Tor and Chet chat with Raluca Saucic and Eugene Yakavets about the new "Bring Your Own Model" feature in Android Studio which allows using other models than Gemini for agent mode, including models from Anthropic,  OpenAI, and more.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=GAv5-OAjle4" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Enhanced protections for the Accessibility API
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Rob Clifford shares how Android 16's improved Accessibility Service API offers a 1-line code solution to combat this abuse, ensuring your users' safety without compromising the value of essential accessibility tools.


</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/playlist?list=PLWz5rJ2EKKc8Q_O_Gdi7tm4brTXws8thC" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
The Android Show | XR Edition
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Learn about all things XR across glasses, headsets and everything in between. Hear how with Gemini by your side, you are able to have a more conversational, contextual and helpful experience.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Specials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.jetbrains.com/kotlin/2025/12/a-better-way-to-explore-kotlinx-benchmark-results-with-kotlin-notebooks/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
A Better Way to Explore kotlinx-benchmark Results with Kotlin Notebooks
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Filipp Zhinkin and Teodor Irkhin explain using Kotlin notebooks to interactively analyze and visualize kotlinx-benchmark results.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
]]></description>
    <pubDate>Sun, 14 Dec 2025 12:41:58 +0000</pubDate>
    <guid>https://androidweekly.net/issues/issue-705</guid>
  </item>
  <item>
    <title>Android Weekly Issue #704</title>
    <link>https://androidweekly.net/issues/issue-704/rss.xml</link>
    <description><![CDATA[<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Articles & Tutorials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://firebender.com/" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/69359a/e53c93bc594b015a53/square_firebender.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://firebender.com/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
🔥 Most powerful AI in Android Studio 👊
</a></div><div>Code 10x faster. Tell Firebender to create full screens, ship features, or fix bugs - and watch it do the work for you. It's been battle tested by the best android teams at companies like Tinder, Adobe, and Instacart.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/kotest-modern-testing-in-kotlin-test-styles-mocking-and-writing-tests-on-android-857a1f0beed6" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Kotest : Modern Testing in Kotlin: Test Styles, Mocking and Writing Tests
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Nimit Raja explains how Kotest plus MockK offers flexible test styles and readable Kotlin-first testing for Android projects.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/12/whats-new-in-jetpack-compose-december.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
What's new in the Jetpack Compose December '25 release
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Nick Butcher outlines the Compose Dec ’25 release with performance boosts, new state-management and Material APIs, expanded animation capabilities, and updated tooling support.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/12/learn-about-our-newest-jetpack.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Learn about our newest Jetpack Navigation library with the Nav3 Spotlight Week
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google promotes a Nav3 Spotlight Week to help developers adopt the stable Jetpack Navigation 3 through focused content and a live AMA.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/12/explore-ai-on-android-with-our-sample.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Explore AI on Android with the Sample Catalog App
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Thomas Ezan and Ivy Knight unveil the Android AI Sample Catalog as an open-source showcase to help Android developers experiment with AI APIs on real sample apps.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/google-developer-experts/google-checks-simplifying-privacy-compliance-74512f527dc0" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Google Checks: Simplifying Privacy Compliance
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Ivan Katanic describes how Google Checks streamlines privacy compliance by automatically identifying and guiding fixes for data-handling issues.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/google-developer-experts/edge-to-edge-is-no-longer-optional-android-16-migration-guide-66f82db639c0" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Edge-to-Edge Is No Longer Optional — Android 16 Migration Guide
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Qamar A. Safadi explains that Android 16 mandates edge-to-edge layout, so apps must migrate to official insets handling like enableEdgeToEdge() and Scaffold to avoid broken UI.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.sinasamaki.com/create-animated-stripes-in-jetpack-compose/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Create animated stripes in Jetpack Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>sinasamaki shows how to build animated stripe patterns in Compose using gradient color-stops with repeated tiling and animate the phase for continuous motion.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://joebirch.co/android/exploring-jetpack-compose-buttongroup/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Exploring Jetpack Compose: ButtonGroup
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Joe Birch examines the experimental Material 3 ButtonGroup for Compose offering animated, overflow-aware horizontal groups of buttons.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://jakewharton.com/defuse-the-compose-bom/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Let's defuse the Compose BOM
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Jake Wharton explains that Gradle’s metadata already aligns Compose dependencies, rendering the Compose BOM redundant for AndroidX users.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://zarah.dev/2025/12/02/lint-tests.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Lint Me: Test Sources
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Zarah Dominguez shows how to extend Lint rules to test code by including TEST_SOURCES in the rule’s scope and enabling checkTestSources.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.romainguy.dev/posts/2025/finger-shadows/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Finger Shadows in Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Romain Guy demonstrates finger-shadow rendering in Compose using RuntimeShader to cast realistic, soft shadows from touch input.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/avoid-turning-your-app-into-a-christmas-tree-of-libraries-cb9ea5ad79ba" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Avoid Turning Your App Into a Christmas Tree of Libraries
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Filipe Batista cautions that indiscriminate use of libraries can bloat and complicate Android apps.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Place a sponsored post</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://androidweekly.net/jobs/new" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/69359a/cf3c93bc594b015a4a/square_aw.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://androidweekly.net/jobs/new" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Advertise to more than 80k Android developers!
</a></div><div>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!

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Libraries & Code</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/jordond/MaterialKolor" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
MaterialKolor
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Generate a dynamic Material3 color sheme from a seed color 
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/composablehorizons/composables-cli" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
composables-cli
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Set up new Compose Multiplatform apps with a single command. 
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">News</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://android-developers.googleblog.com/2025/12/android-16-qpr2-is-released.html" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/6934b1/f33c93bc594b0135bc/square_Bildschirmfoto_2025-12-07_um_16.23.36.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/12/android-16-qpr2-is-released.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Android 16 QPR2 is Released
</a></div><div>Google introduces Android 16 QPR2 as a minor-SDK update packed with new UI, media, security, and developer-focused enhancements to help apps evolve faster.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/12/android-studio-otter-2-feature-drop-is.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Android Studio Otter 2 Feature Drop is stable!
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Android Studio Otter 2 is a stable release delivering AI-assisted coding with Gen-3 and Android Knowledge Base, synced IDE settings, and IntelliJ-powered performance enhancements.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Videos & Podcasts</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://www.youtube.com/watch?v=Z0iHRWu09J4" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/6934b8/673c93bc594b013686/square_Bildschirmfoto_2025-12-07_um_16.24.09.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=Z0iHRWu09J4" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Real-Time Stability Insights for Jetpack Compose
</a></div><div>This video examines and explains the Compose Stability Analyzer plugin for Android Studio.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=qB77aHfUos4" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
App Store Optimization 2025: My Exact Keyword Research Process
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Daniel Atitienei provides a detailed guide on App Store Optimization (ASO) for indie developers, focusing on keyword research strategies and app idea validation
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=kjRZz5xgzyU" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
3 things to know about Jetpack Navigation 3
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Explore Jetpack Navigation 3, a new library for managing navigation, now stable and ready for production!
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=6L6GfvlmKj8" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Navigation 3 API overview
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Learn Jetpack Navigation 3, Google's new library for building navigation in Android apps.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=kKI3WfufXfY" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
November 2025: Gemini 3, Crashlytics MCP, Data Connect Admin SDKs
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>This episode of Firebase Release Notes covers major new features for building with AI, including the integration of Gemini 3 and Gemini 3 Pro Image (Nano Banana Pro) into Firebase AI Logic!

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=G_e9XL5tI6U" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Navigation3 Basics (NavDisplay, Arguments, ViewModels)
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner implements a 2-screen list/detail navigation setup with the new Navigation 3 library.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=nWPYGH-1hcw" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
A better way to explore and solve programming puzzles: Kotlin Notebooks
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>This video demonstrates how to use Kotlin Notebooks for exploring and solving programming puzzles.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=GVCc6YjAEN8" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Now in Android with Koin Annotations
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Arnaud Giuliani demonstrates migrating the "Now in Android" application to Koin Annotations, showcasing features like module scanning, scope injection, JSR330 compatibility, and more.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=CjUFTsLRv04" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Introduction to Dependency Injection with Koin
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Arnaud Giuliani shows how to use Koin for Dependency Injection in your Android Jetpack Compose app — even if you're just getting started
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Specials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/google-developer-experts/google-antigravity-custom-mcp-server-integration-to-improve-vibe-coding-f92ddbc1c22d" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Google Antigravity: How to add custom MCP server to improve Vibe Coding
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Alessandro Avasta explains how a custom MCP server integration refines Google Antigravity’s AI-assisted coding experience.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/google-developer-experts/how-a-gde-can-amplify-their-impact-09bda0859ca5" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How GDEs can Amplify Their Impact
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Sherry Yuan describes how GDEs can expand their impact through community engagement, mentorship, and collaborative knowledge sharing.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
]]></description>
    <pubDate>Sun, 07 Dec 2025 15:24:56 +0000</pubDate>
    <guid>https://androidweekly.net/issues/issue-704</guid>
  </item>
  <item>
    <title>Android Weekly Issue #703</title>
    <link>https://androidweekly.net/issues/issue-703/rss.xml</link>
    <description><![CDATA[<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Articles & Tutorials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://firebender.com/" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/692c39/a13c93bc73ec016bd0/square_firebender.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://firebender.com/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
🔥 Most powerful AI in Android Studio 👊
</a></div><div>Code 10x faster. Tell Firebender to create full screens, ship features, or fix bugs - and watch it do the work for you. It's been battle tested by the best android teams at companies like Tinder, Adobe, and Instacart.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.revenuecat.com/blog/engineering/hilt-sdk-lifecycle/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Android SDK lifecycle management with Hilt dependency injection
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Jaewoong Eum shows how Hilt’s component scopes and cleanup hooks enable safe SDK lifecycle management and prevent resource leaks.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.doist.dev/orchestrating-ui-tests-with-maestro/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Orchestrating our UI test suite with Maestro
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Prateek Prasad shows that migrating from Espresso to Maestro dramatically improved test reliability, cost, and speed at Doist.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://jonnyzzz.com/blog/2025/07/25/ktor-proxy/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Reverse Proxy in Ktor
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Eugene Petrenko shows how to use Ktor as an HTTP proxy to intercept and manipulate requests and responses.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.jetbrains.com/ai/2025/11/building-ai-agents-in-kotlin-part-2-a-deeper-dive-into-tools/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Building AI Agents in Kotlin – Part 2: A Deeper Dive Into Tools
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Bruno Lannoo shows how to extend Koog agents with custom tools (like shell-command execution) to enable real execution and feedback.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/@kmpbits/koin-injection-on-ios-without-reified-crashes-a-clean-kmm-pattern-cfad00a931ec" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
🧩 Koin Injection on iOS Without Reified Crashes: A Clean KMM Pattern
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>KMP Bits demonstrates a KMM pattern where Kotlin exposes helper APIs for DI so Swift can get dependencies safely without using reified generics.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/pragmatic-modularization-the-case-for-wiring-modules-c936d3af3611" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Pragmatic Modularization: The Case for Wiring Modules
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Alex Krafts recommends a wiring module to decouple the app module from feature implementations and improve build performance.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/remotecompose-another-paradigm-for-server-driven-ui-in-jetpack-compose-92186619ba8f" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
RemoteCompose: Another Paradigm for Server-Driven UI in Jetpack Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Jaewoong Eum describes RemoteCompose as a way to serialize Compose UI into a binary document for server-driven, runtime rendering on Android.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/from-file-to-fetch-ed6dca1122c8" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
From File to Fetch: Mastering Lottie Animation Sources in Jetpack Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Katie Barnett shows how to integrate Lottie animations in Compose with flexible sources (file, remote fetch), including proper loading, retry and error handling.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/google-developer-experts/fine-tuning-gemma-with-lora-for-on-device-inference-android-ios-web-with-separate-lora-weights-f05d1db30d86" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Fine-Tuning Gemma with LoRA for On-Device Inference (Android, iOS, Web)
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Sasha Denisov demonstrates LoRA fine-tuning of Gemma for on-device use by updating only adapter weights and deploying via MediaPipe for mobile and web.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/google-developer-experts/yes-gemini-can-do-object-detection-7ffc5a25b896" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Yes, Gemini can do object detection
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Nitin Tiwari shows Gemini can produce bounding boxes and labels for objects in images, supporting zero-shot object detection.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://eevis.codes/blog/2025-11-25/does-ai-generate-accessible-android-apps/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Does AI Generate Accessible Android Apps?
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Eevis Panula finds AI-generated Android apps fraught with accessibility issues and concludes AI can’t yet replace human developers for accessible UI.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://carrion.dev/en/posts/kmp-ios-skie-integration/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Seamless KMP on iOS: Enhancing the Experience with SKIE
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Ignacio Carrión explains how SKIE provides Swift-native Kotlin Multiplatform APIs for sealed classes, suspend coroutines, and flows to improve iOS interop.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://commonsware.com/blog/2025/11/28/remotecompose-cute-crucial.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
RemoteCompose: Cute or Crucial?
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Mark Murphy recommends cautious experimentation with RemoteCompose, which serializes Compose UIs into binary documents for cross-process or cross-device playback.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Place a sponsored post</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://androidweekly.net/jobs/new" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/692c39/8c3c93bc73ec016bc8/square_aw.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://androidweekly.net/jobs/new" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Advertise to more than 80k Android developers!
</a></div><div>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!

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">News</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.jetbrains.com/amper/2025/11/amper-update-november-2025/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Amper Update, November 2025 – Extensibility Preview
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>JetBrains outlines November Amper updates focused on faster builds, better KMP support and improved Gradle interoperability.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Videos & Podcasts</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=0KUulfGG2eg" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Explore how to automate testing across alpha, beta, and RC tracks
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>How do you automatically test alpha/beta/RC versions without losing your mind?
Jake Wharton joins the Coding with the Italians team live.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=ORg3ZYQNuJg" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
My Top 3 Koin Dependency Injection Hacks
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner shares 3 helpful tips you can use to improve your Koin setup and app performance.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=Ap-cVIM5ORY" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How to Prevent Race Conditions in Kotlin Coroutines
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Dave Leeds shows several tools to choose from to prevent race conditions, including atomics, confinement, mutexes, and more.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=tYttz59gKMY" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Responsive Layouts with Navigation 3 out of the box 📦
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Learn more about responsive layouts with Navigation 3 out of the box.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=9NdhsnZPM1k" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Suspend Functions vs. Flows In Kotlin & Android
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner clarifies the confusion between suspend functions and Flows once and for all.


</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/playlist?list=PLlFc5cFwUnmx9-VIcfxqhjHrwD3Lab4o4" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Advent of Code 2025 in Kotlin
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Day-by-day playlist of Advent of Code 2025 solutions in Kotlin
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Events</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://pretix.eu/jetbrains/kotlinconf2026/c/lvoF83iVB/" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/692738/dc3c93bc73ec00a75b/square_Bildschirmfoto_2025-11-26_um_18.28.46.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://pretix.eu/jetbrains/kotlinconf2026/c/lvoF83iVB/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
KotlinConf is heading to Munich!
</a></div><div>The world's largest Kotlin event is coming to Munich in 2026, gathering 2,500+ developers from all platforms. The Call for Papers (closing next week!) and volunteer applications are now open.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table>]]></description>
    <pubDate>Sun, 30 Nov 2025 12:34:04 +0000</pubDate>
    <guid>https://androidweekly.net/issues/issue-703</guid>
  </item>
  <item>
    <title>Android Weekly Issue #702</title>
    <link>https://androidweekly.net/issues/issue-702/rss.xml</link>
    <description><![CDATA[<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Articles & Tutorials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://firebender.com/" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/69231f/473c93bc0989017799/square_firebender.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://firebender.com/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
🔥 Most powerful AI in Android Studio 👊 
</a></div><div>Code 10x faster. Tell Firebender to create full screens, ship features, or fix bugs - and watch it do the work for you. It's been battle tested by the best android teams at companies like Tinder, Adobe, and Instacart.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://jakewharton.com/you-should-use-androidx-betas/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
You should use AndroidX betas 
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Jake Wharton argues that AndroidX beta and RC releases are equivalent to stable releases since their APIs are locked and production-ready.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.kotzilla.io/koin-ide-plugin-1-5-1-annotations-2-2-jsr-330-android-kotlin" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Koin IDE Plugin 1.5.1: Koin Annotations 2.2 Support with JSR-330 Compatibility 
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Artem Krivolapov shows how Koin IDE Plugin 1.5.1 adds JSR-330 and Android-scope support for Koin Annotations 2.2.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://androidweekly.net/jobs/new" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/69231f/5c3c93bc09890177a4/square_aw.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://androidweekly.net/jobs/new" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Advertise to more than 80k Android developers!
</a></div><div>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!

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/port-your-android-app-to-meta-quest-a-step-by-step-guide-a3a8b84cc2ce" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Port Your Android App to Meta Quest: A Step-by-Step Guide
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Sriyank Siddhartha guides Android developers through porting their apps for Meta Quest by covering UI adaptation, permission handling, and platform-specific polish.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/navigation-3-the-future-of-android-navigation-f07f4c5f8444" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Navigation 3: The Future of Android Navigation
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Akshay Nandwana shows how Navigation 3 delivers a Compose-first, type-safe navigation paradigm for Android apps.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/the-real-difference-between-withcontext-dispatchers-io-and-launch-dispatchers-io-b70ec00a33f2" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
The Real Difference Between withContext and launch
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Anatolii Frolov clarifies that withContext is synchronous within a suspend function and launch is asynchronous fire-and-forget on Dispatchers.IO.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/11/fully-optimized-wrapping-up-performance.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Fully Optimized: Wrapping up Performance Spotlight Week
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Ben Weiss and Sara Hamilton recap essential Android app performance optimisations, from R8 and profiling to measurement and debugging.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/11/leveling-guide-for-your-performance.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Leveling Guide for your Performance Journey
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Alice Yuan maps out a five-stage performance journey for Android teams—from basic field monitoring to full custom performance tracking.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/11/jetpack-navigation-3-is-stable.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Jetpack Navigation 3 is stable
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google marks Navigation 3 v1.0 as stable, delivering a Compose-first back-stack and adaptive layout system.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/10/stronger-threat-detection-simpler.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Protect your growth with the Play Integrity API
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Dom Elliott & Eric Lynch show how the Play Integrity API makes it easier to detect threats and recover user trust with integrated remediation.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/11/deeper-performance-considerations.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Deeper Performance Considerations
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Ben Weiss, Breana Tate and Jossi Wolf show how profile-guided optimizations and Compose’s latest features deliver meaningful performance wins in Android apps.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/11/how-uber-is-reducing-manual-logins-by-4.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How Uber is reducing manual logins with the Restore Credentials API
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Niharika Arora and Thomás Oliveira Horta show how Uber’s integration of Restore Credentials cut millions of manual logins by enabling seamless new-device sign-in.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/11/configure-and-troubleshoot-r8-keep-rules.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Configure and troubleshoot R8 Keep Rules
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Ajesh R Pai and Ben Weiss present best practices for writing and debugging R8 Keep Rules to ensure safe and efficient code shrinking.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/11/gemini-3-is-now-available-for-ai.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Gemini 3 is now available for AI assistance in Android Studio
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Tor Norbye reveals that Gemini 3 Pro is now built into Android Studio Otter, enabling advanced AI agent workflows for Android developers.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/11/how-reddit-used-r8-optimizer-for-high.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How Reddit used the R8 optimizer for high impact performance improvements
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Ben Weiss discusses how Reddit’s Android app delivered major performance gains—faster startup, fewer ANRs, smoother UI, and smaller size—by enabling full-mode R8.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/11/use-r8-to-shrink-optimize-and-fast.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Use R8 to shrink, optimize, and fast-track your app
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Ben Weiss details how enabling R8 full mode in AGP 9 unlocks major performance gains for Android apps.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/google-developer-experts/exploring-the-fundamentals-of-deep-learning-a-hands-on-feedforward-and-backpropagation-exercise-f1c4dd9b56f5" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
A Hands-On Feedforward and Backpropagation Exercise
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Juan Guillermo Gómez Torres provides a step-by-step manual demonstration of feedforward and backpropagation to demystify how neural networks learn.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/google-developer-experts/develop-an-on-device-rag-system-powered-by-gemma-models-f7cdb7bca221" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Develop an on-device RAG system powered by Gemma models
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Georgios Soloupis shows how to implement an on-device RAG pipeline using Gemma embeddings and Gemma 3 generation entirely on mobile with no server dependency.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://johnoreilly.dev/posts/navigation3-cmp/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Using Navigation 3 with Compose Multiplatform
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>John O’Reilly shows how to use Navigation 3 in a Compose Multiplatform project for full back-stack control and adaptive layouts.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">News</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://jb.gg/jvi6lr" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Register for the JetBrains KMPLevelUp career webinar
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Registration for our KMPLevelUp career webinar is now open! Get your questions ready for legends like Jake Wharton, Zac Sweers, and other Android experts. 
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Videos & Podcasts</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://www.youtube.com/watch?v=TGS9FYeeZ5Q" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/69226c/d93c93bc09890159db/square_Bildschirmfoto_2025-11-23_um_15.57.05.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=TGS9FYeeZ5Q" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
TOP 3 Best App Niches in 2025
</a></div><div>Daniel Atitienei takes a look at 3 app niches
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=RMnZuoozZ5w" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
App Performance #AskAndroid
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>The #AskAndroid app performance live Q&A.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=QqO2jZ-NZko" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Boost Android app performance with the R8 optimizer
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Learn why you should enable the R8 optimizer in your app, what it does to improve your Android app's performance, and how to enable the R8 optimizer.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=EwYT8dIcqkE" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Data Connect, Kotlin & SQL: A New Firebase Stack
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>On this Firebase After Hours, dive into Firebase Data Connect, with a special focus on what it means for you: the new type-safe Kotlin SDK.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=A0I6pNSM14o" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How to debug and troubleshoot R8 optimizer
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Learn how to debug and troubleshoot R8, best practices on diagnosing issues, and how to fix them.


</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=v97B-kQU3-4" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How To Work With Chips In Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Jov Mit shows how to work with Chips in Compose.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=RgXib0TrdoI" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Floating Toolbars In Material3 Expressive
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner showcases the different types of floating toolbars that have been added to the M3 expressive update.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=xMylnxek5a4" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
App performance improvements
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Join Ben and Alice for a dynamic Google I/O session on low-effort, high-impact app optimization.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=j8SZsutnl38" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Navigation 3 library is now STABLE! 🎉
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>A look at the Navigation 3 library, which is now stable.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
]]></description>
    <pubDate>Sun, 23 Nov 2025 14:57:31 +0000</pubDate>
    <guid>https://androidweekly.net/issues/issue-702</guid>
  </item>
  <item>
    <title>Android Weekly Issue #701</title>
    <link>https://androidweekly.net/issues/issue-701/rss.xml</link>
    <description><![CDATA[<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Articles & Tutorials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://firebender.com/" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/6919ab/0a3c93bc7879017766/square_firebender.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://firebender.com/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
🔥 Most powerful AI in Android Studio 👊 
</a></div><div>Code 10x faster. Tell Firebender to create full screens, ship features, or fix bugs - and watch it do the work for you. It's been battle tested by the best android teams at companies like Tinder, Adobe, and Instacart.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://victorbrandalise.com/improving-your-deep-links-with-dynamic-app-links/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Improving your deep links with Dynamic App Links 
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Victor Brandalise outlines how Dynamic App Links improve deep-linking in Android by providing seamless in-app navigation, web fallback and analytics.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.insert-koin.io/migrating-now-in-android-to-koin-annotations-2-3-67d252dbb97d" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Migrating Now in Android to Koin Annotations 2.3 
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Arnaud Giuliani explains how Now in Android migrated to Koin Annotations 2.3 using JSR-330 support, module auto-discovery and a Dagger bridge to minimise disruption.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://hubs.la/Q03R0WM80" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/6919aa/ea3c93bc7879017759/square_Android-Weekly_GS-logo_85x85.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://hubs.la/Q03R0WM80" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Achieve Speed & Security in Mobile App Development
</a></div><div>Register now to join a live discussion between Carlos Rivera, Senior Analyst at Info-Tech Research Group, and Ryan Lloyd, CPO at Guardsquare, on how to bring automated MAST and multi-layered protection together in your CI/CD pipeline to achieve a well-secured app without compromising performance or delivery speed.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/@jintin/mockk-under-the-cover-93b3ee5bcae4" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
MockK: Under the cover
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Jintin reveals how MockK’s API design—using default values, inline reified types and Kotlin DSLs—makes the library feel like a native part of the Kotlin language.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/@berestinsky/recover-kotlin-coroutine-traces-with-decoroutinator-2ec8272a91f9" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Recover Kotlin coroutine traces with Decoroutinator
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Reformator introduces Decoroutinator for restoring accurate coroutine call stacks by generating auxiliary frames and continuing suspended continuations to reveal the true trace.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://dev.to/charlietap/interfacing-with-wasm-from-kotlin-2k2c" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Interfacing with Wasm from Kotlin
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>CharlieTap shows how to call WebAssembly modules from Kotlin using Chasm’s interface-generation and runtime across JVM/JS/Native.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/easier-crash-debugging-in-android-with-a-custom-in-app-dialog-a50a4dbcc9f5" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Easier Crash Debugging in Android with a Custom In-App Dialog
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Alex Krafts offers a simple in-app crash-dialog tool to surface stack traces and developer context without external monitoring.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.jetbrains.com/ai/2025/11/building-ai-agents-in-kotlin-part-1-a-minimal-coding-agent/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Building AI Agents in Kotlin – Part 1: A Minimal Coding Agent
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Fatimazahra El Akkary guides building a Kotlin-based agent that uses Koog to give an LLM directory, file-read and edit tools.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.jetbrains.com/kotlin/2025/11/google-summer-of-code-2025/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Google Summer of Code 2025: What Our Contributors Built
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Ksenia Shneyveys takes a closer look at this year’s Google Summer of Code projects related to Kotlin.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/understanding-flatmap-vs-flatmaplatest-a-deep-dive-061994b7ffc4" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Understanding flatMap vs flatMapLatest: A Deep Dive
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Akshay Nandwana shows that flatMap processes multiple inner streams in parallel whereas flatMapLatest cancels earlier streams upon new emissions.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/legacy-code-evolving-and-testing-what-you-thought-was-impossible-89939d9e2e7e" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Legacy Code: Evolving and testing what you thought was impossible
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Gabriel Brasileiro shows how to methodically bring testability and evolution to legacy Android code through characterization tests and incremental modularization.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/deep-dive-into-jetpack-compose-text-views-the-secret-life-of-composable-dea4b12bd725" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Deep Dive into Jetpack Compose Text Views : The Secret Life of Composable
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Richa Sharma reveals how Compose’s Text internals use bit-mask flags, slot tables and direct drawing for performance optimisation.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/why-your-viewmodel-is-technically-unstable-and-why-compose-doesnt-mind-6b837ca4ce53" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Why Your ViewModel Is Technically Unstable — and Why Compose Doesn’t Mind
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Yunho Lee clarifies that while ViewModels are technically unstable in Compose’s stability model, Compose’s skipping logic remains effective without requiring developers to mark them stable.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/retrofit-3-0-0-detailed-migration-guide-0d2c043d43e3" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Retrofit 3.0.0: Detailed Migration Guide
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Vikas Soni guides upgrading to Retrofit 3.0.0 by switching to Kotlin suspend functions, removing call adapters and simplifying converters.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/11/introducing-camerax-15-powerful-video.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Introducing CameraX 1.5: Powerful Video Recording and Pro-level Image Capture
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Scott Nien shows how CameraX 1.5 enables pro-grade video and image capture with high-frame-rate, Feature Group combinations and RAW support.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/compose-stability-analyzer-real-time-stability-insights-for-jetpack-compose-1399924a0a64" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Compose Stability Analyzer: Real-Time Stability Insights for Jetpack Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Jaewoong Eum presents a live-analysis tool for Jetpack Compose composables to surface unstable parameters and recomposition issues directly in the IDE.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Place a sponsored post</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://androidweekly.net/jobs/new" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/6919ab/c73c93bc787901778b/square_aw.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://androidweekly.net/jobs/new" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Advertise to more than 80k Android developers!
</a></div><div>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!

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Libraries & Code</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/Anamorphosee/stacktrace-decoroutinator" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
stacktrace-decoroutinator
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Small lib for recovering stack trace in exceptions thrown in Kotlin coroutines 
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">News</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://composables.com/blog/compose-unstyled-1.47" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Compose Unstyled v1.47: Tooltips, Stack and responsive goodies
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Alex Styl adds tooltip, stack layout, window-size API and stateful TextField in Compose Unstyled v1.47.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/11/raising-bar-on-battery-performance.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Raising the bar on battery performance: excessive partial wake locks metric
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google reveals that Android Vitals’ excessive partial wake-locks metric is now available and apps crossing the threshold risk reduced visibility and user warnings from March 2026.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/11/android-developer-verification-early.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Android developer verification: Early access starts now
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google outlines the launch of early access for Android’s developer verification program including identity verification and app registration, alongside plans for a lighter hobbyist track and advanced user sideloading option.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Videos & Podcasts</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://www.youtube.com/watch?v=dW1HP15_YUM" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/6918f0/853c93bc78790157f2/square_Bildschirmfoto_2025-11-16_um_11.48.05.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=dW1HP15_YUM" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Firebase Extension for Gemini CLI
</a></div><div>The Firebase Extension for Gemini CLI brings AI capabilities directly into your development environment!
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=1H-LlH4G8U4" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Android Studio updates, Android 16 beta feature, and more!
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Ash covers the latest releases from Android 16 QPR2 to Android Studio Narwhal. Discover The Android Show, Androidify, the Wear OS Spotlight Week, and more!


</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=jEATR5sF5Lo" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Android developer verification walkthrough
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Discover the new Android developer verification, a foundational step toward elevating Android security by deterring bad actors and making installing apps safer for everyone. 
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=M_Mq3avashE" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Navigation3 Setup, Multi Pane Support, Subgraphs & DeepLinks
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Jov Mit digs into Navigation3 detup, multi-pane support, subgraphs & deep links.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=hf_iN-eoC3w" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Building AI Agents With Koog
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Sebastian and Márton talk to Vadim Briliantov, the Technical Lead for Koog: an agentic framework built by JetBrains.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=NoUs4a1jZTc" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How to Attract Users to Your App (Even Without Ads)
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Daniel Atitienei considers that attracting users to download your app is easy, but to make them loyal is even harder.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=NYIMiClGXA4" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
All Types of Sliders In Material3 Expressive Explained
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner covers all types of sliders you can use to select a value in a given range using Jetpack Compose. This covers horizontal sliders, range sliders as well as vertical ones.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
]]></description>
    <pubDate>Sun, 16 Nov 2025 10:49:15 +0000</pubDate>
    <guid>https://androidweekly.net/issues/issue-701</guid>
  </item>
  <item>
    <title>Android Weekly Issue #700 🎉</title>
    <link>https://androidweekly.net/issues/issue-700/rss.xml</link>
    <description><![CDATA[<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Articles & Tutorials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://sweep.dev/?utm_source=androidweekly" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/69108c/d63c93bc769c013aba/square_sweep-square.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://sweep.dev/?utm_source=androidweekly" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Sweep is the best autocomplete for Android Studio 
</a></div><div>Sweep is like Cursor Tab for Android Studio. Sweep Tab uses your recent edits and Kotlin types to suggest context-aware code changes. Sweep is trusted by engineers at companies like Ramp and Amplitude.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://herrbert74.github.io/posts/you-are-using-entry-points-wrong/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
You are using Entry Points wrong 
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Zsolt Bertalan explains proper and limited use of Dagger Hilt Entry Points to avoid performance issues and misuse in modern Android projects.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.sinasamaki.com/creating-a-crt-screen-effect-in-jetpack-compose/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Creating a CRT Screen Effect in Jetpack Compose 
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>sinasamaki demonstrates using a graphics layer, gradients, and blur to create a nostalgic visual effect.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://firebender.com/" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/69108d/053c93bc769c013acb/square_firebender.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://firebender.com/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
🔥 Most powerful AI in Android Studio 👊
</a></div><div>Code 10x faster. Tell Firebender to create full screens, ship features, or fix bugs - and watch it do the work for you. It's been battle tested by the best android teams at companies like Tinder, Adobe, and Instacart.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/@konstantinzolotov/gpu-accelerated-effects-glitch-at-scale-e59216afd1e8" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
GPU-Accelerated Effects: Glitch at Scale
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Konstantin Zolotov demonstrates recreating a Compose glitch effect with AGSL shaders to achieve scalable GPU-accelerated visual performance.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.revenuecat.com/blog/engineering/kmp-wrapper-pattern/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Understanding the native SDK wrapper pattern in Kotlin Multiplatform
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Jaewoong Eum explores how RevenueCat’s delegation pattern wraps native Android and iOS SDKs, enables effortless bidirectional conversion, and minimizes wrapper overhead.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/understanding-gap-buffers-in-jetpack-compose-the-60-year-old-algorithm-powering-modern-android-ui-a07ca2013e64" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Understanding Gap Buffers in Jetpack Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Akshay Nandwana reveals that Compose’s slot table uses a gap-buffer to optimise UI composition and updates.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/inside-kotlin-coroutines-state-machines-continuations-and-structured-concurrency-b8d3d4e48e62" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Inside Kotlin Coroutines: State Machines, Continuations, and Structured Concurrency
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Ioannis Anifantakis dives deep into the Finite-State-Machine (FSM) transformation that powers Kotlin Coroutines, from Compiler Mechanics to Structured Concurrency.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://carrion.dev/en/posts/kotlin-coroutines-dispatchers-jobs/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Mastering Kotlin Coroutines: Dispatchers, Jobs, and Structured Concurrency
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Ignacio Carrión explains proper use of Dispatchers, Jobs, and structured concurrency to manage coroutine context, lifecycle, and error isolation in Kotlin.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Place a sponsored post</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://androidweekly.net/jobs/new" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/69108d/743c93bc769c013af4/square_aw.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://androidweekly.net/jobs/new" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Advertise to more than 80k Android developers!
</a></div><div>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!

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Libraries & Code</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://gabrielbrasileiro.dev/combot" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/690ff2/c03c93bc769c0121e8/square_Bildschirmfoto_2025-11-09_um_16.37.48.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://gabrielbrasileiro.dev/combot" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Combot
</a></div><div>Combot is a Compose testing library designed to simplify testing and automation of UI components in Jetpack Compose. It allows developers to easily write tests for Compose components.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/Coding-Meet/DevAnalyzer" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
DevAnalyzer
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>DevAnalyzer helps developers analyze, understand, and optimize their entire development setup — from project structure to SDK and IDE storage — all in one unified tool. 
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/QmDeve/QmBlurView" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
QmBlurView
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>QmBlurView is an Android UI component library that integrates a variety of blur effects, including BlurView, BlurButtonView, ProgressiveBlurView, BlurTitleBarView, BlurSwitchButtonView, and BlurFloatingButtonView 
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/skydoves/compose-stability-analyzer" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
compose-stability-analyzer
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Real-time analysis of Jetpack Compose composable functions' stability directly within Android Studio or IntelliJ. 
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">News</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/11/health-connect-jetpack-v110-is-now.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Android Developers Blog: Health Connect Jetpack v1.1.0 is now available!
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google releases Health Connect Jetpack 1.1.0 stable with expanded data types and device support for more accurate health app integration.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://surveys.jetbrains.com/s3/05ddc3ebe003" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Your feedback shapes the future of Ktor 🚀 
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Calling all Ktor users! JetBrains would love your input! Take the annual survey and share your thoughts, challenges, and ideas to help them make the framework even better. 

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Videos & Podcasts</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=Ng-n8GDIic0" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Do This NOW or You Won't Be Able to Update Your App
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner explains how you can make your app support the new 16Kb page size requirement.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=-t0ZvgkWDk4" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Firebase Phone Number Verification, AI monitoring, & more!
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Learn about exciting new features in Firebase AI Logic, including broader Gemini Developer API support and advanced AI Monitoring.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=lag_takit_k" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
All Material3 Expressive Loading Indicators Explained
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner shows you all the different loading and progress indicators you can use with the new Material3 Expressive update.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Specials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.jetbrains.com/kotlin/2025/11/growing-kotlin-adoption-in-your-company-2/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Growing Kotlin Adoption in Your Company
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Urs Peter advises on expanding Kotlin adoption within Java-dominated teams by emphasizing Kotlin’s safety and readability, fostering developer support networks, and building internal Kotlin communities.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
]]></description>
    <pubDate>Sun, 09 Nov 2025 15:38:36 +0000</pubDate>
    <guid>https://androidweekly.net/issues/issue-700</guid>
  </item>
  <item>
    <title>Android Weekly Issue #699</title>
    <link>https://androidweekly.net/issues/issue-699/rss.xml</link>
    <description><![CDATA[<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Articles & Tutorials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://firebender.com/" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/69071d/f63c93bc6d65011c07/square_firebender.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://firebender.com/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
🔥 Most powerful AI in Android Studio 👊 
</a></div><div>Code 10x faster. Tell Firebender to create full screens, ship features, or fix bugs - and watch it do the work for you. It's been battle tested by the best android teams at companies like Tinder, Adobe, and Instacart.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.mmckenna.me/microdosing-ai-for-mobile-dev" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Microdosing AI for Mobile Dev 
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Matt McKenna shows how modest AI usage can incrementally boost mobile development workflows.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/mateedevs/liquid-glass-components-in-compose-multiplatform-71b7a9ffc56d" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Liquid Glass Components in Compose Multiplatform 
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Julia Jakubcova demonstrates implementing native iOS blur effects in Compose Multiplatform using SwiftUI as the host for correct visual layering.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://www.runway.team/state-of-mobile-release-management-report?utm_source=androidweekly&utm_medium=newsletter&utm_campaign=oct-12-25" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/69071e/463c93bc6d65011c1a/square_runway_team_logo.jpeg">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.runway.team/state-of-mobile-release-management-report?utm_source=androidweekly&utm_medium=newsletter&utm_campaign=oct-12-25" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
2025 State of Mobile Release Management
</a></div><div>Runway's new report on mobile releases shows that automation alone isn't solving core issues: teams that invest significantly in automation still lose 6–10 hours per release to manual busywork and coordination overhead – about the same as teams with less automation in place! Read the full report.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.jetbrains.com/research/2025/10/litmuskt-concurrency-testing/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
A Novel Concurrency Testing Tool that Improved the Kotlin Compiler
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>JetBrains introduces LitmusKt, a tool enhancing Kotlin compiler reliability through systematic concurrency testing.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/kotlin-sealed-classes-and-interface-9a90f80d4983" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Kotlin : Sealed Classes and Interface
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Richa Sharma explains Kotlin sealed classes and interfaces, highlighting differences in constructors and subclassing patterns.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/10/high-speed-capture-and-slow-motion.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
High-Speed Capture and Slow-Motion Video with CameraX 1.5
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Leo Huang presents CameraX 1.5’s unified high-speed APIs for seamless slow-motion and high-frame-rate video capture.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/10/introducing-cahier-new-android-github.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Introducing Cahier: A new Android GitHub sample for large screen productivity
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google showcases Cahier, a large-screen-optimized sample app highlighting Android’s adaptive UI and Ink API capabilities.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/10/ml-kit-genai-prompt-api-alpha-release.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
ML Kit’s Prompt API: Unlock Custom On-Device Gemini Nano Experiences
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google introduces ML Kit’s Prompt API to power private, customizable on-device Gemini Nano AI experiences.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://eevis.codes/blog/2025-10-31/compose-ui-tests-for-larger-font-sizes-scrolling-and-text-truncation/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Compose UI Tests for Larger Font Sizes: Scrolling and Text Truncation
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Eevis Panula demonstrates writing Compose UI tests to ensure accessibility for larger font sizes.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://charlesmuchene.com/swift-android-gradle-plugin" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Swift Android Gradle Plugin: Build Swift Libraries for Android
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Charles Muchene explains embedding Swift in Android using a dedicated Gradle plugin for seamless cross-compilation and integration.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://curiouslab.dev/0002-value-classes-are-new-data-casses.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Value classes are new data classes
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Michail Zarečenskij details Kotlin value classes’ safer immutability and JVM performance benefits inspired by Project Valhalla.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://marcellogalhardo.dev/posts/navigation-event-info/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
NavigationEvent Info
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Marcello Galhardo explains NavigationEvent’s cross-platform gesture handling and its debugging-focused NavigationEventInfo API.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://joebirch.co/android/8-steps-to-success-with-gemini-in-android-studio/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
8 steps to success with Gemini in Android Studio
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Joe Birch explains optimizing Gemini in Android Studio through configuration and context strategies to enhance AI development efficiency.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Place a sponsored post</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://androidweekly.net/jobs/new" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/69071e/0b3c93bc6d65011c10/square_aw.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://androidweekly.net/jobs/new" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Advertise to more than 80k Android developers!
</a></div><div>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!

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Libraries & Code</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://github.com/dononcharles/NiceToast" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/69068c/7d3c93bc6d65010635/square_Bildschirmfoto_2025-11-02_um_10.05.49.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/dononcharles/NiceToast" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
NiceToast
</a></div><div>NiceToast is a beautifully designed and highly customizable toast library for Android. Elevate your app's user experience by replacing standard toasts with eye-catching, animated, and informative notifications that look great in both light and dark themes. 
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/Jetbrains-Research/litmuskt" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
litmuskt
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Litmus testing tool for Kotlin/Native
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/charlesmuchene/swift-android-gradle-plugin" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
swift-android-gradle-plugin
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Android Gradle Plugin for Swift SDK for Android 
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">News</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/10/material-3-adaptive-120-is-stable.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Material 3 Adaptive 1.2.0 is stable
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Rob Orgiu details Material 3 Adaptive 1.2.0’s new layout strategies and expanded large-screen support.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/10/new-tools-and-programs-to-accelerate.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
New tools and programs to accelerate your success on Google Play
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google introduced a new bundle of tools and programs designed to enhance your productivity and accelerate your growth on Play.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/10/new-agentic-experiences-for-android.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
New agentic experiences for Android Studio, new AI APIs, and more!
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>From new agentic experiences for Gemini in Android Studio to a brand new on-device AI API unpack many new updates towards delivering the highest return on investment in building for the Android platform. 
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Videos & Podcasts</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://www.youtube.com/watch?v=fMKNaQ6WTOs" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/6906ad/ed3c93bc6d65010d53/square_Bildschirmfoto_2025-11-02_um_10.06.17.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=fMKNaQ6WTOs" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How To Create & Use SearchBar | Jetpack Compose
</a></div><div>Jov Mit shows how to use the SearchBar in your Composables.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=B18Znty8pdc" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
FAB Menu In Material3 Expressive
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner examines the new FloatingActionButtonMenu composable and how you can use it to create an animated toggleable menu when pressing a floating action button.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=Lw_3uFJh97k" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
I React to Google's Guide to App Architecture (And Not All of It Is Good...)
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner goes over Google's guide to app architecture and discusses advantages and disadvantages, along with what they really mean with each point.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=WUxdpFas6HM" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Pocket FM cuts 50% in development time with Gemini in Android Studio
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Learn how Pocket FM leveraged Gemini in Android Studio to optimize their workflow and reduce their development time by over 50% on new features,
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=PoqJh_60Wrw" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
ML Kit's GenAI Prompt API
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Explore how Kakao Mobility uses the ML Kit GenAI Prompt API to build powerful, fast, and private on-device intelligence.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=PIsElP6DbFI" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
redBus improved reviews by 57% with Gemini Flash and Firebase AI Logic
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>See how redBus revolutionized their user reviews! They used Gemini Flash via Firebase AI Logic to make giving feedback easier, more inclusive, and reliable.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=LlQW5j0JcCM" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Google Play Console: Streamlining workflows, from testing to growth
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Learn how a reimagined, goal-oriented Google Play dashboard puts actionable metrics front and center.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=5QuigdMfS3I" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Google Play PolicyBytes - October 2025 policy updates
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Paul Hua, from Regional Operations North America, Trust and Safety, Google Play, shares important updates from our October 2025 Google Play policy announcements
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://soundcloud.com/kotlin-khronicles/episode-6-sinan-kozak-performance-matters-on-android-optimization" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Performance Matters on Android Optimization
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Sinan Kozak shares Kotlin- and Compose-based approaches to effective Android performance optimization.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
]]></description>
    <pubDate>Sun, 02 Nov 2025 09:06:47 +0000</pubDate>
    <guid>https://androidweekly.net/issues/issue-699</guid>
  </item>
  <item>
    <title>Android Weekly Issue #698</title>
    <link>https://androidweekly.net/issues/issue-698/rss.xml</link>
    <description><![CDATA[<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Articles & Tutorials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://sweep.dev/?utm_source=androidweekly" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/68fdf1/ae3c93bc440f0164d7/square_sweep-square.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://sweep.dev/?utm_source=androidweekly" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Sweep is the best autocomplete for Android Studio 
</a></div><div>Sweep is like Cursor Tab for Android Studio. Sweep Tab uses your recent edits and Kotlin types to suggest context-aware code changes. Sweep is trusted by engineers at companies like Ramp and Amplitude.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://charlesmuchene.com/jetliner-xr" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Jetliner XR: Spatial development on Android 
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Charles Muchene shows how to prototype spatial Android XR apps using a 3D jetliner demo.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.revenuecat.com/blog/engineering/google-proration/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Understanding Google Play subscription proration: a developer's guide 
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Jaewoong Eum outlines Google Play’s five proration modes and their practical effects on subscription billing and implementation.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://firebender.com/" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/68fdf1/fc3c93bc440f0164ea/square_firebender.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://firebender.com/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
🔥 Most powerful AI in Android Studio 👊
</a></div><div>Code 10x faster. Tell Firebender to create full screens, ship features, or fix bugs - and watch it do the work for you. It's been battle tested by the best android teams at companies like Tinder, Adobe, and Instacart.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://engineering.block.xyz/blog/the-leakcanary-method" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
The LeakCanary Method
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Pierre-Yves Ricau explains a systematic approach to identifying the single faulty reference in Android memory leaks using LeakCanary.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/how-to-set-custom-duration-for-material3-snackbar-in-jetpack-compose-497fbc491f8b" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How to Set Custom Duration for Material3 Snackbar in Jetpack Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Vamsi Vaddavalli helps you master Kotlin’s select expression for precise Snackbar timing beyond Short and Long durations.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/mastering-assisted-injection-in-hilt-a-complete-guide-d95037dd38b1" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Mastering Assisted Injection in Hilt: A Complete Guide
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Vamsi Vaddavalli demonstrates assisted injection for when your injected ViewModel needs runtime data.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/@kmpbits/kmp-notifications-handling-native-notifications-in-shared-kotlin-f06fcb780d7a" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
🔔 KMP Notifications: Handling Native Notifications in Shared Kotlin
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>KMP Bits shows how to manage Android and iOS notifications fully in shared Kotlin with minimal native code.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/goodbye-androidview-camerax-goes-full-compose-4d21ca234c4e" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Compose-Native CameraX Is Now Stable: End-to-End Guide for Jetpack Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Ioannis Anifantakis examines the new CameraX to build camera UIs with CameraXViewfinder and camera-compose.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/eliminating-jank-in-composables-3-practical-techniques-for-smooth-jetpack-compose-ui-6c66d4f7c4f4" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
3 Practical Techniques for Smooth Jetpack Compose UI
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Yunho Lee shows how to eliminate Compose jank by moving heavy work off the main thread, favoring ViewModel coroutines or produceState and LaunchedEffect.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/recent-junit-updates-for-kotlin-6e1161aaea7f" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Kotlin JUnit: useful updates in JUnit 6 and late JUnit 5 for Kotlin Unit Testing
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Elena van Engelen - Maslova highlights JUnit 6’s stronger Kotlin support, especially around coroutines and nullability.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/10/dynamic-app-links-elevating-your.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Dynamic App Links: Elevating your Android deep linking
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Ran Mor presents Dynamic App Links for Android 15, adding configurable deep linking with exclusions, parameters, and dynamic updates.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/10/bringing-androidify-to-xr-with-jetpack.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Bringing Androidify to XR with the Jetpack XR SDK
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Dereck Bridie explains how Androidify was reimagined for Android XR using Jetpack XR SDK and adaptive spatial design.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/10/getting-started-with-unity-and-android.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Getting started with Unity and Android XR
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Luke Hopkins explains how to set up Unity 6 for Android XR using Vulkan and official OpenXR packages.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/10/optimizing-performance-for-android-xr.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Optimizing Performance for Android XR with Unity
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Luke Hopkins details Unity techniques like foveated rendering and Vulkan subsampling to sustain high performance in Android XR apps.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/firebase-developers/dynamic-configuration-in-java-using-server-side-firebase-remote-config-9d30a3c2e1a1" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Dynamic Configuration in Java with Server-Side Firebase Remote Config
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Athira M demonstrates using Firebase Remote Config to dynamically manage Java server logic without redeployment.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/10/5-things-you-need-to-know-about.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
5 things you need to know about publishing your app for Android XR
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google outlines essential publishing steps for Android XR apps to ensure quality, compatibility, and effective Play Store distribution.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://carrion.dev/en/posts/kotlin-inline-functions-value-classes/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Zero-Cost Abstractions in Kotlin: Inline Functions and Value Classes
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Ignacio Carrión details how Kotlin’s inline functions and value classes achieve safer, faster code with minimal runtime overhead.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Place a sponsored post</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://androidweekly.net/jobs/new" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/68fdf2/623c93bc440f01650d/square_aw.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://androidweekly.net/jobs/new" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Advertise to more than 80k Android developers!
</a></div><div>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!

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">News</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/10/grow-your-app-with-google-play-apps.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Grow your app with the Google Play Apps Accelerator - apply now
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google announces a 12-week Google Play accelerator program to help early-stage apps grow and monetize effectively.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Videos & Podcasts</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://www.youtube.com/watch?v=QWpp5-LlTqA" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/68fd5a/4a3c93bc440f013193/square_Bildschirmfoto_2025-10-26_um_11.04.53.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=QWpp5-LlTqA" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
What's new in Kotlin 2.2.21 (and 2.2.20!)
</a></div><div>Kotlin 2.2.20 and its patch release 2.2.21 come with a lot of new features. Dive in and take a closer look of what the highlight features look like!

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=LtPj9AxqHXc" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Building Android apps in Meta’s monorepository with Buck2
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>In this episode, Pascal talks with Iveta, Navid, and Joshua from Meta’s Android Developer Experience team about the technical strategies that help Meta’s engineers stay productive at scale.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=j-ClFEWams8" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How To Create Dynamic Clickable Spans | Jetpack Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Jov Mit shows how to create dynamic clickable Spans in Jetpack Compose.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=6V1whcH_T3Y" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
A Common Mistake when working with Kotlin Flows 🥶
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Learn more about a common mistake when working with Kotlin Flows.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=kzfVub-AJPs" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
State vs. Actions vs. Events On Android & KMP
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner explains the differences between a state wrapper, as well as action and event sealed interface.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=rdhPfrj9vgU" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Android XR | Spotlight Week
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Get a jump on how to build for Android XR devices in this week's spotlight.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=VcP8Zz4J714" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Android XR #AskAndroid
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Watch this Android XR live Q&A from Friday, October 24
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=Yo_vSI0HgOs" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Bringing Androidify to XR
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Learn how to bring spatial layouts to your app with this Androidify XR demo.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
]]></description>
    <pubDate>Sun, 26 Oct 2025 10:05:40 +0000</pubDate>
    <guid>https://androidweekly.net/issues/issue-698</guid>
  </item>
  <item>
    <title>Android Weekly Issue #697</title>
    <link>https://androidweekly.net/issues/issue-697/rss.xml</link>
    <description><![CDATA[<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Articles & Tutorials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://firebender.com/" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/68f4f6/a03c93bc32da0118de/square_firebender.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://firebender.com/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
🔥 Most powerful AI in Android Studio 👊 
</a></div><div>Code 10x faster. Tell Firebender to create full screens, ship features, or fix bugs - and watch it do the work for you. It's been battle tested by the best android teams at companies like Tinder, Adobe, and Instacart.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://engineering.block.xyz/blog/shrinking-elephants" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Shrinking Elephants 
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Block Engineering explains cutting Gradle sync times by 97% through targeted build and dependency optimizations in large Kotlin projects.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/understanding-retain-internals-a-new-way-to-preserve-state-in-jetpack-compose-54471a32fd05" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
A Scope-based State Preservation in Jetpack Compose 
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Jaewoong Eum examines the upcoming retain { } API in Jetpack Compose for preserving state across recomposition and component removal without boilerplate.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://www.choicely.com/mobile-app-sdk?utm_source=androidweekly&utm_medium=affiliate&utm_campaign=aweekly-10-25-email&utm_content=ad1" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/68f4f6/c63c93bc32da0118e8/square_Choicely-logo-85x85.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.choicely.com/mobile-app-sdk?utm_source=androidweekly&utm_medium=affiliate&utm_campaign=aweekly-10-25-email&utm_content=ad1" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Build apps in days, not months
</a></div><div>Android devs: tired of building the same screens over and over? Choicely Mobile App SDK lets you set up a fully functioning native Android & iOS app fast, with ready-made navigation, feeds, and backend – while keeping full control of your code. Click the link and try for free today!
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://medium.com/@kmpbits/exploring-multi-layer-navigation-in-jetpack-compose-with-navigation-3-cfcfcd982964" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Exploring Multi-Layer Navigation in Jetpack Compose with Navigation 3
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>This article shows how Navigation 3 enables modular, type-safe multi-layer navigation in Jetpack Compose using NavDisplay and Kotlin APIs.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/baking-with-functions-a-guide-to-higher-order-functions-and-lambdas-in-kotlin-615846d0f74a" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
A guide to higher-order functions and lambdas in Kotlin
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Amit Srivastava outlines how Kotlin’s higher-order functions and lambdas enable concise, reusable Android code.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/jetpack-compose-static-vs-dynamic-compositionlocals-its-not-about-change-frequency-81f56b3dd991" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Static vs Dynamic CompositionLocals — Reads, Writes and Trade Offs
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Pablo Costa clarifies that picking staticCompositionLocalOf versus compositionLocalOf is about recomposition semantics rather than change frequency.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/10/beyond-single-features-guaranteeing.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Guaranteeing Feature Combinations With CameraX 1.5
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google adds CameraX 1.5’s Feature Group API to safely combine advanced camera features like HDR and 60 FPS across devices.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://commonsware.com/blog/2025/10/12/be-ware-random-gradle-projects.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Again, Be Wary of Random Gradle Projects
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Mark Murphy advises verifying Gradle wrapper sources and checksums to avoid security risks from untrusted projects.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://gradle.com/blog/develocity-intellij-plugin-speed-up-gradle-builds-insights/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How to use the Develocity IntelliJ plugin to speed up Gradle builds
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Stefan Wolf presents the Develocity IntelliJ plugin for real-time Gradle build analysis and performance diagnostics directly within IDEs.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.revenuecat.com/blog/engineering/flow-internals/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Understanding the internal of Flow, StateFlow, and SharedFlow
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Jaewoong Eum explains Flow, SharedFlow, and StateFlow internals, focusing on context safety, buffering, and hot-flow behavior.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Place a sponsored post</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://androidweekly.net/jobs/new" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/68f4f6/583c93bc32da0118cf/square_aw.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://androidweekly.net/jobs/new" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Advertise to more than 80k Android developers!
</a></div><div>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!

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Libraries & Code</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/RevenueCat/placeholder-compose" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
placeholder-compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Fully customizable placeholder loading effects for Jetpack Compose and KMP. 
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">News</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://android-developers.googleblog.com/2025/10/boost-user-engagement-with-ai-image.html" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/68f416/cd3c93bc32da00f4a9/square_Bildschirmfoto_2025-10-19_um_16.35.32.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/10/boost-user-engagement-with-ai-image.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Boost user engagement with AI Image Generation
</a></div><div>Google showcases Imagen and Gemini 2.5 Flash Image for integrating AI-powered image editing and generation into Android apps.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.jetbrains.com/ai/2025/10/koog-0-5-0-is-out-smarter-tools-persistent-agents-and-simplified-strategy-design/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Koog 0.5.0 Is Out: Smarter Tools, Persistent Agents, and Simplified Strategy Design
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Jetbrains introduces Koog 0.5.0 with persistent agents, smarter tools, and a new non-graph strategy API.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://jb.gg/deveco-2025" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
The State of Developer Ecosystem 2025 Report
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>The Jetbrains State of Developer Ecosystem 2025 Report is live. See what’s shaping the next era of software.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Videos & Podcasts</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://vimeo.com/1115480340?fl=pl&fe=sh" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/68f41a/6a3c93bc32da00f598/square_Bildschirmfoto_2025-10-19_um_16.36.02.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://vimeo.com/1115480340?fl=pl&fe=sh" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Kotlin Variance Modifiers
</a></div><div>Marcin Moskala's presentation on Kotlin variance modifiers
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=wZJZcoPVagk" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
The NEW Material3 Expressive Motion Physics Animation System
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner shows the most important changes about the new MotionScheme and how you can use expressive and standard animation styles in your M3 expressive app.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=4PGaquv7-as" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How To Share Test-Doubles Between Source Sets And Modules
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Jov Mit examines how to share test-doubles between source sets and modules.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=cTfHRUSDnS0" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Your Voice Belongs Here: Creating Compelling KotlinConf Proposals
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Join Pamela Hill and Cheuk Ting Ho, who'll guide you through what makes a CFP stand out, and how to shape your Kotlin journey into a strong proposal.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=DiqQrSqHyds" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
From natural language to UI tests: A deep dive into Journeys for Android Studio
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Hosts Tor and Chet are joined by Adarsh Fernando, a Product Manager, and Ray Buse, a Software Engineer, to discuss Journeys for Android Studio.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=qdjblbYrsFU" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Split Buttons in Material3 Expressive - Full Guide
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner talks about the new SplitButtonLayout composable that you can use to create two split buttons with a primary action as well as showing a drop down when clicked on the secondary.


</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=1zY4_iDyFco" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Discussing Kotlin Coroutines with Marcin Moskała
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Sebastian and Márton chat with Marcin Moskała about coroutines


</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/live/mh9pJWczf8Y" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Koin to Kotzilla - with Arnaud Giuliani and Miguel Faura
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Watch Dave Leeds examine Koin, a strong contender for dependency injection on JVM, Android, and multiplatform projects for many years.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
]]></description>
    <pubDate>Sun, 19 Oct 2025 14:36:26 +0000</pubDate>
    <guid>https://androidweekly.net/issues/issue-697</guid>
  </item>
  <item>
    <title>Android Weekly Issue #696</title>
    <link>https://androidweekly.net/issues/issue-696/rss.xml</link>
    <description><![CDATA[<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Articles & Tutorials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://www.runway.team/state-of-mobile-release-management-report?utm_source=androidweekly&utm_medium=newsletter&utm_campaign=oct-12-25" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/68eb52/483c93bc58c600dee5/square_runway_team_logo.jpeg">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.runway.team/state-of-mobile-release-management-report?utm_source=androidweekly&utm_medium=newsletter&utm_campaign=oct-12-25" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
2025 State of Mobile Release Management 
</a></div><div>Runway's new report on mobile releases shows that automation alone isn't solving core issues: teams that invest significantly in automation still lose 6–10 hours per release to manual busywork and coordination overhead – about the same as teams with less automation in place! Read the full report.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.shreyaspatil.dev/a-simple-key-to-a-better-lazylist-in-jetpack-compose" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
A Simple key to a Better LazyList in Jetpack Compose 
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Shreyas Patil shows how using a proper key in LazyList items prevents unnecessary recompositions and boosts performance.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.sinasamaki.com/glitch-effect-in-jetpack-compose/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Glitch Effect in Jetpack Compose 
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>sinasamaki details implementing a glitch animation in Jetpack Compose using graphicsLayer and easing-based randomness for visual effects.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://firebender.com/" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/68eb52/0b3c93bc58c600decf/square_firebender.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://firebender.com/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
🔥 Most powerful AI in Android Studio 👊
</a></div><div>Code 10x faster. Tell Firebender to create full screens, ship features, or fix bugs - and watch it do the work for you. It's been battle tested by the best android teams at companies like Tinder, Adobe, and Instacart.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.kotlin-academy.com/is-structured-concurrency-the-greatest-revolution-in-programming-going-on-right-now-6c87452bb57e" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Is structured concurrency the greatest revolution in programming going on right now?
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Marcin Moskala highlights structured concurrency as Kotlin’s key advantage for safer, clearer coroutine management.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/recomposition-all-in-one-5bd1f4aedf8b" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
3 Practical Optimization Techniques for Jetpack Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Yunho Lee details three Compose techniques to reduce recompositions by scoping, deriving, and deferring state reads.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/classic-android-lifecycle-vs-androidx-lifecycle-ktx-under-the-hood-f2030bada86e" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Classic Android Lifecycle vs AndroidX Lifecycle (KTX) — Under the Hood
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Tung Doan details how AndroidX Lifecycle replaces callback management with coroutine-aware, state-driven APIs for safer flow collection and lifecycle handling.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/my-experience-building-with-compose-multiplatfom-4403f266843a" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Building a cross-platform step tracker with Compose Multiplatform
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Omar Altamimi details building a cross-platform pedometer with Compose Multiplatform using shared UI, SensorManager, CMPedometer, and RevenueCat KMP.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/app-startup-in-android-system-bootstrapping-to-app-level-initialization-715cc9f81368" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
App Startup in Android: System Bootstrapping to App-Level Initialization
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Viineet Nigam outlines Android’s startup flow and how Jetpack App Startup optimizes dependency initialization for faster app launches.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/stop-event-drilling-in-jetpack-compose-with-composition-locals-e15004258ec5" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Stop Event-Drilling in Jetpack Compose with Composition Locals
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Ioannis Anifantakis shows using staticCompositionLocalOf as an event sink to remove callback drilling and simplify Jetpack Compose architectures.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=amyl4nCH3Cc" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Build Your First Compose Multiplatform Web App
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner looks at Compose Multiplatform for web as well as the differences between Kotlin/JS and Kotlin/Wasm.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.paleblueapps.com/rockandnull/automatic-resource-cleanup-android-viewmodel-autocloseable/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Automatic resource cleanup in Jetpack ViewModels using AutoCloseable
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Anil Kumar Beesetti shows using AutoCloseable in ViewModels for automatic resource cleanup without manual onCleared() code.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Place a sponsored post</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://androidweekly.net/jobs/new" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/68eb52/5f3c93bc58c600deec/square_aw.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://androidweekly.net/jobs/new" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Advertise to more than 80k Android developers!
</a></div><div>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!

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Libraries & Code</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/skydoves/compose-stability-inference" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
compose-stability-inference
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>📚 A comprehensive study of how the Compose compiler determines type stability for recomposition optimization. 
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">News</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://android-developers.googleblog.com/2025/10/jetpack-windowmanager-15-is-stable.html" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/68eafa/f63c93bc58c600d51c/square_Bildschirmfoto_2025-10-12_um_09.02.35.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/10/jetpack-windowmanager-15-is-stable.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Jetpack WindowManager 1.5 is stable
</a></div><div>Google releases WindowManager 1.5 with new large-screen size classes and enhanced activity embedding support.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.jetbrains.com/kotlin/2025/10/crafting-your-kotlinconf-proposal-expert-tips/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Crafting Your KotlinConf Proposal: Expert Tips to  Help You Stand Out
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>JetBrains advises on crafting compelling, Kotlin-centric KotlinConf proposals through clarity, storytelling, and concrete audience takeaways.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.jetbrains.com/kotlin/2025/10/kotlin-multiplatform-contest-2026/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Build a Kotlin Multiplatform Project and Win a Trip to KotlinConf 2026]
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>JetBrains launches the 2026 Kotlin Multiplatform Contest offering KotlinConf trips for top KMP projects.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/09/android-studio-narwhal-4-feature-drop.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Android Studio Narwhal 4 Feature Drop: watch face support and improved stability
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google releases Android Studio Narwhal 4 with Wear OS watch face tools and a stable Gemini Agent Mode.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.insert-koin.io/koin-annotations-2-2-jsr-330-compatibility-smart-configurations-and-scope-archetypes-5b2f4c8536c1" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Koin Annotations 2.2
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Arnaud Giuliani presents Koin 2.2 with JSR-330 support, new scope archetypes, and smart configuration features for streamlined Kotlin dependency injection.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Videos & Podcasts</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://www.youtube.com/playlist?list=PL9Pfzam3fFdfpxt3ehau9WgCH36QXnY1_" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/68eaf0/1d3c93bc58c600d3bf/square_Bildschirmfoto_2025-10-12_um_09.03.14.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/playlist?list=PL9Pfzam3fFdfpxt3ehau9WgCH36QXnY1_" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
droidcon Berlin 2025
</a></div><div>Playlist of all the presentations from Droidcon Berlin 2025
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=21IRwyf7108" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Updates to Firebase AI Logic, Data Connect, App Check and more!
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>This video covers exciting new features in Firebase AI Logic, including broader Gemini Developer API support and advanced image editing with Imagen models
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=4fFOQZVlsjA" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Koin - More than DI, but AI Performance Monitoring for Kotlin apps
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>In this interview, learn about an inovative venture into AI Performance Monitoring tailored for the widely-used Koin dependency injection library.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=eNgivsZnXno" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How To Create Overflow Menu In Jetpack Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Jov Mit teaches about building overflow menus in Jetpack Compose
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=c9r8H1DobaI" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
In-depth on Metro — with Zac Sweers
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>In this episode of Code with the Italians, we’re joined by Zac Sweers to dive into Metro — a brand-new dependency injection library built from the ground up for Kotlin Multiplatform.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=RnrS-oGlzKo" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
derivedStateOf() vs remember(key) - Optimize recompositions!
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Stevdza-San dives into the subtle differences in using derivedStateOf vs remember(key).
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
]]></description>
    <pubDate>Sun, 12 Oct 2025 15:43:31 +0000</pubDate>
    <guid>https://androidweekly.net/issues/issue-696</guid>
  </item>
  <item>
    <title>Android Weekly Issue #695</title>
    <link>https://androidweekly.net/issues/issue-695/rss.xml</link>
    <description><![CDATA[<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Articles & Tutorials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://firebender.com/" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/68ddb1/af3c93bc3779002397/square_square_firebender.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://firebender.com/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
🔥 Most powerful AI in Android Studio 👊 
</a></div><div>Code 10x faster. Tell Firebender to create full screens, ship features, or fix bugs - and watch it do the work for you. It's been battle tested by the best android teams at companies like Tinder, Adobe, and Instacart.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://sankalpchauhan.com/breaking-the-speed-barrier-how-non-blocking-splash-screens-cut-android-app-launch-time-by-90" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How Non-Blocking Splash Screens Cut Android App Launch Time by 90%
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>A case study on optimizing Android splash screen performance through architectural innovation, including the trade-offs you need to know.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/the-art-of-shadows-in-jetpack-compose-63a75070882f" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
The Art of Shadows in Jetpack Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Stefano Natali demonstrates techniques for creating nuanced shadows in Compose using layered shadow modifiers, blending blur and spread to enrich UI depth.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/visibility-apis-in-jetpack-compose-1-9-easier-cleaner-but-not-quite-there-yet-9bbfdb60bd6b" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Visibility APIs in Jetpack Compose 1.9
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Pablo Costa finds Compose 1.9’s visibility APIs easier but still imperfect, with less consistency than manual visibility-tracking techniques.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/app-startup-library-eliminate-slow-launches-and-contentprovider-bloat-f946d42c0e5c" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Android App Startup Library: Boost Launch Speed
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Sivavishnu shows how Jetpack App Startup unifies initialization under one provider to reduce startup cost and ContentProvider overhead.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/morphing-blobs-with-jetpack-compose-from-circle-to-organic-waves-901759190d3b" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
🫧 Morphing Blobs with Jetpack Compose: From Circle to Organic Waves
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Prashant Panwar demonstrates morphing a circular dot pattern into an organic blob in Compose using drawWithCache and dynamic point calculations.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/09/lets-talk-security-answering-your-top.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Let's talk security: Answering your top questions about Android developer verification
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Matthew Forsythe from Google explains how developer verification improves Android app security while preserving sideloading freedom and standard development workflows.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/09/guide-to-excessive-wake-lock-usage.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Optimize your app battery using Android vitals wake lock metric
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Alice Yuan from Google outlines how Android vitals detects and helps mitigate excessive wake lock usage to optimize app battery performance.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://commonsware.com/blog/2025/10/04/busting-drawwithcache-compose.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Busting drawWithCache in Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Mark Murphy shows how adding a referenced key to drawWithCache() forces recomposition when its state changes.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://carrion.dev/en/posts/kotlin-mutex-concurrency-guide/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Kotlin Mutex: Thread-Safe Concurrency for Coroutines
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Ignacio Carrión explains how Kotlin’s Mutex provides coroutine-friendly, non-blocking synchronization with guidance on safe usage and common pitfalls.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.liutikas.net/2025/09/30/Input-to-Your-Inputs.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Input to Your Inputs - What Invalidates Gradle Configuration Cache?
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Aurimas Liutikas' call to action is to reduce the inputs to the configuration cache in your build as much as possible and report issues to plugins that cause excessive inputs.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Place a sponsored post</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://androidweekly.net/jobs/new" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/68ddb1/e13c93bc37790023a6/square_aw.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://androidweekly.net/jobs/new" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Advertise to more than 80k Android developers!
</a></div><div>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!

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">News</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://goo.gle/verification-feedback-survey" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Help shape a new Android Developer Console account for students and hobbyists
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google is designing a lightweight, no-fee account type that won't require ID verification for distributing apps to a small number of devices, and would like your feedback to get it right.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.jetbrains.com/amper/2025/10/amper-update-october-2025/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Amper Update, October 2025 – Compose Hot Reload and UX Improvements
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Joffrey Bion from JetBrains announces Amper 0.8.0 with Compose Hot Reload, new Kotlin and platform support, and Gradle integration removal.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Videos & Podcasts</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://www.youtube.com/watch?v=Yx-zMcIh8A4" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/68e1c7/a03c93bc377900bb87/square_Bildschirmfoto_2025-10-05_um_08.24.45.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=Yx-zMcIh8A4" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
The New Material3 Expressive Explained In 7 Minutes
</a></div><div>Philipp Lackner provides an introduction to all the changes from the Material3 Expressive theme including the new motion physics, UI components, text styles and shapes.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=A7DEhW-mjdc" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Android developer verification
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>To protect users from malware and scams, Android has launched Android developer verification, a program that verifies developers identities.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=zNT6thZzJJM" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Avoid this App Crash Issue in a Production!
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Avoid this App Crash Issue in a Production!
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=mgrjpbzeTgE" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
How To Build Custom Layouts In Jetpack Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Jov Mit shows how to build custom layouts in Jetpack Compose.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=QuHQ5khEn9U" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Under the hood with Google AI on Android
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Join a panel of Developer Relations Engineers and Product Managers across Android, AI/ML, Google AI Edge, and Firebase as they deep dive into advanced technologies and research behind intelligent experiences on Android.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
]]></description>
    <pubDate>Sun, 05 Oct 2025 12:50:43 +0000</pubDate>
    <guid>https://androidweekly.net/issues/issue-695</guid>
  </item>
  <item>
    <title>Android Weekly Issue #694</title>
    <link>https://androidweekly.net/issues/issue-694/rss.xml</link>
    <description><![CDATA[<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Articles & Tutorials</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 10px 10px 20px;"><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 12px; color: rgb(153, 153, 153); font-style: italic;">Sponsored</span></div></div></div></td></tr></tbody></table></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://androidweekly.net/jobs/new" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/68d81a/7b3c93bc1ea40000e9/square_aw.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://androidweekly.net/jobs/new" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Advertise to more than 80k Android developers! 
</a></div><div>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!

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/09/a-deep-dive-into-media3-preloadmanager.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
A deep dive into Media3’s PreloadManager - Part 2
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google explains advanced Media3 PreloadManager techniques for analytics, UI fallback, and resource sharing with ExoPlayer.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/how-a-misplaced-dependency-blew-up-our-apk-size-and-how-we-prevented-it-forever-916aa16e59ee" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
A Misplaced Dependency Blew Up Our APK Size
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Nav Singh shows how a misplaced test dependency bloated APK size and fixed it with a Gradle plugin enforcing proper dependency configuration.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/exploring-5-lesser-known-compose-components-9a5cfd5eb354" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Exploring 5 Lesser-Known Compose Components
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Domen Lanišnik introduces five lesser-known Jetpack Compose Material 3 components that enhance UI flexibility and usability.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://proandroiddev.com/the-golden-rule-of-coroutine-exceptions-8d4538158ab5" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
The Golden Rule of Coroutine Exceptions
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Baljeet Singh details structured concurrency and exception handling patterns in Kotlin coroutines.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.paleblueapps.com/rockandnull/billin-building-a-cross-platform-invoice-app-with-kotlin-multiplatform/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Building a modern cross-platform invoice app with Compose Multiplatform
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Mike Yerou shares how to leverage Compose Multiplatform and Kotlin to create a unified cross-platform invoicing app.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.marcogomiero.com/posts/2025/compose-desktop-macos-api-jni/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Accessing native macOS API in Compose Multiplatform - Marco Gomiero
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Marco Gomiero shows how to use Kotlin/Native with JNI to access macOS APIs in Compose Multiplatform desktop apps.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://herrbert74.github.io/posts/make-everything-internal/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Make everything internal
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Zsolt Bertalan explains handling internal classes with Hilt and Dagger using wrapper modules and named bindings for cleaner visibility and minor performance gains.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://joebirch.co/android/exploring-material-3-for-compose-floating-action-button-menu/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Exploring Material 3 for Compose: Floating Action Button Menu
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Joe Birch demonstrates using Material 3’s FloatingActionButtonMenu in Compose to provide expandable multi-action floating buttons.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Libraries & Code</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://github.com/aminekarimii/analytiks" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/68d869/e43c93bc2503001121/square_Bildschirmfoto_2025-09-28_um_10.00.31.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/aminekarimii/analytiks" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
analytiks
</a></div><div>A unified Android analytics library that centralizes multiple analytics services
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/ivamsi/easyandroidpermissions" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
EasyAndroidPermissions
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>A lightweight Android library for easy runtime permission handling with Kotlin coroutines and Jetpack Compose - no more callbacks, just clean suspend functions. 
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://github.com/PatilShreyas/reactive-collections-kt" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
reactive-collections-kt
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Reactive Collections is a Kotlin Multiplatform library that brings reactive programming to standard collections. 
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">News</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://blog.jetbrains.com/kotlin/2025/09/the-kotlin-ai-stack-build-ai-agents-with-koog-code-smarter-with-junie-and-more/" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/68d873/c13c93bc250300127d/square_Bildschirmfoto_2025-09-28_um_10.00.59.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.jetbrains.com/kotlin/2025/09/the-kotlin-ai-stack-build-ai-agents-with-koog-code-smarter-with-junie-and-more/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
The Kotlin AI Stack
</a></div><div>JetBrains introduces the Kotlin AI stack with Koog for agents, Junie in IDEs, and interoperability via MCP.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.jetbrains.com/kotlin/2025/09/compose-multiplatform-1-9-0-compose-for-web-beta/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Compose Multiplatform for Web Goes Beta
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Compose Multiplatform for web, powered by Wasm, is now in Beta!
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.jetbrains.com/kotlin/2025/09/ktor-roadmap-2025/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
The Ktor roadmap and previews
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>JetBrains presents the Ktor 2025 roadmap with OpenAPI, Service Discovery, and multiplatform WebRTC support, and more.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://android-developers.googleblog.com/2025/09/introducing-google-play-games-level-up.html" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Introducing the Google Play Games Level Up program
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google launches the Play Games Level Up program with tools and guidelines to boost engagement, discovery, and cross-device gameplay.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.google/technology/developers/ai-agents-intensive/" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Google and Kaggle launch AI Agents Intensive course
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google introduces a free five-day AI Agents Intensive course with Kaggle to teach developers practical AI agent development.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://blog.kotzilla.io/koin-ide-plugin-ai-debugging-android-kotlin-development" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Koin IDE Plugin 1.4.0: AI-Powered Dependency Injection Debugging
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Art Krivolapov introduces Koin IDE Plugin 1.4.0 with AI-assisted debugging and improved dependency injection management for Android and Kotlin projects.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top" style="background-color: rgb(51, 181, 229);" bgcolor="33B5E5"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; line-height: 1.2; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div><span style="font-size: 18px; color: rgb(255, 255, 255); font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold;">Videos & Podcasts</span></div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="20%" align="" valign="top"><div><div class="column-resize-bar"><span class="line"></span><span class="grabber"></span></div></div>
<div class="gl-contains-image"><table class="editor-image  editor-image-vspace-on editor-image-hspace-on" style="min-width: 100%;" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td align="left" valign="top" style="padding: 10px 10px 10px 20px;"><div class="publish-container">
<a href="https://www.youtube.com/watch?v=HD0FaoUQFMw" target="_blank">
<img alt class="" style="display: block; height: auto !important; max-width: 100% !important;" width="90" border="0" hspace="0" vspace="0" src="https://androidweekly.net/system/images/68d86f/323c93bc25030011e2/square_Bildschirmfoto_2025-09-28_um_10.01.41.png">
</a></div></td></tr></tbody></table></div></td><td class="editor-col OneColumnMobile" width="80%" align="" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text editor-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px 10px 10px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=HD0FaoUQFMw" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Make your UI Beautiful and Adaptive on each platform
</a></div><div>Learn about techniques to make your Compose UI adaptive to multiple platforms.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="editor-col OneColumnMobile" width="100%" align="" valign="top"><div class="gl-contains-spacer"><table class="editor-spacer" width="100%" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="" align="center" valign="top"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tbody><tr><td class="spacer-base" width="100%" align="center" valign="top" style="padding-bottom: 15px; height: 1px; line-height: 1px;"><div><img alt width="5" height="1" border="0" hspace="0" vspace="0" src="https://imgssl.constantcontact.com/letters/images/1101116784221/S.gif" style="display: block; height: 1px; width: 5px;"></div></td></tr></tbody></table></td></tr></tbody></table></div></td></tr></tbody></table><table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=-6mEvkLOlno" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Optimize your app battery drain using Android Vitals wake lock metric
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Google Play Console is evolving its core app vitals metrics to include battery drain signals! Excessive wake lock usage will be joining user-perceived crash and ANR rate as key signs of your app’s technical health.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=TAtU7joTGaA" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Your First AI Agent in Kotlin
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Learn how to build your first AI agent in Kotlin using Koog, JetBrains’ framework for working with LLMs.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=J_GnHiixxGE" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
🚀 Fix Critical Kotlin App Issues 5x Faster with the Kotzilla Platform
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>The new Kotzilla Platform release changes the game by automatically identifying your most critical issues and generating AI-ready prompts with all the context you need to fix them fast.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=xy9wq-hreNE" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Introducing the Google Play Games Level Up program
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Welcome to the Google Play Games Level Up program, a new way to grow on Play.

</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=0Hv5LTxAutw" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Threads vs. Kotlin Coroutines vs. Dispatchers - The Last Video You'll Need
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Philipp Lackner explains the differences between threads and coroutines in detail. You'll understand exactly what blocking code is, multithreading vs. parallelism and more.


</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="galileo-ap-layout-editor" style="min-width: 100%;"><tbody><tr><td class="content editor-col OneColumnMobile" width="100%" align="left" valign="top"><div class="gl-contains-text"><table width="100%" style="min-width: 100%;" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="editor-text content-text" align="left" valign="top" style="line-height: 1.5; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; color: #505050; text-align: left; display: block; word-wrap: break-word; padding: 10px 20px;"><div></div><div class="text-container galileo-ap-content-editor"><div><div>
<a href="https://www.youtube.com/watch?v=zvW1njKZguU" target="_blank" style="font-size: 16px; color: #007EA8; font-weight: bold; font-style: normal; text-decoration: underline;">
Don't make this mistake when aligning Composables in Jetpack Compose
<span class="main-url" style="color: #333333; font-size: 10px;">
</span>
</a></div><div>Jov Mit digs into a common mistake when aligning Composables.
</div></div></div></td></tr></tbody></table></div></td></tr></tbody></table>
]]></description>
    <pubDate>Sun, 28 Sep 2025 08:02:24 +0000</pubDate>
    <guid>https://androidweekly.net/issues/issue-694</guid>
  </item>

  </channel>
</rss>
