Issue #441

November 22nd, 2020

Articles & Tutorials

link image   There is no copy method for Sealed Classes in Kotlin! (

Ivan Morgillo shows how ArrowKt's tools can help with writing simpler code when using nested sealed classes.

5 New Test Automation Frameworks for Android (2020) (

The year is slowly coming to an end, so it’s just the right time to look into what’s new around test automation frameworks. Petzl Stephan lists 5 new frameworks you might not have heard of yet.

The Ultimate Guide to Android App I18n and L10n (

Does your app have the potential to impact millions of people worldwide? Make sure it can reach as many as possible with these best practices for Android app internationalization (i18n) and localization (l10n).

Jetpack Compose Tutorial for Android: Getting Started (

In this Jetpack Compose tutorial by Alex Sullivan, you’ll learn to use the new declarative UI framework being developed by the Android team by creating a cookbook app.

Fully cross-platform Kotlin applications (almost) (

Arkadii Ivanov shows that Decompose and JetBrains Compose libraries, when used together, allow us to share most of the code, including navigation and UI with multiple platforms.

Building SwipeView using MotionLayout (

MotionLayout helps us build complex view motions based on user interactions, while automatically reversing that motion, all out of the box. Balarka shows how to do it.

Substituting LiveData: StateFlow or SharedFlow? (

Kotlin Coroutines introduced two Flow types, SharedFlow and StateFlow. Patrick Steiger writes about substituting LiveData with one of those new types, or both.

Guide: Ranges in Kotlin (

Alex Zhukovich explores ranges in Kotlin to understand how it can simplify development. In the end, he creates a custom range for the delivery time of a restaurant base on open and close time.

ShapedBottomNavigationView - Part 2 (

Sometimes we have designs that are not possible using the Framework or Material Components widgets as-is. Mark Allison walks us through such a case and how he overcame challenges in the implementation.

When is a Type not a Type? Kotlin in the IDE (

Paul Blundell explains the ‘show type hints’ feature of IntelliJ.

Android LiveData And Passive Views: 3 Simple Tips (

LiveData is a part of Android Architecture Components and represents an observable, lifecycle-aware component. In this article, Vlad Sonkin demonstrates the role of LiveData in architecture with 3 simple tips to use it even better.

Getting our apps ready for Jetpack Compose (

There are a collection of things that we can start or continue doing to make the transition to compose smoother when the time comes. Follow Joe Birch's guide to get your apps ready.

Jetpack Compose: ViewModels (

Chances are you are familiar with Jetpack's ViewModel and the unidirectional data flow. But how does it fit in with the new Jetpack Compose? Let Bevan Steele explain.

Jetpack Compose Effect Handlers (

Learn how to run your side effects bound to the @Composable lifecycle with this article by Jorge Castillo.

Enforcing Team Rules with Lint: Tests 🧐 (

Zarah Dominguez wraps up here series on how to write a custom lint rule, with a way to write unit tests for the rule.

Shared flows, broadcast channels. (

Roman Elizarov describes Kotlin Flow, SharedFlow & StateFlow, and how they improve the usability of coroutines.

Practical network for Android Developers (part 1) (

Check out Dinorah Tovar's series on “Practical Network for Android Developers”, where she'll cover topics from HTTP and Network Layer all the way to Testing, Mocks, and Integration.


Place a sponsored post

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



Android Developer - Java / Kotlin (Remote)

Help build one of the most well-loved recipe apps worldwide. FitMenCook has an average Google Play Store rating of 4.7. You will have autonomy over the codebase, written in Java & Kotlin. This is a part-time position, offering an exciting roadmap of new functionality.

Senior Android Engineer (Remote)

Join our team as a Senior Android Engineer and help shape the technology that powers the DuckDuckGo search experience. As part of our growing team, you will collaborate with team members at all levels to identify and close major gaps in our products.


Libraries & Code

Landscapist (

Jetpack Compose image loading library which can fetch and display network images using Glide, Coil, Fresco

Decompose (

Kotlin Multiplatform lifecycle-aware business logic components (aka BLoCs) with routing functionality and pluggable UI (Jetpack Compose



link image   Getting your app approved for background location access (

If your app uses background location data, you must submit a form for review and receive approval by January 18, 2021 so your apps can stay on Google Play.

Roman Elizarov is the new Project Lead for Kotlin (

Andrey Breslav is stepping down as the Project Lead for Kotlin. Roman Elizarov is the new Project Lead.

New Android App Bundle and target API level requirements in 2021 (

In 2021, Google is continuing with their annual target API level update, requiring new apps to target API level 30 (Android 11) in August and in November for all app updates.

Kotlin flows (

New Android Developer documentation on Kotlin Flow.


Videos & Podcasts

link image   Built-in delegates (

Kotlin makes implementing delegates easy and provides several built-in delegates in its library. In this video, we take a close look at these built-in delegates and see how they work.

Android Summit 2020 (

Videos of all the presentations from Android Summit 2020.