Loading repository data…
Loading repository data…
thunder-app / repository
An open-source cross-platform Lemmy & PieFed client for iOS and Android
General releases can be obtained officially through Google Play Store, IzzyOnDroid, or through GitHub releases.
Pre-releases are available in the Releases section under the corresponding version. You can also use Obtainium.
General releases can be obtained officially through App Store, or through GitHub releases.
Pre-releases are available through TestFlight. An alternative is to download the corresponding IPA file in the Releases section and install it through AltStore.
Thunder is currently undergoing active alpha development, and it is possible that not all features have been fully implemented at this stage. Due to this, significant breaking changes may occur between versions.
This is a non-exhaustive list of features that Thunder currently supports:
The current focus is to continue to expand on the general functionality and stability of Thunder. This includes but is not limited to:
Contributions are always welcome, but please abide by our community code of conduct!
To contribute potential features or bug-fixes:
git clone --recurse-submodules -j8 git@github.com:thunder-app/thunder.gitdevelop branch. This is to allow for pre-release versions without affecting the main general releases.Interested in translating Thunder? We use Weblate to crowdsource translations, so anyone can create an account and contribute!
Thunder is developed with Flutter, and is built to support both iOS and Android. There may be unofficial support on other platforms but is not guaranteed at this time (Linux, Windows, MacOS)
To build the app from source, a few steps are required.
stable channel using flutter channel stable.flutter pub getflutter gen-l10n to generate the localization files.dart scripts/build.dart, which will build both the iOS and Android release versions. This step is only required if you want to build a release version of the app.Alternatively, you can skip the prerequisite setup and build the Android application via docker with a single command:
./scripts/docker-build-android.sh
You can also run your local development environment for Android via the Docker container, including connecting to ADB on the host machine.
./scripts/docker-dev-android.sh
Could not determine the dependencies of task ':unifiedpush_android:compileReleaseKotlin'.
> Cannot find a Java installation on your machine matching this tasks requirements: {languageVersion=8, vendor=any, implementation=vendor-specific}
> No locally installed toolchains match and toolchain download repositories have not been configured.
Resolution: Ensure you have a valid Java 8 installation on your machine.
Thunder uses Drift (a wrapper around SQLite) to store information about the user's accounts, favorites, and more. If you happen to work on a contribution which involves updating the database schema, you can follow these steps.
lib\src\core\database\tables.dartlib\src\core\database\database.dartdart run drift_dev make-migrations to generate the proper migration logic and tests. This will automatically create the new schema version.lib\src\core\database\database.dartdart run build_runner buildWhile there are no specific conventions that must be followed, do try to follow best practices whenever possible.
Suggestions are always welcome to improve the code quality and architecture of the app!