Issue #307

April 29th, 2018

Articles & Tutorials

link image   Introducing Constraint Layout 1.1 (

Constraint Layout 1.1 was recently released as stable and there’s a lot to love. Android Developer Advocate Sean McQuillan describes the numerous improvements in this new release.

Pro Android Studio - Refactoring (

This post by Jeroen Mols zooms in on the most useful refactoring options of Android Studio.

How to reproduce Dagger functions or develop your own DI in Kotlin? (

In this article, Marcin Jeleński shows you how basic Dagger features can be easily replaced in Kotlin, and in the two following parts, he’ll cover testing, mocking and advanced Dagger usage.

Android and App Engine with Kotlin (

iñaki villar shows how to build App Engine backends for Android mobile apps.

link image   Mobile Continuous Integration and Delivery for you (

Bitrise automates build, test and deployment for Fox, InVision, Grindr, PagerDuty and the community of 40K+ developers. Craft powerful workflows with 170+ integrations and run the same config locally with our CLI. Sign up to Bitrise and deploy your Android app in minutes

Coroutines and RxJava — An Asynchronicity Comparison (Part 4) (

Manuel Vicente Vivo continues his series, introducing a library for interop between RxJava and Coroutines.

LiveData with SnackBar, Navigation and other events (

A convenient way for a view (activity or fragment) to communicate with a ViewModel is to use LiveData observables. Jose Alcérreca shows you how it's done.

ImageDecoder – Error Handling, Cropping, & Scaling (

Mark Allison continues the series looking at the new ImageDecoder API, now delving into error handling, cropping, & scaling.

A Dagger to Remember (

Artur Dryomov has gone about removing simple Dagger implementations to help improve build times. He shares several examples of how this can be done using Kotlin.

An introduction to java.time (

With Java 8, the standard library now contains one of the best date/time APIs in any language. java.time does not allow “sloppy” code anymore – it is very explicit.

OAuth in your app using Chrome Custom Tabs (

Raveesh Bhalla needed to update login in his app from plain WebViews to Chrome Custom Tabs as required by Google. Here's how he did it.

Writing precise bug reports (

This post by Daniel Hauschildt is not necessarily Android related. It's about software development and release management in general. To be more precise it's about writing precise bug reports. Daniel gives you some good tips about the must haves of a bug report and also the little caveats where the devil is in details.

Dynamically change bundled strings (

In this article Hamid Gharehdaghi will walk you through the process of dynamically changing your bundled strings. First he demonstrates a repository pattern to replace the standard Android mechanism then he introduces the restring library that exactly solves this problem. Be sure to check out the library as well.

Mastering Android Themes - Chapter 1 (

In this four part series Gaurav Khanna walks you through the process of mastering Android themes. In the first chapter you'll learn how to implement it the naive way and what pitfalls to avoid. In the following chapters he'll refine the techniques and demonstrate how to do theming the right way.



Place a sponsored post & reach over 64k Android devs (



link image   Previewing Material Design 2.0 (

Raveesh Bhalla has been keeping a very close eye on various different apps and websites Google’s launched ever since the first rumors of Material Design 2.0 emerged a few months ago.



Android Engineer (Zurich, Switzerland)

Responsibilities include but are not limited to developing, releasing, monitoring and maintaining native Android applications.


Libraries & Code

ThreeTenABP (

An adaptation of the JSR-310 (java.time) backport for Android.

Restring (

Replace bundled Strings dynamically, or provide new translations, for Android.



link image   Embedding Kotlin Playground (

JetBrains has enabled embedding runnable Kotlin code in web pages.


Videos & Podcasts

link image   ConstraintLayout Tutorials (

In this video series, you will learn, how to use the ConstraintLayout. You will learn how to use the visual layout editor, how to set and remove constraints and how to use the different features that the ConstraintLayout has to offer, like chains, guidelines, barriers, groups, aspect ratio and more.

Why MVI? Model View Intent -- The curious case of yet another pattern (

At Droidcon Boston 2018, Garima Jain presented on what the MVI pattern solves - The State Problem, how it solves it.