3 ms·
My experience confirms these flaws in Android. For example, I once wasted two days getting an app startup logo to show with the proper size and aspect ratio on
by mleonhard 6y ago
My experience confirms these flaws in Android.
For example, I once wasted two days getting an app startup logo to show with the proper size and aspect ratio on versions of Android used on phones sold 4 years ago, through the latest version. You define the logo in the manifest file. The interpretation of the logo settings changed three times over those API versions, with features added and removed. So a config that works in Android API 18 doesn't work in 20-21, but may work on 23. Support for SVG was dropped and added again. And none of this is documented. The logical way to implement API changes is to version the API file and use a compatibility library that can interpret all supported versions and make them work on the phone. But Android is not built logically. It is built for Google's engineer promo process.
Nobody at Google gets promoted for making the thing easy to use, learn, or maintain. That's why Google puts out so many shiny dev tools that quickly rot. Unfortunately, we are required to work with Android.
- chii 6y agowouldnt you just build different binaries for different versions of android you want to support? Why is it even a requirement that one binary works on all versions? You can just gate the upgrade of the app, so that customers on the older version can't upgrade.
- mleonhard 6y agoThis is a good idea. Can you point me to guides for setting up this multi-build with Flutter/Android Studio and Fastlane?
- livre 6y agoI had a similar experience with scalable graphics and having to support anything from Android 4 (can't remember if .2 or .4) to Android 8. It feels like programming in JavaScript and trying to support anything from IE 8 to the latest Chrome, Android is full of polyfills and helper libraries whose only purpose is to fill in the gaps for missing, replaced or removed functionality.