Issue #444

December 13th, 2020

Articles & Tutorials

link image   How To Write Better Tests With JUnit 5 Android (

JUnit5 in Android brings a couple of exciting features over the standard JUnit4. In this article, Vlad Sonkin shows how to introduce JUnit 5 to your project and how to write better tests.

Certificate pinning with OkHttp (

Certificate pinning ensures that your app will only connect to a server that has a specific certificate, not just a valid certificate. Bevan Steele shows how to do this when using OkHttp.

link image   GamesBoost42 - funding for your apps done right (

Need money to scale, launch in a different country or just looking to publish an app yourself? You don’t need to look for investors or beg publishers just use GamesBoost42! If you ever need funding for your app - visit to get up to $2M in funding for your existing apps and games.

Declarative UIs with Kotlin MultiPlatform (

A 3-part article by Daniele Baroncelli explaining the new D-KMP architecture, based on DeclarativeUIs, Kotlin MultiPlatform, and MVI pattern.

link image   Out Now: New Kotlin Chat Tutorial (

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.

Dagger in Multi-Module Clean Applications (

In this tutorial, Pablo L. Sordo Martinez shows how to integrate Dagger in an Android multi-module project built using the clean architecture paradigm

How to make a RecyclerView in Jetpack Compose (

Making a RecyclerView involves a messy pile of boilerplate and complexity even for basic tasks, like headers, item callbacks, and multiple item types. Ian Alexander shows how Jetpack Compose makes lists simpler.

Apollo Android GraphQL Flow Bindings (

Mohit explores how the Apollo-Android library gives you the ability to use Flows when making queries.

Handling backpressue in Rx Java 2 (

Ninad MG defines what backpressure is and takes a look at how to handle it in RxJava 2.

Machine Learning with Android 11: What’s new (

Rishit Dagli demonstrates how you can get started with on-device ML with tools or plugins specifically launched with Android 11.

App Startup, Part 1 (

Chet Haase shows how the AndroidX App Startup library is specifically aimed at minimizing the impact of initialization that happens automatically because of content providers.

Adapting to ListAdapter (

Meghan Mehta shows how it only takes a few steps to convert your RecyclerView to use ListAdapter. Now your application can automatically get better performance and a better user experience by using ListAdapter

Using Retrofit and Alamofire with Kotlin Serialization on KMP (

Marco Gomiero shows how to implement a Kotlin Multiplatform Mobile application that performs a network call on the native side with Retrofit (on Android) and Alamofire (on iOS) but the DTOs are defined on KMP side as well as the information about deserialization.

Converting Firebase API Callbacks to Kotlin Flows (

Nick Skelton's short guide on when and why to use the callbackFlow builder function in Android.

KTX: Graphics (

Mark Allison examines some of the KTX extensions for the Android graphics APIs. Combining these can have a significant impact on the size and readability of code performing complex drawing operations.

Android Views as a Function of State with ViewBinding Case Study (

This post by TJ is part of a series that shows how Views in android can be represented purely as a function of some state with no side effects helping to build a robust, easy to scale and maintain app with the help of ViewBinding.

Migrating Your Design System to Jetpack Compose: Part 2 (

In Part 2 of this series on migrating design systems to Jetpack Compose, Adam Bennett talks about custom theming, building on top of existing APIs, how to minimize risk from relying on a rapidly changing library, and poses a question about API design.

10 Engineering Challenges Due to the Nature of Mobile Applications (

This series of articles by Gergely Orosz collects challenges engineers face when building native iOS and Android apps at scale.

Swift’s Guard Statement for Kotlin (

A convenient Swift keyword is the guard statement, a really nice tool Swift developers have that we are missing. Danny Preussler asks (and answers): Can we bring it to Kotlin?

Android ADB Tricks for your shell to boost your productivity (

Here's an overview of different scripts Mike Penz uses on a daily basis.


Place a sponsored post

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



link image   The ioki Design Days (

As a mobile app developer or app designer, you start noticing that the published app starts to look different than the designs. Stefan shares a good idea of how developers and designers can work together to improve this.



Senior Android Engineer (Remotely within the UK)

We are looking for a Senior Android Engineer who possesses a passion for pushing mobile technologies to the limits. This Android app developer will work with our team of engineers to design and build the next generation of our mobile applications. Take a look at our job spec for more information.


Libraries & Code

Gradle Doctor (

Gradle doctor helps you fix performance problems and errors in your Gradle build



Dual-screen library update with Jetpack Window Manager (

Andrei announces version 1.0.0-beta1 of Microsoft's dual-screen libraries for Microsoft Surface Duo, which integrates Google’s Jetpack Window Manager support

Improving urban GPS accuracy for your app (

In addition to 3D mapping aided corrections, Google continues to work hard to make location as accurate and useful as possible.


Videos & Podcasts

Material Design Components: Community tip (

Google Developer Expert (GDE) for Android Zarah Dominguez gives us a tip on how to use the MDC catalog app to explore features of Material Components, and how building your own catalog can give an overview of your design system.

Android Developers Backstage: Ok, Ok, Ok (

Romain, Tor, and Chet talked with Jesse Wilson from Square.

Understanding Continuous Integration (

In this week's episode, Nate Ebel chats about a topic near and dear to his heart; continuous integration, or CI, as it's more commonly referred to.

Talking Freelancing with Mark Alison (

In this episode of Talking with Apples, Peter-John Welcome talks to Mark Alison, an experienced Freelance Engineer about being a mobile freelance engineer, how community contributions help with finding work, some pro's and cons about freelancing, and how freelancing can make you a little more money than being a permanent employee.

Gradle Doctor with Nelson Osacky (

In this episode, The Developers' Bakery talks about Gradle Doctor with its author Nelson Osacky. Gradle doctor helps you fix performance problems and errors in your Gradle build. The tool works as a Gradle plugin - emitting prescriptions for all the problems found.