73

I have been a mobile developer working with Android for about 6 years now. In that time, I have endured countless annoyances in the Android development space. I will endure them no more.
My complaints are:

1. Ridiculous build times. In what universe is it acceptable for us to wait 30 seconds for a build to complete. Yes, I've done all the optimisations mentioned on this page and then some. Don't even mention hot reload as it doesn't work fast enough or just does not work at all. Also, buying better hardware should not be a requirement to build a simple Android app, Xcode builds in 2 seconds with a 8GB Macbook Air. A Macbook Air!

2. IDE. Android Studio is a memory hog even if you throw 32GB of RAM at it. The visual editors are janky as hell. If you use Eclipse, you may as well just chop off your fingers right now because you will have no use for them after you try and build an app from afresh. I mean, just look at some of the posts in this subreddit where the common response is to invalidate caches and restart. That should only be used as a last resort, but it's thrown about like as if it solves everything. Truth be told, it's Gradle's fault. Gradle is so annoying I've dedicated the next point to it.

3. Gradle. I am convinced that Gradle causes 50% of an Android developer's pain. From the build times to the integration into various IDEs to its insane package management system. Why do I need to manually exclude dependencies from other dependencies, the build tool should just handle it for me. C'mon it's 2019. Gradle is so bad that it requires approx 54GB of RAM to work out that I have removed a dependency from the list of dependencies. Also I cannot work out what properties I need to put in what block.
4. API. Android API is over-bloated and hellish. How do I schedule a recurring notification? Oh use an AlarmManager. Yes you heard right, an AlarmManager... Not a NotificationManager because that would be too easy. Also has anyone ever tried running a long running task? Or done an asynchronous task? Or dealt with closing/opening a keyboard? Or handling clicks from a RecyclerView? Yes, I know Android Jetpack aims to solve these issues but over the years I have become so jaded by things that have meant to solve other broken things, that there isn't much hope for Jetpack in my mind 😤

5. API 2. A non-insignificant number of Android users are still on Jelly Bean or KitKat! That means we, as developers, have to support some of your shitty API decisions (Fragments, Activities, ListView) from all the way back then!

6. Not reactive enough. Android has support for Databinding recently but this kind of stuff should have been introduced from the very start. Look at React or Flutter as to how easy it is to make shit happen without any effort.

7. Layouts. What the actual hell is going on here. MDPI, XHDPI, XXHDPI, mipmap, drawable. Fuck it, just chuck it all in the drawable folder. Seriously, Android should handle this for me. If I am designing for a larger screen then it should be responsive. I don't want to deal with 50 different layouts spread over 6 different folders.

8. Permission system. Why was this not included from the very start? Rogue apps have abused this and abused your user's privacy and security. Yet you ban us and not them from the Play Store. What's going on? We need answers.

9. In Android, building an app took me 3 months and I had a lot of work left to do but I got so sick of Android dev I dropped it in favour of Flutter. I built the same app in Flutter and it took me around a month and I completed it all.
10. XML.

If you're a new dev, for the love of all that is good in this world, do NOT get into Android development. Start with Flutter or even iOS. On Flutter and build times are insanely fast and the hot reload is under 500ms constantly. It's a breath of fresh air and will save you a lot of headaches AND it builds for iOS flawlessly.

To the people who build Android, advocate it and work on it, sorry to swear, but fuck you! You have created a mess that we have to work with on a day-to-day basis only for us to get banned from the app store! You have sold us a lie that Android development is amazing with all the sweet treat names and conferences that look bubbly and fun. You have allowed to get it so bad that we can't target an API higher than 18 because some Android users are still using devices that support that!

End this misery. End our pain. End our suffering. Throw this abomination away like you do with some of your other projects and migrate your efforts over to Flutter. Please!

#NoToGoogleIO #AndroidSummitBoycott #FlutterDev #ReactNative

Comments
  • 1
    Fucking awesome!
  • 4
    1. Welcome!
    2. What is "this subreddit"?!
  • 4
    I feel your pain. I dont have your experience, dropped this clusterfuck after a year luckily. Its sad because making apps is a cool thing and i much prefer it over making websites for showing my friends what i made.

    The big complaint i have with flutter (and rn) is that a lot of the native functionalities (like scheduling a recurring task or automatically taking a photo) are nonexistent or you have to do them in java/kotlin.
  • 1
    I agree ☝️
    That’s why I don’t mess with Android App development.
  • 0
    Haha played with android a bit and understand the one about showing/hiding keyboard... Makes no sense.

    Do you develop hybrid apps with flutter? Or can you develop natively? Heard good things about it
  • 1
    Number 5 is the reason I never even got started with it. It’s iOS for me. All the way! 😃
  • 0
    Isn't #8 the play store's fault and not Android's (as an operating system)?
  • 1
    I can relate, and I don't even really do Android programming. Just some simple stuff for fun like a pornhub client. But it's sooo fucking annoying to have to execute different pieces of code depending on what android version the user is running. And some basic things can't be done using simple api calls. Want to have the video player fullscreen? Well fuck you, you have to set 7 different flags and make sure to unset those other flags but then this flag doesn't exist on that version of android. Everything feels like it's a hack because of tons of bad design decisions...

    Simply annoying. I'll stick to C terminal programming
  • 1
    I feel your pain so deep I want to give you a hug
  • 1
    1. I wish I lived in that university instead of this one where it's more like 30 min
  • 1
    Before focusing on the web I was a mobile developer.
    I swear I hate it, with a passion. Its overly complex and mind numbing in regards to Android development. A huge clusterfuck of bad ideas and over engineered shit.

    Everything is just a pain with the Android api. Which is why I believe they created flutter.

    I believe that libs are created for two reasons: to enhance something rrally good i.e rails gems, python packages etc. Or to FIX something really bad like in Android with retrofit, butterknife etc. Literally everything I have seen in Android is a pain.

    Suck for the Apple haters, but in comparison developing for IOS is a fucking breeze.

    Or maybe I am just retarded and can't get Android.

    Anyways, i like everything about this rant.
  • 0
    I hear you and I have felt the same way but I have come to understand that all those pains are worth because of the level of customization of practically everything you can do in the ecosystem. And as per your #react tag I have only this to say:
  • 1
    @Fast-Nop

    1. Thanks!
    2. I originally posted this on reddit in r/androiddev but the post got removed 😒
  • 0
    @ganjaman

    Hey yes this is a bit of a concern but look into Isolates as they allow you to do stuff in the background in pure Flutter/Dart.
  • 1
    @b3b3

    Ah yes fucking ExoPlayer. For those that aren't aware, Android has a video player called ExoPlayer that is so crufty that it changes every month so that we have to update our apps every month if we want users to see a video. Total shitpile.
  • 2
    Agree with OP. That is why I use Xamarin now. Android as a whole requires a general redesign and rethinking in order to remove all the trash it contains. Bonus 5 cents here:
    I update my apps around once per year. That is usually just increasing target API + 1 or 2 bug fixes + one new feature. Somehow, every time I return to Android studio, I have to use the first week figuring out why it doesn't build anymore and doing a lot of fixing to gradle, etc. And after some years the projects are full of all kinds of rubish that google thought should be required, but then changed their mind...
Add Comment