I wish they would add some kind of download counter.
A decent bunch of the apps on F-Droid are woefully inadequate or still early in development. At the moment F-Droid allows sorting apps either by time of most recent update, or alphabetically. Neither of those is actually useful to me as user.
If there are multiple apps doing the same thing, it is currently incredibly hard to see which one is the best. I do not want to download and install multiple apps only to find out they are essentially unusable, and that of the 5 options only a single one is actually functional.
I understand that F-Droid might not want to go all-in with the rating and review system, but a barebones download counter would at least show some indication whether people install it once and remove it after trying it out, or leave it installed long enough to survive multiple updates.
F-Droid is littered with dead-end pet projects and no easy way to filter them out. Instead of wasting time on Filecoin pipe dreams, they should just fork Modrinth https://github.com/modrinth to handle Android apps instead of Minecraft mods. The difference in usability is night and day: https://modrinth.com/mods
F-Droid prioritizes privacy. Modrinth does not. Users who download apps don't create accounts and cannot even create accounts. This is by design. There are several clients that access F-Droid repos that add those features for users who are willing to pay the privacy cost.
I usually visit the source code page (almost every time on GitHub) and check the timestamp of the commits, how many issues are open, how they are handled, etc. The usual indicator of a project being alive. The number of downloads is less important. Often there are plenty of equivalent proprietary apps on the Play Store with 100'000+ downloads and I'm going to F-Droid because I trust open source apps more. 10 downloads would be enough.
One way, which is less private, show active installs by having the phone reports
back to the store if it's unstalled
A more secure way, show downloads for each version/build. Graph it. If an app is releasing/being updated regularly but more users are uninstalling, you'd expect the downloads per version to decrease or stay level
If you install it once and then remove it, you only do a single download. If you install it and keep it installed for several app updates, you download it for every update. If a lot of people download it at the same time due to an app update, you'll see a huge download spike immediately after a release.
It's a very rough metric, but it could be added without adding any kind of additional telemetry to the client, and it would give at least a small hint of what's happening.
I fully agree with this. It's so hard to actually find good apps on f-droid because of this. I've been bit by woefully incomplete prototypes on f-droid multiple times.
Unfortunately that would lead to many great apps not getting proper attention. Things such as a downloads counter would simply promote the highest rated ones, preventing you from even considering newer alternatives.
I would prefer to have more options to filter by time of release. Such as past month, past 6 months, and past year.
That would filter out unmaintained apps altogether, even though there are many that still work well years after release.
Another one would be search operators, or simply a better string matching algorithm, as I keep searching for apps that I know the name of, but make some typo, and they don't appear. Wonder what that is about.
All I have to do to out-compete your app on f-droid is to update more often than you, even if I make no actual changes. Anytime anyone in your target category updates, you push out a version bump and you're on top of the list. Bonus points if you start your app name with AA0 so it's always at the top of both available sort orders.
"Recently updated" is a bad metric that does not help users. By offering no other sort options, and sufficiently motivated person can trivially dominate any category in the repo.
A recently updated app is not better than a less frequently updated one just by merit of a higher version number.
Pretty sure I'm not touching any app that starts with AA0* (esp. if that name isn't relevant to app's functionality in some way)!
But I get the point you are making, on how current system can be gamed with just app-naming and frequent (meaningless) updates to the app :-(
I sort by last updated and check the date. Since most of the projects are on Github I then open it and check last commit/stars. Maybe they could add Github stars?
I use droidify btw
Still not perfect but it improved a lot in the last year. When it says update, it really updates now, and when it says updated it's updated. Running the package installer works, etc. I believe that all the process is not very well integrated because it must run external components, whilst Play does it internally, but I might be wrong.
> But I agree the UI of the official app (there are others) isn't amazing.
I think it does help that there are others. The official app should be good, but there's a decent collection of others that can do things better. If nothing else, they can make different tradeoffs, like only supporting new Android versions.
This is the one I use and has worked pretty much flawlessly since day 1. I highly recommend it. I don't even have the f-droid app itself installed anymore.
Not here, no. Updates don't work (a year-old Nokia). I used F-Droid to install Hacker's Keyboard and some FTP server. Both programs still work, but when F-Droid tries to upgrade anything it hangs for a while and then displays some error message. Well... I don't really care, as long as the programs I need sort of work.
I checked the requirements and automatic updates are supported from F-Droid 1.19 and Android 12. However it sounds like you may have a different issue.
It's definitely trying to update. But I'm no Android developer, so I never investigated the problem. And, frankly, if I will desperately need an upgrade, I'll just remove it and install it fresh. It's not a big deal.
I agree. But the nature of open source means that you can't force someone to work on something, unlike a job. And for whatever reason, open source seems to attract people that would rather be principled and split a project into two barely viable one's, rather than be receptive to feedback, compromise / find common ground and work together to something better.
GIMP is the best example of this. Years back a few devs tried to get it renamed from GNU Image Manipulation Program to GNU Libre Image Manipulation Program (GLIMP), because multiple people found it embarassing or even got shot down by their boss for suggesting to use and donate to a program named GIMP.
What happened? GIMP devs did a big nuh-uh, dug in their heels, and the other devs forked GIMP into GLIMP for a while. GlIMP is no longer maintained now, and GIMP still gets scraps for funding :)
> progressive web apps (PWA) as packages that can be shipped via repositories
Aah, wasn't aware this is possible now, thats cool.
But raises the question of how exactly to check and communicate to users what data are being collected.
With a PWA almost all of the code runs on the server. Even if that server is based on an open source project, there is no guarantee that there has been no modification (eg a plugin) that changes behavior.
Not sure there is a way to reconcile these demands in an automated way that doesnt ultimately fall back on trusting the developer.
Its very flexible, both ends of the spectrum are within the specification.
One could force the "on-device only" by requiring no data exchange with the outside world but thats quite limiting too (and not trivial to check at upload time).
So... like a normal app? Nothing stops native apps from mostly running on the server. In fact, many do. Social media, banking, heck, do maps apps even do offline routing, or do they just query a server for that usually?
I too like f-droid but have found it too difficult to figure out how to publish packages for it. Last time I looked at it all the documentation covered tool chains I don't use. I see that there are Godot games on f-droid now so I hope that means there is an easy path to go from a Godot project to f-droid package. Also is there any support for PWAs on F-droid?
I had to write (heavily improve? I don't remember) the React Native guide when I release my first RN app there (non RN apps were easy). Though I assume/hope things are better now?
F-Droid Basic is cool. Same thing, just without some sharing options etc., you probably don't use anyway. It was the first one to get actual background updates on modern android.
Barcode Scanner is decent, it even searches for products online, if you scan something that looks like a food label etc.
Casio G-Shock Smart Sync if you are tired of official Casio app in a casio bluetooth watch.
DuckDuckGo is there...
FadCam - if you ever need a recording without tracking attention (while phone is locked). Could get you out of some legal trouble...
Futo Keyboard is interesting project.
GadgetBridge saves some old devices. I use it for some Xiaomi eink devices that overwise require... to be connected to chinese datacenter to be discovered and sync. Which is insane, as some versions discover and can be synced on EU servers...
Grayjay for videos on many platforms.
So many HackerNews clients - I'm on Hacki currently.
Home assistant, Jellyfin, Joplin, Mullvad, Telegram, Nextcloud, Organic Maps, Osmand~, Tailscale or Yubico authenticator are all there. I like them better from f-droid.
Street Complete is an awesome way to contribute to OpenStreetMap.
Thunderbird (!) which is a fork of K9 (still active), and looks and runs great. Highly recommend.
I recently swapped from the F-Droid version of AntennaPod to the Google Play Store version so that I could use Chromecast, which they strip from their F-Droid builds because the underlying library isn't open-source and is deemed "impure" by F-Droid (it gets you a "This app has features you might not like" banner, when honestly it's a feature I specifically want).
A similar thing is true of Tempo (a Subsonic-client music player), where the F-Droid builds have Chromecast support stripped out, but the GitHub-published builds have it (so I also have to install Obtanium to get those updated).
"I want to listen to my audio on my devices in my house" is a weird thing to exclude in the name of open-source purity.
Otherwise, I love F-Droid. I just wish they had a bit more nuance to recognize that Chromecast support isn't the same as "constantly reports your location in the background to corporate servers", and so those shouldn't have the same severity of warning banners applied.
Great list, some of the apps I commonly use you did not mention:
Aves Libre (Gallery)
Breezy Weather (Weather overview)
Fossify Calendar
Immich (Self hosted Google Photos alternative)
K-9 Mail (E-Mail, to be rebranded to Thunderbird Mobile at some point in the future)
NetGuard (Firewall and logging)
Nextcloud (Self-hosted cloud storage)
Unexpected Keyboard (Keyboard that works nicely with Termux)
Librera FD (F-Droid) has OPDS stripped out.
https://github.com/foobnix/LibreraReader/issues/1335
But you can get the Play Store version through Obtainium. It's the PRO version (also available with Obtainium) the one with OPDS support.
It's super annoying though, that installing an app from F-Droid sometimes appears as installed from Play Store as well. For example, I have VLC installed from F-Droid, but it also appears in the Play Store update list and _can't_ be updated from there.
Does someone know why this is? I assume it's Google just assuming it's the only app source and not bothering to check the installation source associated with apps when pulling them into its update check list. Or is there no way on Android to check whether you're the one that installed an app?
Forkyz (collects crossword puzzles from different sources, like the New York Times)
PySolFc (mahjong, solitaire, other classic single-player games)
Shattered Pixel Dungeon
Dungeon Crawl Stone Soup
MTG Familiar (database of Magic the Gathering cards and rules)
Learning Japanese:
AnkiDroid
Kakugo (for kanji writing practice)
Miscellaneous:
NewPipe (buggy every so often, but it makes YouTube bearable for me)
OsmAnd~ (offline map and directions app)
SecScanQR (basic QR reader)
Vanilla Music
LibreOffice Viewer
MuPDF viewer
KeePassDX
Termux
In addition to all the other recommendations, Trail Sense is pretty great, and BRouter is quite useful for finding alternative routes if you use OsmAnd and cycle a lot.
I also use Etar and DAVx⁵ for calendar and contacts sync.
Rethink is useful if you don't already have another VPN setup for ad blocking etc.
Sharing a small tip I discovered recently: Android 12 introduced the ability for third party apps to do background updates of apps they installed (or last updated). This should be usable by F-Droid, but is not yet to update itself(!) because it targets an older Android version (targetSdk 25).
F-Droid Basic (by F-Droid developers) removes some features, but targets Android 14 instead (targetSdk 34): https://f-droid.org/packages/org.fdroid.basic/ ; my understanding is that it should be merged at some point, but isn't yet.
In general F-Droid works well for me even if I have only maybe 2-3 apps that I get from there. I think it's good that it exists.
There could be some improvements on the process of adding an app though. I recently made a very small app for myself that I thought "maybe a couple of people would find this useful, I should add it to F-Droid".
I started by reading their docs on how to add a new app. I created an account on gitlab, forked their repo and added my app. Their pipeline failed without telling me why. After reading and re-reading everything a bunch of times I had to give up and look for help. The instructions said to fix all pipeline problems before creating a merge request.
So I go to the contact page where there are a bunch of options. I chose IRC and join. Ask for help. No answer or any message sent in the channel for the next 24 hours. At this point I am getting a bit irritated and are thinking about truly giving up. Then eventually someone answers in the channel and says "create a merge request and someone will help you". Which is what the docs said NOT to do. Fine. Ok. I will create it.
I go to Gitlab and chose the right template for the merge request. And now I get a whole bunch of new instructions and questions that I have to answer that the docs never mentioned. And it even mentions in that template that I should TRY to fix pipeline problems, or someone will help me (still going against official docs on their site). Since there was a bunch of questions I would have to look up to properly answer I did not have the time to do it right away... And I still have not done it. Its on a todo-list.
tl;dr: F-Droid works okey but the whole process of submitting a new app for someone that has not gone through it before could be made way better with some updated and unified instructions.
> I started by reading their docs on how to add a new app.
Did you stumble across https://f-droid.org/docs/Inclusion_How-To/, or did you miss that page somehow? Because there it mentions the Submission Queue as the simpler, if somewhat slower route to adding an app. For the submission queue, you just need to fill out the pertinent data in an issue ticket and then follow along with any further instructions you might subsequently receive.
To be honest I had forgot that it was an option. I zeroed in on the other alternative from the get go since I was the developer of the app and its very limited in its usefulness. Did not want to create work for others when I thought I could easily do the work :)
To be honest, not really. I wanted to first successfully get my app published before even thinking about that. I would need to explain WHAT to improve and HOW to improve it for it to be useful and that I cannot do until I am more familiar with the project. But it is a good point.
I don't tinker much in the Android ecosystem, is there an F-Droid client available for Android TV devices? I've managed to install the smartphone version on my NVIDIA Shield TV, but it is more or less impossible to navigate using the remote control...
I personally searched for and couldn't find an app that gathered various random generation tools, like the ones on random.org (integer sequences and sets, dice, list shuffle...)
Other than that banking, transport, government apps are (almost) never on fdroid, but that's not something a weekend project can fix :)
at the expense of turning this a platform to rant away my grievances, the past year i faced a weird issue with the store that lasted several months!
the tailscale client introduced a bug with a new updated that crashes on launch. the developers rolled back the release after a few days, by then i had already unknowingly installed it.
now came the world of hurt. while it is also partially the dev team's fault to not quickly patch a new version for f-droid to allow easy update, there was no way to rollback versions of installed apps from the store!
non-rooted phones have a lot of issues with installing specific apk version without getting rid of app data, and it really soured my experiences with using open-source app stores. in this case, the only way was to wait 4 months to finally get the official patch. i really wish they introduce a way to install older version without losing app data.
besides this, i do agree with others on having no filters to weed out dead projects from results. the sort by last update does most of the job to be fair.
Do chromecasts phone home with data on all nearby wifi devices? If they do then is that not reporting location data for those devices, albeit static monitoring? "mehtacos phone was on ubertacos wlan" is location data.
A decent bunch of the apps on F-Droid are woefully inadequate or still early in development. At the moment F-Droid allows sorting apps either by time of most recent update, or alphabetically. Neither of those is actually useful to me as user.
If there are multiple apps doing the same thing, it is currently incredibly hard to see which one is the best. I do not want to download and install multiple apps only to find out they are essentially unusable, and that of the 5 options only a single one is actually functional.
I understand that F-Droid might not want to go all-in with the rating and review system, but a barebones download counter would at least show some indication whether people install it once and remove it after trying it out, or leave it installed long enough to survive multiple updates.