It’s Been Real, Android: Why I’m Retiring from Android
Just like the web platform, Android is hugely improved when you leverage the community libraries and tools they provided. Gradle actually helps a lot with that, since its clear dependency management makes use of external libraries a breeze.<p>If in 2016 you're still complaining about AsyncTasks and its management, you certanly have missed a lot of progress in the last few years. It's not unlike having people complain about JavaScript issues without ever looking at jQuery, React or newer tooling.<p>The most useful things you can do for yourself currently are:<p>* Adopt Kotlin as a language. It's not all that different from Swift, comes with IDE support, tiny standard library and really fixes the pain of Java 6.<p>* Use MVP patterns and its friends. There are a few libraries which take most of the pain of lifecycles away.<p>* Use RxJava, Retrofit, Glide, etc. libraries that make your life easier with concurrency. A lot of these tools are better and easier to use than what even exists on iOS. Using AsyncTask in 2016 is just silly, it was never a good API.<p>* Use Gradle! Driven by its scripting language, you can do so much to script and automatize your build.<p>Other than that, I agree, after years of development:<p>* Some Android APIs just aren't well thought out.<p>* Gradle badly needs performance improvement.<p>* State of NDK is just sad. Fixable, but sad.<p>* MultiDEX is a result of a very very dumb decision in Android 1.0 and it's going to hurt us for a long time :/<p>All-in-all, I honestly think the author didn't really look into Android all that much to have complaints that he had. The blog post is somewhere on the level of someone complaining about IE6 JavaScript bugs when we've already moved on to React and are dealing now with very different issues.<p>(And no I'm not saying Android is great or even a great platform. It's not. It's just that, just like on Web, you can do a lot to fix major pains.)