When you work in a client side application, you always wait for something to happen, an event. This isn’t happening only in Android, in every client side application I’ve worked (regardless of technology) you always wait for the user’s input. It could be a button click or something else, but that’s the whole meaning of interactive apps. It makes sense then to design your code structure based on this principle, you always wait for an event. It also makes sense to keep the event communication happening through a single object, otherwise your code can become a nice ball of spaghetti really fast! The Otto event bus can be that object for you.