Publishing an App on F-Droid

󰃭 2021-08-03

I made some small apps for Android and I wanted to distribute them. I also care a lot about software freedom, so F-Droid is the best place for me to publish my apps.

Disclaimer! You are not able to sell your app on F-Droid. If you want to make money with it, you would need to allow users to pay through another method. Please see this StackExchange question if you’re interested in monetization.

What’s F-Droid?

F-Droid is an alternative for the Play Store and other Android stores focused on software freedom and privacy.

The biggest difference is that F-Droid only allows Free and Open Source (FOSS) software. F-Droid also respects your privacy and discourages application which do not.

In an age where privacy and software freedom matters most, F-Droid is the perfect replacement for other Android stores.

Why publish on F-Droid?

F-Droid is a great way of distributing your FOSS Android application. It makes it very easy for your users to install your app and keep it up to date, without requiring them to side-load it.

There is also a higher level of trust since every apk published on F-Droid is built from source.

How to submit your app to F-Droid

I’ve broken this down into two big steps:

  • Preparing your app
  • Submitting it to F-Droid

Preparing your app’s repo

F-Droid needs some metadata about your app so it can show something to the users. For example: app name, description, screenshots, and the changelog.

Makes sure you have good screenshots and good explanatory texts about your app. This makes people more interested in it, and speeds up the review process.

The best way to get this metadata to F-Droid is to put it in your app’s repo. You only need to create a few files, following either of these methods. I recommend Fastlane.

Submitting your app’s build metadata to F-Droid

Getting your app on F-Droid is as easy as sending them a merge request to their data repo.

To summarize, you need to:

  1. Fork the repo on GitLab
  2. Create a new branch for your changes
  3. Create a metadata .yml file for your app. You should name it using your app’s id, for example: com.kaeruct.raumballer.yml. There are some templates here.
  4. Submit the merge request to F-Droid’s data repo.
  5. Wait for the automated build to finish.
  6. Fix any errors in the build or feedback to your merge request.

There are details instructions in the repo’s CONTRIBUTING.md file.

I highly recommend you also set up auto updates. This allows F-Droid to automatically know when you have released a new version. It will then update your app’s metadata .yml file automatically and publish the new version of your app on the store.

My experience

Each of the apps I submitted were approved around 2 or 3 weeks, but this may vary depending on the complexity of your app. The contributors are very friendly and always give you helpful feedback to get your app on F-Droid as soon as possible.

Here is one of my app’s metadata file on the F-Droid data repo and the source code on GitHub.

Closing words

F-Droid is a very valuable resource for people who care about software freedom and privacy. It is also run by volunteers. Please donate if you are able to!



More posts like this

fzf + SSH Config Hosts

󰃭 2024-10-10 | #linux #ssh #tips

SSH has a nice feature in which you can store aliases for frequently accessed hosts. Combining this with fzf, you can have a nice quick shortcut to quickly pick a server to connect to into. This comes in very handy if you need to ssh into different servers and forget their IP or hostname often. Here’s a sample ssh config file (normally located at ~/.ssh/config): # see https://man.openbsd.org/ssh_config.5 for all the available configuration settings Host runner-staging HostName 10.

Continue reading 


Starfield visualization in JavaScript

󰃭 2024-08-31 | #canvas #javascript #programming-projects #tutorials

This is a simple, straightforward implementation of a visualization reminiscent of the classic Windows 95 starfield screensaver. It is also interactive: you can touch the screen or use the accelerometer to influence the direction of the movement. This is how it works: Create a bunch of particles (100), each in a random position. Every frame, move each particle further away from the center*. The further the particle is from the center, the more visible it will become.

Continue reading 