Issue #398

January 26th, 2020

Articles & Tutorials

link image   Bringing an old Android library back to life with Kotlin (

In this article, Christopher Keenan provides some insights into the Java to Kotlin conversion process for a library.

Butterfly Effects (

Zac Sweers maps out how almost every single interesting project, blog post, or conference talk he's done in the past few years can be traced back to a very specific set of rabbit holes he decided to go down.

O(1) Android build time at Tiki (

Tuan Kiet has a modularized project with the “per feature” approach, which means each feature will sit in its own module. Here's how he optimized build times while working on a single feature.

link image   Test, build and deploy your apps with Bitrise (

Automate your entire Android build process with Bitrise: run any Gradle task you wish on our virtual machine, perform virtual device testing with our Firebase integration, and deploy to Google Play as often as you want, with a single automatic trigger. Sign up for a free trial!

Documenting your XML attributes for a Custom View (

Giorgos Neokleous shows how documenting XML attributes for your custom views is as simple as attaching an XML comment.

How fast are your Android CI builds? And why it matters. (

Mark Ng describes a scenario for tracking down slow builds on a CI/CD system.

What’s In Your Toolbox? (

Nate Ebel shares a handful of the tools that he uses and finds helpful during his day to day work as an Android developer, as well as some related/alternative tools to help provide some additional choices to you.

What I learned from Kotlin Flow API (

Stavro Xhardha shares an overview of what he learned about the Kotlin Flow API.

From RxJava 2 to Kotlin Flow: Threading (

In this article, Vasya Drobushkov gives a short recap on threading in RxJava 2 (with some basic caveats on its usage) and then takes a look at how threading works in Kotlin Flow.

Creating A (Basic) Custom Rule For Testing (

Carlos Daniel describes how to write a custom testing Rule to prevent from repeating setup code in all of your tests.

Using LiveData & Flow in MVVM — Part I (

In this post, Süleyman Fatih Giriş explains how to use Flow with LiveData in the MVVM pattern.

The Story of Our Big Android App Rewrite (

This is the story of Aritra Roy and his team's app rewrite, in which he shares why they took this initiative, how they planned and executed it, the challenges they faced, the mistakes they made, and everything they learned in the process.

Enabling dark theme in Android WebViews (

You've implemented a dark theme for your app, but what happens when the user runs into a WebView? Joe Birch shows how the WebKit package has recently worked on adding support for dark theming within WebViews.

Integrating Github Actions for Kotlin Multiplatform (

With Kotlin Multiplatform (KMP) it’s possible to build artifacts for multiple platforms using the same toolchain, but you need to build platform artifacts on their respective platforms. Alec Strong shows how this is possible using Github Actions.

Blogging Ideation (

Since writing more than 450 posts since 2011, Mark Allison has found a process and rhythm for writing blog posts. Here he shares them so that it might help others to find their own blogging voice.

Storing scoped Dagger Components in Android apps (

There’s a lot of articles explaining how to use scopes and create scoped components in Dagger 2, but hardly ever it is mentioned where to store those scoped components. Alexander Sitnikov shares some examples.

Zero-cost* abstractions in Kotlin (

Type safety helps us to write more robust code but historically could have performance implications. Florina Muntenescu describes Kotlin's inline classes, which offer the best of both worlds, type safety without the costs.

Action Links for Discoverability (

Jessica Earley-Cha describes Action Links, which lets you send users from their mobile web browser directly into the Google Assistant and your Action!



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



Android Engineer @ COBI.Bike (Frankfurt am Main, Germany)

The Bosch eBike / COBI.Bike Software Team is looking for a passionate & experienced Android Developer who is enthusiastic about connected mobility and hungry to take on development responsibilities on a new app at our rapidly growing start-up.

Android/Kotlin Developer (Remote)

Work with the world's leading brands on Android/Kotlin projects. From anywhere.

Senior Android Engineer (Kotlin) @ Mobimeo GmbH (Berlin)

Mobimeo is changing the way cities move. We are a technology company working on simplifying everyday mobility in urban centers. Our Android team develops digital mobility applications using Kotlin involving mapping, routing and live navigation topics.


Libraries & Code

link image   Rainbow (

A fluent way to apply gradations and tinting for Android.

fcm-push-plugin (

IntelliJ IDEA plugin to send pushes using Firebase Cloud Messaging (FCM)

RxCentralBle (

A reactive, interface-driven central role Bluetooth LE library for Android

dagger-browser (

Simple tool for browsing Dagger graphs generated via an SPI plugin


Videos & Podcasts

link image   Google Playtime 2019 (

Playtime is a global series of events where Googlers and top developers share the latest news and best practices about how to grow your app or game business and innovate on Android and Google Play.