How to live better without Dependency Injection

(I’ve just learned Dagger, what is wrong? Imagine my anxiety now, I am NOT happy seeing an article with this title! I hope that the author does not have any idea!)

Five years have passed since my first Dagger 2 article. It is time to write the last one. We do not need Dagger anymore. In fact, we didn’t even need it in the first place.

Read →

When to NOT use RxJava

RxJava is very powerful. It solves a great amount of tasks easily. But using it in wrong places can turn any codebase into an unmaintainable and buggy mess. Here I will try to explain where RxJava can help and in which cases it is better to avoid using it.

Read →

Managing state reactive way

RxJava nice and easily covers our multithreading needs. But it provides only a half of the solution. While we can compose functions with RxJava, there is no safe way we can have our state (field variables) handled without race conditions and low-level synchronization blocks.

This article describes a simple and practical way for solving multithreading issues that appear even when we’re using such advanced technology as RxJava.

Read →

Why lambdas matter (even on Android)

A little knowledge exchange from an active lambdas user.

Term: Lambda is an anonymous function.

Read →

RxJava magic (finally) goes away

There is too much “magic” inside of RxJava.

Docs and tutorials are either too shallow or too complicated.

Here is the middle ground that is essential to know before playing with RxJava.

In these tests we will take each RxJava part… apart and explore how exactly it works.

Read →