There is a reason a lot of people think Android phones have bad cameras. That's not true of course, and there are several phones from companies like Samsung or Huawei that disprove it, as well as Google's own Pixel series of phones. But there is a tiny nugget there that can't be denied, and that's when you look to third-party camera apps.
As good as the camera app that comes with your phone is, there are always reasons why people look to apps that use their own camera mode. Maybe you like to use Instagram and use its built-in camera and filters. Or maybe you want control over things like exposure or shutter speed and your phone's camera app doesn't give it to you. Third-party apps are there to fill the void and give us what we want.
Your phone came with a great camera app but there are others you probably want to try.
Except when they don't work the way we think they should. This issue came into the news cycle in a big way when Moment decided to discontinue its great Moment Pro camera app, and the reason why is because the company just couldn't build separate versions for every phone. It stinks that the app is left to wither and die, but you can't fault Moment for not seeing any value in continuing.
Google's solution is the CameraX Jetpack library. It's a software library that developers like Moment can use to build an app that has access to all of Android's camera features as well as support for extras like Samsung's wide-angle lens or telephoto lens. It's not part of Android itself, but it's a free and easy to use add-on that's available to everybody for free.
There's just one problem — the company that makes a phone has to "expose" the Android camera APIs so the CameraX Jetpack can use them. Since it's voluntary, they aren't going to. That means that while developers have an easy tool to build one app that works for every phone, none of the features manufacturers include are going to work with it.
It's a tough situation, but it also makes perfect sense. Samsung, for example, takes pride in the camera on its flagship phones. And it should — they take excellent photos and include all the extras you would want in a point and shoot camera. Samsung is also very protective of its camera technology — both hardware and software — so it's not going to build its software in a way so another app developer can use it.
Phone makers don't want to share everything, and this can cause big problems for developers.
This isn't just a Samsung problem, either. It serves an example because Samsung is now synonymous with Android and its phones tend to have great cameras. But other companies like LG or Motorola also work hard to give a great camera experience and aren't likely to open up for app developers the way Google has things implemented. Some companies will. OnePlus comes to mind, and of course Google's own Pixel phones. But chances are the phone you buy next isn't going to allow all of its camera features to work in your favorite camera app. These companies want you to use the app they worked hard to create.
The fix is easy and very difficult at the same time — Google needs to stop making things voluntary. I don't mean that Google should tell phone makers what apps need to be included or how to build anything, but when it comes to software libraries that app developers expect to be there and the same for every model, Google needs to force their inclusion.
By not doing this, Google is shooting itself in the foot. Android is popular because of the Google Play Store. If there wasn't a built-in application market, nobody would want to use a phone running Android. You only need to look at Windows phone's failure as proof — the Lumia models ran the gamut from budget to flagship, the software was good, and the name Microsoft was tied to it. That should have equaled a rousing success, but because of the lack of apps, the entire ecosystem died. If it wasn't for Google Play, anyone with a smartphone would have bought an iPhone. The reverse is true, too — Apple's App Store is what drives its platform.
I know Google has to tread lightly lest it gets tangled up in even more anti-trust scrutiny. but we're not talking about any user-facing features when we look at the CameraX Jetpack library — it's just there so every app works with every phone. It's a great solution to a huge problem, but it's neutered because phone makers aren't forced to use it to its fullest. The same can be said about any voluntary Android features or APIs; unless manufacturers have to include support we are the ones who suffer.