New App: org.codeberg.nykula.sapfir
Hi, I wrote a free JavaScript app using Preact and would like to publish it on F-Droid, because it's meant to be used (and easily found) along with native free software available through F-Droid. For it to work on Android without an Internet connection, and for it to outlast any domain or server to which I currently have access, I made an offline WebView wrapper and imported only local dependencies.
My hardware is low-end (4 GB RAM, almost no free space, limited data plan) so I can't use Android Studio or fdroidserver to check if it builds in a traditional way; I coded using Emacs, called gradle directly and (sorry) ran five fdroiddata CI pipelines until I got the linting right.
The app probably runs on some slightly older devices with Fennec F-Droid 140, or even the Android browser if the firmware isn't very old, but I only have Android 15 and can't test other versions so I limited the app to minSdk 35. In the build metadata, I added a link to the online version in case someone with a slightly older device wants to try it, but I'm not sure how long it will be available.
Required
-
The app complies with the inclusion criteria -
The original app author has been notified (and does not oppose the inclusion) - I am the author.
-
All related fdroiddata and RFP issues have been referenced in this merge request - Adding my own application, there were no issues or RFP.s
-
Builds with fdroid buildand all pipelines pass
Strongly Recommended
-
The upstream app source code repo contains the app metadata (summary/description/images/changelog/etc) in a Fastlane or Triple-T folder structure -
Releases are tagged
Suggested
-
External repos are added as git submodules instead of srclibs - I don't know what srclibs means. I used free software dependencies from npm and core android/androidx libraries.
-
Enable Reproducible Builds - No, I don't want this. More specifically, I find reproducibility a good idea but I know very little about developer signatures, I only signed the release build with a throwaway keystore to test it and haven't published my own builds.
- For some reproducibility, I added package-lock.json to my repository.
-
Multiple apks for native code - No native code, only JavaScript with a Java wrapper.