Issue #415

May 24th, 2020

Articles & Tutorials

link image   The Ultimate Guide to Android Bluetooth Low Energy (

Chee Yi Ong goes over the basics of BLE that Android developers need to know, as well as walk through real-world examples of common BLE operations like scanning, connecting, reading, writing and setting up indications or notifications.

Understanding RxJava Create and fromCallable Operator (

Amit Shekhar compares the RxJava Create and fromCallable operators to help understand when to use each on your use-case.

SavedStateHandle to the Rescue (

Patrick Dattilio describes how to inject persistence into your AndroidX ViewModels.

link image   Build and operate Android apps faster with Bitrise (

From Android-specific solutions to full cross-platform support, we aim to streamline your development process through one, easy-to-use service. Whether you work in Kotlin, React Native, or any other framework, Bitrise is the way to go. Sign up for a free trial today!

Android Unidirectional Data Flow — Kotlin Flow vs. RxJava (

Adam Hurwitz compares and contrasts implementing unidirectional data flow in RxJava vs Kotlin Coroutines' Flow.

Easy Android Scopes (

Ryan Harter takes a look at some of the existing approaches that allow us to create presenters that will live in the context of our views, and then shares an alternate approach that he's used to ensure presenters are properly bound to their view’s lifecycle.

View Binding: The Definitive way to access views on Android (

Antonio Leiva describes View Binding, a new view access mechanism that was released in conjunction with Android Studio version 3.6 which has several advantages that make it the most interesting option today.

🌊 StateFlow, End of LiveData? (

In this article, Shreyas Patil shows how to use Kotlin Coroutine StateFlow in Android in place of LiveData.

Leveraging AssistedInjection to inject ViewModels (

Sometimes when injecting objects using Dagger, things can get tricky if you need a runtime argument to construct your class. Gabor Varadi shows a technique for making this work.

Material Shape: Living On The Edge (

Mark Allison shows how we can change the behavior of how Material 2.0 edges are rendered and this provides us with even more possibilities for customizing our shapes. Since we cannot control the edge rendering from XML, we have to start doing things in Kotlin.

Reification of the Erased (

Generics can be limiting when you need to access type info in a generic function, and the compiler tells you the info doesn’t exist! Murat Yener describes how reification helps with this when writing Kotlin code.

The Result Monad (

In this post Adam Bennett explains why we need a Result class, how it works, what problems it solves, and shows some examples of how we use it at the end.



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



Humbly Confident Senior Android Developer (Remote)

We build “You Need a Budget”, the best budgeting software around. For more than a decade, people have been buying YNAB and then telling their friends how it changed their lives. We're looking for a Senior Android Developer to join us in helping people gain total control of their money.


Libraries & Code

link image   Decorator (

Decorator is an Android library that helps creating composable margins and dividers in RecyclerViews

gradle-static-analysis-plugin (

Easy and consistent setup of static analysis tools for Android and Java projects

TransformationLayout (

Transform into a different view or activity using morphing animations. Using Transformation motions of new material version

ComposeAcademy-Playground (

Playground project for the Jetpack Compose APIs



link image   Say hello to the helpful Firebase Emulator (

Google introduces the Emulator UI to the Firebase community, a local web app that allows you to manage local emulators that make up the Firebase Local Emulator Suite.


Videos & Podcasts

link image   Firebase Hosting, an origin story (

In this episode David East tells you the story of how Firebase Hosting got started. You'll hear from the first ever engineer on the product (Chris Raynor), the current technical lead (Michael Bleigh), and even another engineer (Dahlia Salem) will teach you how to run server code on Firebase Hosting.

Week 6 - Navigation Architecture Component (

This week's lecture by Nate Ebel will teach you how to implement Fragment navigation in your app using the Navigation Architecture Component from Android Jetpack.

AndroidX. Jetpack. AndroidX. Jetpack. Whatever. (

In this episode, Romain, Chet and Tor talked with Nick Anthony and Alan Viverette from the AndroidX team about... AndroidX. And Jetpack. An

Remote work and Mobile DevOps with Joe Birch (

This episode focuses on different aspects of remote work, Mobile DevOps, and how to remain productive from home, featuring special guest: Joe Birch.