Issue #358

April 21st, 2019

Articles & Tutorials

link image   WindowInsets — Listeners to layouts (

Chris Banes shares some methods which make handling insets easier, enabling your app to draw behind the status and navigation bars.

Cold flows, hot channels (

Roman Elizarov describes the differences between hot channels and cold flows, and introduces the new Kotlin Flow concept.

Android Testing with JUnit & mockito (

Ahmed Elshahawi gives an example of how to use JUnit & mockito

link image   Get hired by PayPal, WeWork, Dropbox and more! (

On Hired, companies such as PayPal, WeWork, Dropbox and many more will actually apply to you. Instead of creating multiple job board profiles, join Hired and see what companies you match with.

Hyperion – the “Swiss Army Knife” within your App (

In this post Michał Szydłowski shows us the Hyperion.Hyperion is a simple debug menu with a lot of features, that helps development teams to verify changes in Android applications. There are a lot of plugins that help with common tasks like editing SharedPreferences or monitoring http traffic.

Bring images to life with ARCore and Sceneform: Simple video playback (

In this post by Oleksii Shliama you'll learn how to bring augmented reality to a video playback.

link image   Android Architecture (

Philippe Boisney on his search for the holy grail of Android Architecture.

Modern DateTimes on Android (

All the questions about the java.time package and why it sucks so much. Also a good wrap up why you should migrate your java.time or JodaTime code to ThreeTenABP.

Deep Dive into writing Performance Tests with @JankTest (

Performance testing is something rare that we see in nowadays application development. Great tutorial by Marcos Holgado about how to use @JankTest to detect framerate drops.

Create WhatsApp Stickers Android Application (

In this tutorial you'll learn how to create an app that provides some stickers to WhatsApp.

Dagger 2 on Android: the shiny new @Component.Factory (

In this post Fred Porciúncula explains how to use the @Component.Factory to properly inject application context (or other dependencies) into your object graph. One of the key advantages of this method that it will bring compile time safety. Before, if there were multiple builder methods, it’d be possible to forget to call one of them and the code still compiles. Now there’s always one single method, and whenever we call it we must provide every argument, so it’s not possible anymore to forget to provide a mandatory dependency to the component.

How to manage dependencies in a multi module project? (

In this article Gökhan Alıcı explains different approaches to manage dependencies in a multi module project. He starts with "ext block", then extracting the dependencies in an external file and finally using the "buildSrc" method.

Kotlin DSL design with VillageDSL (

This blogpost by Márton Braun explains different styles of DSL design in Kotlin. It starts with a simple Java implementation and then iterates into more sophisticated DSL styles.

Muselee 16: Q Connectivity – Part 3 (

Third part from Mark Allisons Muselee series.

Kotlin Conversions — 4 Pitfalls You Should Look out For (

In this post Philipp Ebert describes a workflow for Kotlin conversion and highlights the main pitfalls that you should look out for.

MVP in Kotlin Multiplatform (

JT Liew has been experimenting with creating a cross-platform application with Kotlin Multiplatform, and here he shares how to write a mobile application with Kotlin Multiplatform using the MVP pattern.

An Early look at Kotlin Coroutine’s Flow (

Mayowa Adegeye's take on describing Kotlin's new Flow class.



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



Senior Android Software Developer @ Paradox Cat (Munich, Germany)

Looking for senior Android developers to join our team! We are developing human machine interfaces for future cars. You want to work in a state-of-the-art Android/Kotlin greenfield environment? Apply now!

Android Engineer @ Twitch (San Francisco, CA)

Twitch’s Mobile Engineering team is responsible for developing viewing applications for the Android and iOS platforms. As an Android Software Engineer, you will make major contributions to a rapidly-evolving, native app that is a portal to the Twitch community for millions of users.

Sr. Software Engineer - Android Voice & Video SDKs (San Francisco or Mountain View, CA (or remote))

Twilio is growing rapidly and seeking a Sr. Software Engineer for the Voice and Video SDKs team, which enables developers to build rich WebRTC-based media experiences. The SDKs you build will have the audience of 2M+ developers building with Twilio.

Android Developer - Building a bank from scratch (London)

Starling Bank engineers love building things, creating new stuff, learning new technologies & working with others across all areas of the business to bring brilliant products & features to life. If you care enough to find elegant solutions to difficult technical problems, we’d love to hear from you.

Senior Android Engineer at BabylonHealth (London)

Looking for a few Android engineers to join our team of 17 to help provide affordable and accessible healthcare to everyone on earth! MVI setup with clean architecture, 50% Kotlin, and a big focus on doing things properly.


Libraries & Code

ThreeTen Android Backport. (

An adaptation of the JSR-310 backport for Android.

Needs (

🌂 An easy way to implement modern permission instructions popup.

MethodScope (

Interesting approach to reduce repetitive inheritance works in OOP world using @MethodScope. It's useful if multiple screens have a lot of common setup and teardown code.



link image   Applications open for 2019 Indie Games Accelerator (

Indie Games Accelerator is a program for top indie game startups from select emerging markets who are looking to supercharge their growth on Android


Videos & Podcasts

link image   What’s new in Android Studio 3.4 (

The Android Studio 3.4 release introduces the following features: Resource manager, updates to the Project Structure dialog, automatically importing Gradle libraries, R8 enabled by default and its support for Android library projects.