DpadRecyclerView - A RecyclerView built for Android TV

When I first started working in Android TV in a project back in 2018, androidx was still a new thing and Leanback was the standard guide for building Android TV applications.

In fact, Leanback still is the recommended way by Google to build TV apps and the androidx libraries contain some helpers for TV UIs: https://developer.android.com/training/tv/start/start#tv-libraries

However, these libraries are too opinionated and not really flexible enough.

In this post I will go over the motivation for a new component for Android TV.

Read More

Using GitHub Packages for Android projects

GitHub has released GitHub Packages last year. You can now easily host your private libraries without subscribing to another service.

In this post, we’re going to setup GitHub Packages to publish an example Android library.

We’ll be following these steps:

  1. Creating credentials for accessing GitHub’s maven repository
  2. Publishing an Android library to GitHub’s maven repository using a Gradle plugin
  3. Installing an Android library in another project

The sample project is available on GitHub here: https://github.com/rubensousa/AndroidGithubPackage

Read More

A different raised button behavior

Since Material Design was introduced, Android has 3 main types of buttons:

  • Floating action buttons
  • Raised buttons
  • Flat buttons

According to the spec, the raised button definition is:

A typically rectangular material button that lifts and displays ink reactions on press.

But why should it lift? Does your finger work like a magnet? When you press any real button, the force you apply makes the button go down.

Read More


The support library 23.2.0 introduced a couple of classes to create BottomSheets, so I figured out we should have an easy way to setup a simple BottomSheet with some options.

Read More