Issue #401

February 16th, 2020

Articles & Tutorials

link image   Scooter Rental (

Paul Trebilcox-Ruiz created a rental scooter that can be activated remotely using an app.

Using LiveData & Flow in MVVM — Part II (

Süleyman Fatih Giriş continues his series on Kotlin Flow. This time he shows how to remove LiveData (even MediatorLiveData) and use Flow in all layers.

link image   Build A WhatsApp Clone On Android With Kotlin (

In this tutorial, we’ll build a functional clone of WhatsApp with Kotlin. Building a messaging app used to be difficult; in this tutorial, you’ll get a chat experience up and running in roughly 20 minutes.

Integrate Firebase into your native C++ Android game. (

Patrick Martin shows that Firebase has a cross-platform C++ SDK that abstracts away all the platform-specific constructs to get your game talking to the cloud as fast as possible.

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

Bitrise is the place to go for your Android apps. Build amazing apps in Java, Kotlin, or whatever framework you prefer, and use Bitrise to automate your Android integration, build, test and deploy processes quickly and easily. Connect your repo and let us handle the rest. Sign up for a free trial!

Tame Your Gradle Dependencies just BECAUSE! (

Did you know you can specify a reason for using a certain dependency or a certain version of a dependency? Paul Blundell shows you how to do it.

Testing your first Android lint rule (

In this article, Fábio Carballo shows what we have to do to perform unit tests on our custom lint rule. This will ensure non-flaky lint rules, avoiding false positives in the CI pipeline.

Dropping Columns Like It's Hot (

Michael Evans describes the process for removing an unused column from an SQLite table, including how to avoid issues with foreign-key constraints.

Install Referrer Library Permissions Snafu (

Dan Lew shares a workaround for a bug in the configuration of the Play Install Referrer library, version 1.1.

It's about time, Kotlin multiplatform time. (

Christopher Keenan introduces a new Kotlin multi-platform time library.

Fragment Navigation in Android Using FragNav Library (

In this follow-up article, Vasiliy shows you how to implement ScreenNavigator abstractions described in the previous post. In addition, he looks at the FragNav library which is an amazing, but not widely known tool.

Testing Kotlin Lambda Invocations without Mocking (

In this post, Yang shares a simple technique for verifying the invocation of a Kotlin lambda function without mocking it.

Migrating our component library to the Material Button (

In this post, Joe Birch takes a quick look at how we can take an existing Button styling and convert it to a Material Button component.

Android Fragments: FragmentFactory (

This article by Husayn Hakeem explains what a FragmentFactory is, how and when to use it, and how it behaves with nested Fragments.

Animated Icons: Info (

This week Mark Allison looks at animating an information icon, consisting of the lowercase letter i inside a circle, and when the icon state is toggled the letter moves down and then zooms in.

Use view binding to replace findViewById (

Sean McQuillan writes about view binding which gives you the ability to replace findViewById with generated binding objects to simplify code, remove bugs, and avoid all the boilerplate of findViewById in Android Studio 3.6.

Reaktive binary compatibility: how we achieve it (

Yury briefly explains what Kotlin binary compatibility is, its peculiarities and how it has been supported at JetBrains.

Android functional Clean Architecture (

In Kotlin we have the possibility of declaring values of functional type. Lukasz Kalnik shows how we can use them to inject behavior in the classical three-layer Clean Architecture.

Getting Started with Kotlin on iOS, Part 1 (

Ben Asher writes a bit about Kotlin and Kotlin multiplatform from the perspective of an iOS developer. He starts with Kotlin and works his way through multiplatform.



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



Android Engineer (Java/Kotlin) (Berlin)

We're looking for an Android Engineer (Java/Kotlin) in Berlin who will join our international tech team as soon as possible in creating one of the fastest growing companies in the heating market.

Android Developer @ (Remote (EU) or Hamburg, Germany)

Join our app development team to build mail, cloud & mobile communication apps for over 1 million users in the German market. If you like to write clean code with maintainable tests and work with a modern tech stack like Kotlin, MVVM, Koin & Jetpack, apply now!

Intermediate Android Developer (Canada - Vancouver or remote)

Dr. Bill saves time for Canadian doctors by making medical billing delightful (OK... at least suck less). Join us as we accelerate our growth to dominate medical billing in Canada!

Android/Kotlin Developer (Remote)

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


Libraries & Code

link image   OpenPush (

The OpenPush project aims to create a free and open source self-hosted replacement for Android Push Notifications usually sent through Google's proprietary Firebase Cloud Messaging platform.

FragNav (

An Android library for managing multiple stacks of fragments

binary-compatibility-validator (

Binary compatibility validator is a Gradle plugin that ensures the public binary API wasn't changed in a way that makes this change binary incompatible.



link image   JSON To Kotlin Class (

Plugin for Android Studio & IntelliJ IDEA to convert Json String into Kotlin data class code quickly. Supports creating annotations for Gson, Jackson, Fastjson, Moshi, LoganSquare, and kotlinx.serialization.


Videos & Podcasts

link image   Replace findViewById with view binding (

The new view binding library allows you to write concise and safe code with Kotlin and Java. Stay tuned to find out how to use it in your app!

Kotlin Programming Tutorial for Beginners (

Welcome to Nate Ebel's Kotlin programming tutorial for beginners. This tutorial will teach you the fundamentals of Kotlin from creating a simple Kotlin project, writing your first Kotlin function, using advanced Kotlin functions, modeling data using classes and interfaces, how to use the Kotlin Standard Library, and more.

Adopting Multiplatform - Talking Kotlin (

Sebastian has been an advocate for Kotlin at his company and they jumped on board with multiplatform. Hear their story of what path they took to accomplish this and their challenges