Building native Android apps is fairly simple: just throw some Java code together, add some XML to it and there you have it: a cool new Android app. But also sadly in most cases an unmaintainable Android app in the long run.
For many developers this seems to be just fine but I often asked myself why the code I wrote got more and more messy with every feature I added. I refactored a lot of the code step by step but it still felt very ugly.