I recently published this post — Library Review: Material Tap Target Prompt for Android. I tried some other libraries such as this one. Here’s my review and comparison.

ShowcaseView is a library to create targeted prompts to show little explanations given a coordinated position in the screen. It is limited in customization in order to improve its easiness to implement.

Here’s the code

in build.gradle

And this is my activity


Have you ever see a tutorial prompt pointing to very specific UI elements with an explanation of what it does? Although I’m working in a project that does so from scratch, I found a library that works great and shows the same behavior.

The Material Tap Target Prompt allows you to see create targeted prompts to show little explanations of certain visible items in the screen. It also allows some customization such as background, font colors and gravity of the texts.

Although I’m following the basic tutorial (in Java) I thought it could be nice to run the whole basic…


Singular/Plural text is a very common problem in programming since the first days of GUI’s. Reason is that it is an unforgiven grammatical error to say “1 items in stock” instead of “1 item in stock”. In this post I’ll bring different approaches to fix this.

If the problem is the language, not the programming language…

An incredible common dull fix to the problem. Set a (s) at the end of the word that might change if the count is bigger than 1. It works? Absolutely! Can you use it right now? Yes!


Maybe a very basic question but I implemented a quick way to catch when the user’s device is ringing. This solution includes Broadcasts and TelephonyManager’s states.

Here’s the code…

To allow us to read the device’s state, in your AndroidManifestFile.xml add this in the permissions section.

Add a new class in your project that extends BroadcastReceiver class. Implement the method onReceive() and subscribe to any changes to the phone state from TelephonyManager class


Activity Recognition is an API that help us know if a user is in movement or standing still. In this post I’ll share an idea that you can implement in your projects that may avoid accidents in the real life.

In context

Safety first. How many times are we walking in the streets and find other persons texting while driving or walking without putting attention to the road while watching their smartphones? According to Edgar Snyder’s site there are very alarming statistics, only in US, that sadly happens everywhere. …


Clickable links are a very common technique used in HTML to send to further information (as you can see at the end in any of my posts). Even so, this is very uncommon in mobile development. There’s an explanation for it although some times this is inevitable. In this post, I’ll give you an example on how to use ClickableSpan and SpannableString classes to make it happen in Android.

In background

In HTML, is very common to see a text with a link to another page. This is called anchor. When an anchor is called in an HTML script, an…


In my last post, I mentioned the Algorithm that Android uses to know which UI elements to show in a screen and how it decides which elements should be closer to the user’s view. In this post I will explain how this algorithm works.

In Context

Let’s consider we’re watching a picture. In this picture you can see the mountains in the far, a lake in the middle and some trees nearer. So these three “layers” of elements are more detailed depending on how close or far they are. The mountains are just a blur in the back with just…


While debugging an old app I wrote a couple of years ago, I found that I was wasting a significant amount of GPU with no explanation. In this post, I’ll try to explain what Overdraw is and how you can detect if your app is having this problem.

In context

The Graphics processing unit (or GPU) is a physical part of a computer that generates, manipulates and displays the graphics to be seeing by the user. All the applications running in a computer with a Graphical User Interface (or GUI) uses the GPU to display buttons, messages, etcetera. …


Shallow and Deep copies are very basic definitions used in programming languages such as C and C++. It might be a little bit confusing if your dominant programming language is Java. In this post, I’m going to review this definitions with an approach to Java programming language.

Consider the following code script:

Why do this assertEquals doesn’t fail?

In Java, once a variable is instanced (userA = new User()), a reference in memory is created by the virtual machine and this reference is attached to the…


With the new addition to dark mode in Android, I’ve been updating my old projects to allow the dark mode to be used when possible. Although this mode should work automatically, there are certain times you’ll want to know when you’re using light or dark mode. In this post, I’ll show you how to check if this feature is on and I’ll give you an explanation why this work.

In context

Dark mode is an alternative in the UI to show your whole app in darker colors, which reduces the power usage and makes more comfortable to those who are…

Saidel López

Java/Kotlin/Android Developer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store