TL;DR: I offer declarative strongly typed layouts with data bindings in pure Java. Android UI development is broken. It normally ends up with lots of boilerplate code and poor architecture. Here are some (very subjective) issues: There is no MVC (or M-V-Whatever). XMLs always contain lots of copy-pasted code, very poor code reuse. XMLs are very fragile, so you can type “TextVeiw” and it will not warn you during the compilation but will throw an InflateException in runtime.