Rúben Sousa

I’m an Android developer currently freelancing.

I spend a lot of my free time developing some projects in Android and Java, some of which are open source and available on my GitHub account: https://github.com/rubensousa

You can also find my Android apps in Google Play: https://play.google.com/store/apps/dev?id=7082193994052369988

My most recent app is a helper for a European lottery called Euromillions: https://play.google.com/store/apps/details?id=io.github.rubensousa.euromillions

Recent articles

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

RecyclerView snapping with SnapHelper

The 24.2.0 version of the support library introduced two new classes (SnapHelper and LinearSnapHelper) that should be used to handle snapping in a RecyclerView.

You’ve probably already noticed this in the Google Play app:

As you can see, the RecyclerView snaps to the first item in the adapter.

Read more

ViewPager cards inspired by Duolingo

If you’ve ever used Duolingo, you’ve probably noticed this section:

Looks pretty cool, right? I was interested in learning how the Duolingo team did this, so I started playing with a sample project to achieve the same result.

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