An open source, cross-platform Lemmy client built with Flutter
Contributing • Building From Source • Conventions • Related Packages
Hey there! Just wanted to let you know that this repo is currently my personal side project to build something cool while learning about Dart and Flutter.
As the sole maintainer of this project, progress might be a bit slow. But hey, here's where you can make a difference! Whether you're proficient at Flutter and Dart, or just simply interested in the project, I would be absolutely thrilled if you could lend a hand and contribute.
Your passion, contributions, and ideas would be greatly appreciated! Together, let's make this project shine. 🚀 💻
Thunder is currently undergoing active 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. The next section summarizes the features that are currently implemented.
- Browse local community's posts
- Browse your subscriptions if logged in
- See a specific post and its associated comments
- Infinite scrolling for posts
- Infinite scrolling for comments
- Basic login functionality
- N/A
The current focus is to provide a MVP to be able to do basic tasks, including
- browsing through posts, comments, communities and feeds (all, hot, new, etc.)
- authenticating with your account and seeing subscriptions
- searching for communities, and basic interaction with them (subscribing to communities, upvoting/downvoting posts, replying to comments)
Contributions are always welcome! To contribute potential features or bug-fixes:
- Fork this repository
- Apply any changes and/or additions
- Create a pull request to have your changes reviewed and merged
There are a few prerequisites in order to build and run the application locally.
Thunder uses .env
to store secrets, including credentials for API access. This is an example of a minimal .env
file.
// [REQUIRED] Lemmy specific information
LEMMU_BASE_URL = ""
Thunder is developed with Flutter, and is built to support both iOS and Android.
To build the app from source, a few steps are required.
- Create a
.env
file in the root directory as described in the previous section. - Set up and install Flutter.
- For more information, visit https://docs.flutter.dev/get-started/install.
- Clone this repository and fetch the dependencies using
flutter pub get
- Run the appropriate build command depending on the platform.
- iOS:
flutter build ios --release
- Android:
flutter build apk
- iOS:
While 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!
Thunder uses the following packages and libraries under the hood. This is not an exhaustive list.
lemmy-dart - custom-built Lemmy library built in Dart