Posted on

Top 3 Worst Things About Android Development


worst things about android development

 Designed by Freepik

Despite how great Android development is and how much I enjoy it over any other platforms – it has few things that I hate. Pretty sure everybody here will agree on those

Build Times

I’m going to talk about mainstream Android development environment – Android Studio with Java/Kotlin and Gradle

Build times are really horrible. I have 8 GB of RAM, i5, HDD and code both on Linux and Windows. Windows performs actually better I think

Initial builds ~ 1.5 – 2 minutes, incremental of 1 minute. But with every build system gets slower and slower. Then you come to the point where just incremental build takes 5 – 7 minutes and by that time system is dead, I mean OS doesn’t respond to anything, you just wait for build to complete. Plus after such a long build I actually forget about what I wrote and what to test

And this happens not after 100 builds, just about after 20. Restarting system helps a bit

I’m not the kind of guy who can just write code for hours and then just click build button and get everything working. I get so many bugs during development, that I need to build almost every minute when building layouts or debugging and fixing bugs

Manifest Merger Error

Most of the times you get this error with exact particular reason message, like

this attribute has different value in other manifest, so add tools:replace

But I think with Instant run there’s a new bug. This manifest merger error doesn’t give you any reasoning message. It could even happen during just few incremental builds. And you keep looking maybe for some manifest error that you made or maybe new library’s manifest that you added

Fortunately in most cases it resolves with just cleaning build. But it’s a pretty confusing error message and I recently got it during branch merging, besides multiple merge conflicts – I got this one, so it was total hell, which took me few hours to fix

Data Binding Error Messages

I use Data Binding everywhere and enjoy it very much, but error messages it gives are just amazing. It take print you 25-40 error messages, depending on number of layouts with <layout/>. You’ll get an error for each of them

Just some meaningless messages like: “Could not find MyActivityLayoutBinding class” or something. It happens during layout building most of the time and it’s very confusing, like

Ok, I get it, it’s a layout error, but I have 50 of them, do I need to go through every of them?

Luckily, I think I figured how to get to the actual source of the problem – you need to scroll to the very bottom of all those numerous meaningless error messages, the last one usually is an actual message. Like wrong Data Binding statement or if you declared your own Binding Adapters – attribute not found or any other one

Still The Best

In everything else – Android development is really enjoyable. I will create few posts like Android development vs JS front end vs iOS

Java or Kotlin are both static types compiled languages which makes Android development already great. Plus Google have great docs, if you look at Apple documentation – it looks like 8 years old

And if you ever tried to publish an app to App Store – those 5 – 8 minutes of building release Android apk and then uploading it to Play Store is F-1 fast compare to iOS experience

It takes 1 hour+ to just build release and upload it to Itunes Connect and then it needs to be verified by Apple team, which takes multiple days as well

 

Tell me about things that you hate about Android development as well!