My opinions are based on my own experience working with different implementations of MVI applied to both personal projects and at my day job.

To begin with, let me say that MVI looks very appealing at first sight. It combines patterns like Command and Observer and makes good use of functional reactive programming techniques. In short, MVI sort of defines a meta-architecture where every action the user can take is defined by an `Input` class and every state a view can be in must also be defined by a subclass of the `State` class.

I’m assuming you already know how…

Don’t eat mushrooms, kids. Video demo:

I decided to learn C++ as step towards understanding more about the fundamentals of computer science, programming languages and graphics programming in general.

Game development has been a hobby of mine for a long time. writing a game seemed like a fun project to start with. After reading some books on C++ I decided to clone the Italian plumber platformer.

In this post, I want to talk about aspects I found interesting about learning C++ coming from the JVM world. I also want to shed some light into the process of building a “simple” game using the Entity Component System

Notes by Fabian Grohs

I found coroutines a bit counter-intuitive at first glance, so I figured I would document the unintuitive bits here as a future reference for myself and anyone else interested. I’ll try to keep it short.

Let’s say we want to perform an asynchronous operation using Coroutines. To start off really simple, we’ll assume this operation doesn’t even return anything back:

async work started...
async work done!

Easy enough, right?… Now, let’s pretend we want to make our code more ‘modular’. To achieve this we want to extract “async work” into a separate function:

Here the compiler…

I’m writing this article to have a handy reference on how to fix issues that arise when trying to use Mockito and Kotlin together. There are many articles that provide an in-depth explanation on what causes these problems and how to solve them linked below, so please check them out if you are feeling curious.

Final methods and classes

By default, Kotlin classes and methods are final. Mockito doesn’t support mocking final classes and methods out of the box.


Create a file named org.mockito.plugins.MockMaker and place it under test/resources/mockito-extensions with the following line inside


If you are feeling particularly lazy, you can download…

In this article I will try to describe how to build a Event bus using RxJava through an example: A very simple app that displays random Chuck Norris jokes (or are they facts?). When the user requests a new joke (trigger), we will fetch a joke from the server (action), save the joke to the DB (side effect) and notify interested observers , if any (notification). A more generic version of the above would be:

A trigger requests an action to be performed, side effects take place, and interested parties are notified, if any.

If any? Yes, if the trigger

Fernando Raviola

Software engineer, Android enthusiast, Traveller

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