Upgrading to newer version of AGP seems to cause serious headaches to nearly all developers. But this is never remedied with devs trying out the update prior to publishing it, it seems.
I feel like the plugin is so feature-plagued that it's not even remotely possible to test all the interactions users have with it, YET Google rewrites it from ground up (pardon the hyperbole) every year or so.
We get general advisories for methods being removed and some are added which do "roughly the same thing" but they never do. Plugin developers have their faces in tears, because this inevitably means they need to just wing it and hope the produced result is the same.
Why?!
Now embedding Kotlin is a whole another jack in a box. I absolutely understand that this aims to make AGP devs more comfortable in their boots and not to maintain compatibility with Kotlin, but man how many issues has this created… Realistically this has put more strain on Kotlin team and by extension to Gradle to bundle the most recent versions of everything everywhere.
Did you realize that by embedding, people are unable to migrate off deprecated Kotlin plugins; that testing new Kotlin compilers is going to be a nightmare - at least with regard to Android - …?
In the end not many of use the "hello world" of configuring Android in Gradle. Since the introduction of KTS, people started programming/scripting in the configuration files, which is yet another headache to AGP team.
(
I've seen so many projects which use buildSrc with Kotlin files defining and configuring the project -- where you'd need to guess and typecast the Task type. But Kotlin is not what devs would prefer to configure the build, was it? The only thing they needed is a code completion.
Literally rather than focus on getting this done in the IntelliJ or with cooperation with Gradle, we got Kotlin. Well thank you - I now need to build my build configuration in order for it not to be completely red(!). That's just beyond ridiculous
I don't sincerely want to be the guy which praises web for all it is, but damn. They've got the configuration files easy, don't they? Json schema which is extremely easy to wire-up as code completion.
)
For anybody in the AGP team: The time is now that you need to Project Marble the AGP, stabilize the API forever and provide migration paths for every single public removed method or task we can depend on.
I'm fed up wasting a week on finding workaround to whatever you just thought it would be best for you and not focusing on developing features and elevating my/our products.
[link] [comments]