On the importance of F-Droid
F-Droid is an app store for Android where only open source applications are available for free. It provides an alternative to the proprietary Google Play Store, which is where most Android app distribution currently takes place. Because the Google Play Store is where most users go to find and install apps, this gives Google the power to exercise control over Android app developers. In this blog post, I describe the design, mechanism and results of this control from the perspective of a long-time Android app developer. All statements are my opinion and are provided for informational purposes only.
Design
Android, in its current form, is designed in a few ways to drive users to the Google Play Store. Defaults have a lot of power. Because the Google Play Store is installed by default, and not F-Droid or other alternative app stores, it’s highly likely that an Android user will install all of their apps from the default app store. Possibly, because no alternative app stores were presented to them, the user may not even realize alternatives exist.
If a user does become aware of third-party app stores, and they wish to install another app store on their device, searching for it on the Google Play Store will likely prove fruitless. The trouble is, by and large, Google does not allow third-party app stores to be distributed on the Google Play Store. This is being contested in some countries, sometimes successfully. As far as I can tell, the majority of countries remain affected by this restriction. Because users in most countries can’t install the third-party app store using the Google Play Store, they must download an apk file and install it directly.
Installing an apk file that was not sourced from the Google Play Store triggers errors and warnings on the device that try to stop the user from continuing. The installation is prevented entirely at first because the file came from an “unknown source”. The user is instructed that apps from “unknown sources” can put their device and personal information at risk. If the user is brave enough to proceed, they must open their device settings and enable “allow app installation from unknown sources”, then install the apk file again.
Mechanism
Google sets guidelines, or rules, which all app developers publishing on the Google Play Store must abide by. These rules include a minimum target API level. I can not overstate how effective of a tool this is to shape the content of the Google Play Store. The days of Android releases being mostly new features and bug fixes are over. Each new Android release now locks down the device in some new way, without much regard for breaking previously released applications.
For example, applications that require some processing to be done at a specific time of the day have had to change the way they accomplish this three times. At first, developers used set. To continue to be eligible for distribution on the Google Play Store, and not receive a hoard of angry users claiming the app is now “broken”, every single app developer was then required to update and rebuild their application to use setExact. Later on, developers were required to use setExactAndAllowWhileIdle. When that wasn’t enough, developers needed to start requesting the SCHEDULE_EXACT_ALARM permission for apps to continue to function normally. Now, I am not making the case that unfettered access to drain the device battery is the way things should be. But let’s take a moment and consider just how much energy has been spent updating, rebuilding, testing, and redistributing every application affected by these changes. Surely, there were better ways to address app battery usage than this. Keep in mind that this is just one example.
Results
Enforcing an ever-increasing minimum target API level doesn’t just break applications, it also makes them disappear. When a developer does not take the time to update and rebuild their application to meet the new minimum target API level, their application stops being visible to anyone on a newer Android version, whether or not the application would continue to function. As users upgrade to newer devices, applications stop being available for users to find. The pool of users that can see and install these application will only shrink until it’s as if the apps don’t exist at all.
A plethora of curious, useful, interesting, quirky, and historic applications are no longer available to us. Because the developers of these apps didn’t, or couldn’t, update them to meet target API level requirements, many apps are lost to the sands of time. And every time Google increases the minimum target API level, hiding apps that do not meet the new requirement, more applications are lost forever.
Potential app developers are also discouraged by all of this. Anyone considering publishing on Android with hopes of achieving a sizable audience reach must commit to remaining vigilant and responsive to the ever-changing requirements, API changes and the consequential app breakage. I started developing and publishing on the Google Play Store nearly ten years ago. If I were to start today, I’m not sure I would have felt the same sense of creative freedom and confidence in being able to release something that will continue to function.
Call to action
F-Droid is where all of this leads to. It’s one of the largest third-party app stores available for Android with clear messaging about its goals and operations. F-Droid is a neutral platform for open source applications where developers are free to release their apps as they see fit, within reason.
F-Droid is our best chance at breaking the chains the Google Play Store has bound around developers. It’s not always easy to release a previously proprietary app as open source software, and this will certainly require some effort. But it is worth it. Open source software empowers users to inspect, understand and improve the apps they are using. It empowers other developers to help contribute. And it empowers the original developers, because sharing freely and collaborating openly has compounding effects. Open source software builds community and momentum, and may achieve greater strength than any sole proprietary app developer ever could.
If you have published any apps on the Google Play Store, please also publish your apps on F-Droid. If your app isn’t free, try accepting donations instead. If your app is proprietary, release it as open source software. To be eligible for inclusion on F-Droid, you don’t need to accept a single patch nor respond to a single user issue. You only need to release the source code of your app for free under an open source license. Whether or not you have been affected by Google’s guideline changes and API requirements, releasing on F-Droid provides an insurance policy for you and your apps. Even if Google suspends your developer account forever tomorrow, for some AI-calculated reason, your apps remain available for discovery and installation.