Issue #423

July 19th, 2020

Articles & Tutorials

link image   Android Vitals - What time is it? (

This blog series by Py will be focused on stability and performance monitoring of Android apps in production.

Optimize the build speed for your Android project (

Here are some tips for optimizing the speed of your Gradle builds.

The proper care and feeding of your Gradle build (

In this article, Tony Robalik takes a look at the Dependency Analysis Gradle Plugin. This plugin is uniquely designed to solve several build problems in the Android & JVM build ecosystems such as telling you which (if any) of your dependencies are unused and can be removed.

link image   Deploy Android Chat In Hours With Stream (

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

Refactoring Android Themes with Style (

Ataul Munim shows how to write a custom lint check that helps prevent hardcoding colors.

Kotlin Actors – No Drama Concurrency (

Sam Edwards walks you through the reasons why to use Kotlin Actors to achieve concurrency while leveraging Coroutines to process reactive events in an unknown order.

Continuous Integration for Android (

Prashant Barahi shows how to use Continuous Integration for Android to be sure you have fully-verified and battle-tested code on the master branch

Keep your interfaces simple (

Danny Preussler shows how to avoid implicit connections and learn how extension functions can help you writing good APIs.

Repository Anti-Pattern in Android (

Vasiliy Zukanov considers Repository, Manager, and UseCase patterns when implementing a well-architected application.

Developing a multilingual Agent in Dialogflow (

This blog post by Romin Irani shows you step by step how to start designing an Agent in Dialogflow that can support two languages

Lottie: Delayed Loop (

Mark Allison considers how to handle delaying looping animations when using the Lottie library.

Improving app startup with I/O prefetching (

Android 11 introduces IORap, a new feature that greatly improves application startup times. This article describes how it works, and a minor change to help your app take advantage.

Shrinking Kotlin Libraries and Applications using Kotlin Reflection with R8 (

This blog post provides information on Kotlin metadata and on R8’s support for Kotlin metadata rewriting.

Profile Guided Optimization for Native Android Applications (

With Profile-guided optimization (PGO), runtime profiles from a program’s executions are used by the compiler to make optimal choices about inlining and code layout. Here's how to make use of them in Native Android apps.

Support for newer Java language APIs (

Murat Yener explains desugaring, and how it makes newer Java APIs (java.time,, etc) available on Android.

Selfie2Anime with TFLite — Part 1: Overview (

This is part 1 of an end-to-end tutorial by Margaret Maynard-Reid that demonstrates how to convert a TF 1.x model to TensorFlow Lite (TFLite) and then deploy it to an Android app for transforming a selfie image to a plausible anime.

Sharing Pixelopolis, a self-driving car demo (

Pixelopolis is an interactive installation that showcases self-driving miniature cars powered by TensorFlow Lite

LiveData with Coroutines and Flow — Part I: Reactive UIs (

Jose Alcérreca shares this series of posts implementing reactive UIs using LiveData and Kotlin Coroutines. Part I: Reactive UIs (this post), Part II: Launching coroutines with Architecture Components and Part III: LiveData and Coroutines patterns


Place a sponsored post

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



Senior Android Developer (Remote/UK)

MYPINPAD is the global leader in personal authentication for payment solutions residing on everyday smartphones and tablets. We are looking for a Senior Android Developer who enjoys a technical challenge and embraces opportunities to learn.

Android Engineer (Montana or Remote, USA only)

onX is looking for an Android Engineer with a love for Kotlin and the outdoors. If you’re passionate about writing great software, love playing outside, believe in protecting access to public lands and want to dominate the off-pavement mobile GPS market, then apply today!


Libraries & Code

link image   AndroidBottomBar (

A lightweight bottom navigation view, fully customizable with an indicator and animations.

adb-event-mirror (

Mirror the touch/key/button events of one device onto one or more other devices in real-time

dependency-analysis-android-gradle-plugin (

Gradle plugin for Java, Kotlin, and Android projects. Provides advice for managing dependencies and other applied plugins



link image   The MockK Guidebook (

Announcing a guide to using the MockK testing library.

Learn Android and Kotlin with no programming experience (

Google announced the launch of "Android Basics in Kotlin", a new online course for people without programming experience to learn how to build Android apps.


Videos & Podcasts

link image   The Firebase developer's guide to Google Analytics (

In this video, Sumit Chandel and Kevin Lam walk you through Google Analytics and show you how to get the most out of its advanced features and stay connected to all the metrics that matter.

Android Developers Backstage: Compilers (

In this episode, Chet and Tor talk with Mads Ager from the Android Studio compilers team. They cover a number of subjects, from r8 and d8 optimizations and resource shrinking to work on the Kotlin compiler front- and back-end, as well as the new Kotlin symbol processor.

Android Coroutines: How to manage async tasks in Kotlin (

Manuel Vicente Vivo takes a good look at the current state of coroutines support in Android libraries and tools, explore some interesting and not-so-obvious edge cases