Okay, so it’s time for another rant.
This time it is from my point of view as an app developer.
While developing a rather complex application recently, I again encountered a bunch of problems that were completely out of my control and directly under control of people who develop libraries for Google.
As we, developers, all know, if you want to develop an app for Android, you will most likely use various Google Play Services libraries, either directly or as a part of other libraries and framework plugins that other people used in their libs and so on. Great example here would be Google’s own Firebase and their set of services (all of them being great by the way).
What I don’t really understand and I would like to ask the devs at Google is, well… do you guys actually use this stuff? As in your own projects? Apart from those “test apps” that are made for presentations to highlight one or two particular features?
It is perplexing to see, time and time again, how libraries made under the roof of the same company have so many compatibility issues and version conflicts. Here’s an example: https://firebase.google.com/support/release-notes/android#mlkit-self-serve-fixes
They had to even publish this bit about “self serve fixes”, so bad it was (still is).
While this is just one example, consider that you then have, say Flutter, also developed under Google roof, which has a plugin that implements this ML kit library and while it would work by itself, when combined with anything else, developed by the SAME people at the SAME company, like for example their own plugin for AdMob – you will see version conflicts, things breaking, “service unbound” messages (which has probably more to do with the Play Services implementation and particular version) in console and who knows what else – depends on the versions that you’ll try to mate (when you realize that the latest ones don’t).
So yeah, it leaves me wondering, do these devs work on real products using what they created? It would really speed up the bug fixing, wouldn’t it? One thing is when you develop a lib and see others complain and whole other is when you need this lib to work and play nice with other things that you and people in the neighbouring office has created or you won’t hit deadlines, company will lose money and you will eventually get fired. Kinda motivates to do stuff, you know?