Issue #402

February 23rd, 2020

Articles & Tutorials

link image   Kdoc for Android libraries using Dokka (

A great way to make your library easier to use it to generate code documentation for its public interface. Jeroen Mols covers some challenges in configuring Dokka and explain some neat tricks to improve your documentation.

Kotlin Flow Assert Delight (

Mohit found a nice pattern used in the SQL Delight library for Flow assertions. In this article, he describes how this pattern works.

link image   Receive better bug reports with Shake (

Shake is a lightweight SDK that offers a plug ’n’ play bug reporting experience. Integrate with your native Android app and receive a testers activity history, network logs, device data & attached files out-of-the-box with each bug report. Sign up for free today.

Generate Kotlin Docs using Dokka (

Have you ever generated Kotlin docs (Kdocs) for your library/project? Stavro Xhardha demonstrates how to do this.

link image   Bitrise - CI / CD for your Android apps (

From Android-specific solutions to full cross-platform support, we are here to streamline your Android development process through one, easy-to-use platform. Connect your repo and let us handle building, testing, and deployment for you. Sign up for a free trial!

Encrypted shared preferences (

Bevan Steele describes how to encrypt shared preferences using a relatively new Jetpack library that offers easy-to-use access to encryption-related functions for Android developers.

Uploading an app bundle to Google Play Internal App Sharing (

Previously, Jake Lee showed how to generate app bundles on your CI server. The next step is to send them to Google Play Internal App Sharing!

Mastering Android Emulator SIM card (

Nowadays the emulator is much faster with better performance and with easy settings option, except when it comes to SIM card settings. Filipe Batista shares some tips when working with them.

Overview Guide To Tensorflow 2.x with Examples - NintyZeros (

In this blog post, Venkat goes over the basics for TensorFlow 2.x. This can be used as getting started guide to learn and understand it.

Exploring Jetpack Compose: Modal Drawer Layout (

Previously Joe Birch showed how to add a top app bar, and now takes a look at creating the navigation drawer itself using Jetpack Compose.

Migrating to Kotlin—what to look out for (

John Butterworth and his team have been gradually moving their Android app codebase over to Kotlin from Java. There are some tools to help developers, but there are a number of pitfalls to be aware of when it comes to the converter and the interoperability between the languages.

Returning Data to Previous Screens in Android Applications (

In some cases, you need to navigate back from the “next” screen to the “previous” one and return some kind of data to it. Vasiliy Zukanov describes several approaches that you can use in your Android application to return data to previous screens.

Exploring the Android 11 Developer Preview: Permission Changes (

With the announcement of Android 11 Dev Preview, Joe Birch shows some changes to how the system operates when it comes to permissions and how this will affect applications.

Location (

An exploration by Mark Allison of how determining location is getting more complex and some things that we should be giving consideration to.

Is Your Kotlin Code Really Obfuscated? (

Idan Atsmon shows how compiled and obfuscated Kotlin code might be leaking information about your implementation, and how you can clean it up.

An efficient way to use Uniflow (

This article by Marcin Chrapowicz is about how you can use uniflow, what is the benefit of using this library and how easy it is to use it.

A Dependency Injection Showdown (

Choosing a dependency framework for your Android app is a big decision. Mark Ng compares 4 popular frameworks: Dagger, Koin, Kodein, and Toothpick.

Kotlin: fun with “in” (

One of the tools in Kotlin that allows us to achieve greater determinism is the language’s 'when' expression. Patrick Cousins shows how this can be quite powerful when paired with the 'in' keyword (and associated 'contains' operator).

Cheatsheet about Dagger (

Manuel Vivo shares a series of cheat sheets about how Dagger subcomponents and component dependencies work under the hood.



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



link image   Implementing Motion (

Jonas Naimark introduces Material Design’s new motion system and transition patterns.



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.

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!


Libraries & Code

SSCustomEditTextOutLineBorde (

CustomEditTextOulinedBorder is a small kotlin library for android to support outlined (stroked) text in EditText widgets same as Material Design Outlined Box but without Floating Label.

shimo (

Shimo is an adapter for Moshi which randomizes the order of keys when serializing and deserializing



link image   Native Dependencies in Android Studio 4.0 (

With version 4.0 of the Android Gradle Plugin, Google has addressed adding support for distributing and exposing native libraries through the same mechanism that you do for Java libraries: Android AARs.

LottieFiles for After Effects (

Supercharge your Lottie workflow with the LottieFiles for Adobe After Effects

The first Developer Preview of Android 11 (

Google's releasing the first Developer Preview of Android 11, and building on a strong feedback cycle last year, they’re making this year’s preview available to you earlier than ever.

Announcing the Firebase Crashlytics SDK Beta! (

With the Firebase Crashlytics SDK, you can remove all Fabric dependencies, such as references to Fabric’s APIs in your code, giving you a much cleaner codebase


Videos & Podcasts

link image   SQL-like joins in Cloud Firestore Part 1 (

Use the power of Cloud Functions to create SQL-like joins in our Cloud Firestore-powered app.

The 2038 Problem (

We’ve all heard of the Y2K problem, but there’s also a similar coming up this 2038 for us programmers. In this episode Donn & Kaushik dive into the 2038 problem.