I’ve worked a lot with LiveData and I think it is a great solution to save the UI state and observe it from the view layer without worrying about lifecycle issues, but…

What is wrong with LiveData?

This great data holder class in some cases is misused, in particular I have seen this two problems:

  • It is used everywhere, for example in the repository layer
  • Not knowing the difference between setValue() and postValue()

I don’t want to dive into the details of this two problems, a lot has been written about both of them, but to summarize: the first one will lead to performance issues…

Recently I have faced one problem on an android project related to RxJava, but first I want to explain two important things:


Acronym for “Application not responding”, if you are an android developer and you don’t know this concept, you should.

ANR is one of the Android Vitals, these are metrics related to the perfomance of your application, tracked by Google. This Android Vitals really affects the ranking of your app and you should take care of it if you want to deliver an app with good quality.

This message will be shown to the user every time your…

When you have a big application with more than ten or twenty modules, dagger will give you some headaches if it is not implemented right.

The problem

Imagine an app with a lot of modules, in this app to inject some object to module A you need to add a dependency to another module B, but what happens if module A already depends on B? You have a circular dependency, and also you should know which module provides that object, believe me in large projects it is not good.

But worst, this nightmare of dependencies between modules provokes that you waste the…

Federico Torres

Senior Android Engineer at Cognizant Softvision

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