Issue #440

November 15th, 2020

Articles & Tutorials

link image   MediaPlayer: Simplified Video Playback on Android (

Playing videos is a common requirement in Android apps. In this tutorial, Bhavesh Misri teaches about handling video playback via the MediaPlayer API on Android.

Benchmarking Gradle Builds Using Gradle-Profiler (

In this post, Nate Ebel takes an introductory look at benchmarking Gradle build performance using the gradle-profiler tool.

link image   Kotlin 4.4 Chat SDK - Stream Chat (

Build a fully-featured chat experience for your app in hours using Stream’s Kotlin Chat SDK. See why Stream powers activity feeds and chat for over a billion end-users. The Kotlin Chat Tutorial explains how to build a messaging interface with reactions, threads, offline support, typing indicators, and read state.

Moving from React Native to Kotlin Multiplatform (

In this article, Malvin Sutanto writes about a move away from React Native to Kotlin Multiplatform in mobile apps.

link image   Track your users’ experience in the wild with APM (

Instabug’s new Application Performance Monitoring measures the quality of the app as perceived by your users. Whether it’s a crash, slow screen transition, slow network call, or UI hangs, utilize performance patterns to trace the issue. Get started now and ship apps users love

IntelliJ IDEA / Android Studio Tricks: “Save Actions” plugin (

One of Ivan Morgillo's favorite IntelliJ/Android Studio plugins that he constantly suggests installing is Save Actions.

You Are Not Your Creations (

Donn Felker delves into how we might get attached to the code we build, and how that might affect us.

Trello Android's Git Branching Strategy (

Dan Lew describes how his team ended up basing their mobile app branching strategy off of Three-Flow.

Building your first app bundle (

Ben Weiss shows why Android App Bundle is the new and official publishing format for Android applications.

Uncovering the Bubbles API (

Filipe Batista examines the new Bubbles API and shares examples of how to implement it in your app.

ShapedBottomNavigationView - Part 1 (

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.

Trunk-based mobile (

This post by Jamie McDonald outlines a model for developing mobile apps with a trunk-based workflow.

Configuring your app for Play Feature Delivery (

The Android App Bundle is the publishing format for Android Applications in the Modern Android Development world. Ben Weiss shows how you can take matters into your own hands and modularize as well as optimize installation even further using Play Feature Delivery.

Android library development - Dependencies (

Jeroen Mols continues his series on building libraries. This post covers how transitive dependencies of an Android library affect apps integrating it.

Server-driven theming in Jetpack Compose (

Adam Bennett and his team were wondering - how easy would it be to create a server-driven theme for Jetpack Compose in your app?

Android Coroutine Scopes: How To Handle A Coroutine (

Coroutines are launched in the context of CoroutineScope, but how to ensure that we choose the right scope and don’t leak in memory? Vlad Sonkin walks you through the basics.

Jetpack Compose: intro & basic layouts (

Bevan Steele starts an exploratory series of posts that examines the new Jetpack Compose toolkit.

Faking Dagger Injection in Instrumentation Tests (

Amr Yousef shares an example of how to set up Dagger injections for instrumented tests.

A pragmatic guide to Hilt with Kotlin (

Hilt is a new dependency injection library built on top of Dagger that simplifies its use in Android apps. Filip Stanis showcases the core functionality with a few code snippets to help you get started with using Hilt in your project.

Built-in Kotline Delegates (

Murat Yener takes a look at Kotlin's built-in delegates and how they work under the hood.

How the Kotlin Multiplatform saves development time (

Alex Pogrebnyak at IceRock has been developing applications on the Kotlin Multiplatform for 2 years now and shares some of the experience.


Place a sponsored post

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



Senior Android Engineer (New York City or Boston, Massachusetts (US))

Help lead the development of a world-class, highly scalable Android application for Well's ( engagement and behavior change platform, delivering new user interface functionality and guiding the curation of our Kotlin-based Android native mobile application codebase.

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.

Senior Software Engineer - Android (New York City)

Squarespace is seeking a Senior Software Engineer - Android to join our small, collaborative team responsible for the end-to-end development of our Android applications and the long-term vision of Squarespace on mobile devices. This role reports to our Engineering Manager in New York City.

Engineering Lead - Android (Dublin, Ireland)

Unfold is looking for a Team Lead - Android. You will join our small, collaborative team responsible for the end-to-end development of our Android applications and the long-term vision of Unfold on mobile devices. You will report to our Engineering Manager in Dublin, Ireland.


Libraries & Code

gradle refreshVersions (

gradle refreshVersions stores all the versions in one place in a Java Properties file and easily helps update to the latest versions.

exhaustive (

An annotation and Kotlin compiler plugin for enforcing a when statement is exhaustive



link image   New Improvements to App Distribution since Beta Launch (

Firebase has a few updates to App Distribution since launch.

Dependency management improvements for Android (

Firebase has begun leveraging Gradle’s support for Android BoMs (or “Bill of Materials”), which provides a way to manage the versions for all the libraries you use by specifying a single BoM version for your app.

Welcome AOSP to the Bazel ecosystem (

Google announced that the Android Open Source Project (AOSP) is migrating from its current build systems to Bazel.


Videos & Podcasts

link image   App Bundles: Configuring your app for Play Feature Delivery (

The Android App Bundle is the distribution format for Android applications in the Modern Android Development world. Ben Weiss talks about the advanced features of Android App Bundles that enable Play Feature Delivery, and much more!

App Bundles: Testing bundles with bundletool and the Play Console (

Android Developer Advocate Wojtek Kaliciński will walk you through some of the tools you should be using when handling Android App Bundles.

Android Developers Backstage: Image Loading with Coil (

This week, Tor, Romain, and Chet are joined by a special guest: Colin White from Instacart. Colin is the author of Coil, a popular image loading library backed by Kotlin and Kotlin Coroutines.