this post was submitted on 24 Feb 2025
379 points (99.5% liked)
Programmer Humor
20885 readers
513 users here now
Welcome to Programmer Humor!
This is a place where you can post jokes, memes, humor, etc. related to programming!
For sharing awful code theres also Programming Horror.
Rules
- Keep content in english
- No advertisements
- Posts must be related to programming or programmer topics
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Android is the worst environment I've ever worked in. Concurrency? Use Threads! No wait, we got handlers and loopers now. Oh wait sorry, we're doing coroutines this year.
Now let's do DI with Koin. But ooh google released their own version with Dagger, but oh no! It's clunky to use, so well slap some more stuff in top and call it Hilt!
Networking, persistent storage, UI, permission flows, any other API they have follow the same pattern of new shiny thing, oh it didn't turn out very good, here's a new thing to replace the old. Congrats, every blog and SO answer is now outdated. Even the build system has gone from Maven to Gradle in Groovy to Gradle using Kotlin.
And don't get me started on Android Studio itself. The worst IDE I've ever touched. Any changes to the manifest and now you need to manually sync the project. Be prepared to create a shortcut to gradle's cache folder for easy deleting whenever it shits the bed.
Fuck Android development, I hope I'll never have to touch it again after this job.
Lmao. I love Android development but I've been doing it since froyo so I might have Stockholm syndrome.
I love shiny new toys :D. Kotlin as a language is p. good. The flip side to changing standards all the time is that stuff sometimes gets better :D.
Threads to coroutines was a huge improvement IMO.
I agree kotlin can be a cool language sometimes. And I'm sure it's been a more gradual journey if you've worked with it while it's been evolving. But man, jumping in at Android 10/11 having to remain compatible with 7 (we've moved up to a minimum of 10 now thankfully) with how much background services and file storage permissions changed right around that time was an extreme headache to work around.
But I definitely prefer C#'s async/await Tasks than trying to wrap my head around all the various coroutine scopes, runBlocking and all that jazz. I know they are very similar concepts, but there's just something with coroutines that isn't clicking in my head.