Good old Udemy Elixr/Pheonix courses being irrelevant within 6 months but still trying to con people by saying they’re updated to current year.
Good old Udemy Elixr/Pheonix courses being irrelevant within 6 months but still trying to con people by saying they’re updated to current year.
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.