Issue #405

March 15th, 2020

Articles & Tutorials

link image   Glide'ing your way into RecyclerView state invalidation (

A tip by Ricardo Costeira for optimizing RecyclerView layouts when using Glide to load images into cells.

Handling Nullability in Android 11 and Beyond (

This post shows how the Android 11 SDK does more to expose nullability information in its APIs and show how you can prepare your Kotlin code for it.

link image   Enterprise-Grade Android Chat Made Easy W/ Stream (

Learn how easy it is to use Stream's Android Java & Kotlin chat SDK. Build real-time chat for Android, iOS, and web in hours not months. Start a free trial now and try out Stream's chat API, SDK and chat React Components. See why Stream powers the feeds and chat for over 500 million end-users.

8 Valid Reasons for Modularization in Android (

Modularization is a technique that allows you to break your monolithic Android application into several independent modules. In this article Vasiliy Zukanov describes when and why you might want to modularize your Android application.

link image   Get 98% GPS Accuracy for your Android App (

PathSense TruePath for Android is 97% accurate, compared to 23% for Android Fused Location Provider. Easy integration. No need for Google Snap to Road. All data stays on the phone. Try the SDK for FREE in your own app today!

Improving App Debugging with Flipper (

Sometime last year, Facebook released a new mobile debugging tool, named Flipper. Since not too many developers seem to know about it, Michael Evans focuses on getting set up with Flipper, as well as taking a look at two of its most useful default plugins.

Combining Kotlin Flows with Select Expressions (

Mohit S explores how to use the Flow combine operator and how it uses an experimental construct called a Select expression. He looks at how the select expressions work and how they are used internally in the combine operator.

Connectivity (

This post by Mark Allison focuses on actively detecting connectivity issues so that we may adjust the UI to let the user know that an operation will fail rather than waiting for the user to make an action and then displaying an error message.

Coroutines: First things first (

This series of blog posts by Manuel Vivo goes in-depth into cancellation and exceptions in Coroutines

Collections in Kotlin (

Magda Miu examines Kotlin collections and data operations applied to them.

Easy Android Scopes (

Ryan Harter takes a look at some existing approaches that allow us to create presenters that will live in the context of our views, and then he shares an alternate approach to ensure that presenters are properly bound to their view’s lifecycle.

Smart Casts via Assertions + Kotlin Contracts (

One of Andre Perkins' favorite features in Kotlin is smart casts. Here he describes how to apply it to some assertion code.

Preventing coroutine cancellation for important actions (

Craig Russell describes a pattern of launching coroutines which cancel when the Activity or ViewModel is destroyed, but support allowing important parts of the coroutine to run uncancelled.

Exploring Dynamic Feature Navigation on Android (

Joe Birch examines the new Dynamic Feature Navigation library which extends from the Navigation Component to allow us to perform navigation which involves destinations defined within Dynamic Feature Modules.

Scripting file templates for Android Studio (

Adam Bennett and his team created file templates for Android Studio to help in generating common code, but it's a bit painful to install them, so here's a way to automate their installation.

Modern User Storage on Android (

Android 10 introduced changes to the behavior of external storage permission. Yacine Rezgui describes how Android 11 Developer Preview continues this effort while adding improvements designed to help developers adapt to the changes.



link image   Place a sponsored post & reach over 66k Android devs (

Reach the right audience for your Android development related services or products, that help Android developers get their job done!



link image   Building a Design Systems Library with Figma & Scripter (

In this blog post, Alex Lockwood shares a few examples of how to use Scripter to help build a design systems library in Figma and automate tasks that would have otherwise taken hours or even days to complete.



Android Software Engineer (New York, NY / Remote)

SCRUFF & Jack'd, two of the largest gay social dating apps on Android with more than 20M members worldwide, are looking for experienced Android developers to work on the next generation of their app.


Libraries & Code

kotlin-numpy (

This project is a Kotlin library, which is a statically typed wrapper for the NumPy library

MVIKotlin (

MVI framework for Kotlin Multiplatform. Supports Android, JVM, JavaScript, iosX64, iosArm64, linuxX64. Extensions for coroutines and Reaktive libraries.



Join us for the digital Google for Games Developer Summit (

Google is hosting the Google for Games Developer Summit, a free, digital-only experience where developers can watch the announcements and session content that was planned for GDC.

Android Platform Codelab Kickstarts OS Development (

The Android Platform Codelab has been published to take developers from bare metal to a (virtual) device under test in a single page.


Videos & Podcasts

link image   D8, R8 and enums (

In this episode, Chet Haase goes over Kotlin enums and when statements, the overhead that they can incur, and how to use the Android R8 compiler to reduce that overhead.

Logging 🌲 (

Donn & Kaushik talk about logging. When to log, how to log, what to log – our thoughts on the subject.

Google Design Tutorials (

Google's new series of hands-on tutorial videos on design, tooling & implementation has you covered! Check out the playlist and subscribe for more.