It’s the case of one versus many again. When you add hundreds of different phones with hundreds of different cameras and hundreds of different screen sizes and resolutions, it can seem impossible. With Android, that’s what you have. Developers have a particular set of rules and instructions about how to use the camera in iOS because there are so few models, and Apple does the work of making a set of rules that work on all of them.
That’s not how Android works. If you want a big phone with a big screen, you have plenty of choices from plenty of companies. The same goes if you want a smaller phone or a cheap phone or an ultra-high resolution phone. Android is software that works on many things, while iOS is software that works on just a few things that all come from the same company.
That means that there are countless different camera setups that Snapchat and Instagram need to support. And they could offer the same level of quality and support that is there for iOS if they wanted to, but that would mean hiring a lot more people and taking a lot more time.
Google learned this early in Android’s life: developers either can’t or don’t want to support many models of phones with many different camera setups. The solution was to offer a bare minimum level of support that works with every phone. Your new Galaxy S20 might have a spectacular camera, but with none of the extra features and none of the automatic control that Samsung built into it available, you get that bare minimum. And it shows.
This is a struggle we face with our Android app. There are just too many combinations of hardware and software environments we need to optimize for. In contrast, the iOS app is a lot easier to maintain.