The reason why I chose architecture component, because
- easy to test like MVP
- lifecycle safety like MVVM (lifecycle aware)
- supported by Google, which means, google engineers help you to build better app, how awesome is that. (think about the latest saved state to handle configuration changed)
- simple and easy to use with livedata not like RxJava
RxJava is still the best for this in my opinion, with many operators to do data manipulation and also threading.