As promised in my last article, here I am back again with the grid canvas we used to replicate IntelliJ IDEA’s splash screen. This time I will be explaining how to implement some additional features.

Content alignment

We want our composable to have the ability to set where the cells will be…

The latest version of IntelliJ IDEA (2021.1 at the time of this publication) has a cool splash screen based on a grid containing different coloured shapes like this below:

IntelliJ IDEA 2021.1 splash screen

The goal of this post is to implement a Jetpack Compose composable that mimics this pattern.

As we can see the…

When starting to work with Jetpack Compose (now that it is in beta 🎉) and stateful components, we easily get used to define values based on a mutable state which are also remembered. But there are two independent concepts when we write a line of code like below:

var clicks…

Photo by Science in HD on Unsplash

Writing stable and reliable UI tests is neither easy nor trivial. There are multiple factors applications depend on that UI developers can’t control. Network is a very common external dependency that can produce test instability. …

If you have been in the Android ecosystem for a while, there is a chance that at some point you needed to show a list of items on the screen grouped by a given criteria in the form of a header. Something like:

After spending the last weeks working on a library, today, I am happy to announce the first beta release of poetimizely. (Thanks to Ralph who is contributing to the project 🙂).

What is poetimizely?

poetimizely is a library to generate type safe accessors for Optimizely experiments and features.

Type safe means that referencing…

One of the things that feels much different in Kotlin compared to Java is the type system. The void keyword for example is not present in Kotlin, so Unit type is used instead:

fun functionReturningNoValue(): Unit {

I would say that this approach is more consistent than using…


This is an easy one, Any is just the “root” type, so every other type extends from it. It is like Object in Java, in fact, the compiled code for a value of type Any is an Object.

// Kotlin

val greeting: Any = "Hi there!"

// Java

private final…

When it comes to decide between using an enum or a sealed class in Kotlin, I’ve seen several situations where developers where using them indistinctly.

Generally speaking, sealed classes are more powerful than enums. …

Whenever we write a new class in Kotlin, we may feel tempted about defining as a data class. But should every class which is a data holder be a data class? I don’t think so. …

Patxi Bocos

Impure developer and functional programming enthusiast

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