A free and open source Reddit reader.
This app isn't intended to be published to any app stores. For that, check out Reddit's official apps.
Instead, this app is meant to provide a lean viewing experience using the free tier of Reddit's public APIs.
Building the app is a simple process.
- Configure your dev environment for Flutter
- You can follow the flutter.dev install instructions.
- (Note that you need MacOS to build the iOS app.)
- Once installed, clone this Git repo onto your machine
- Plug in your device
- For iOS, you may need to open xcode to ensure the app can be signed and installed on your device
- Run the app using either
flutter run
- IDE run of
main.dart
This should get the app running on your device. For the best experience, run it in Flutter's release mode.
flutter run --release
After building the app, you'll likely find that you can't sign in. This is because you're missing a very important bit of information:
client_id
This value (along with the redirect_uri
) is specific to Reddit's oauth system and are required to authorize your account with this app.
To actually make the app useful, you're going to need to make your own client id.
Below is a link to Reddit's OAuth2 startup instructions.
Follow this OAuth2 "Getting Started" portion.
This will set up your Reddit account to being a "developer", granting you access to their OAuth APIs.
Make sure you set up the app as an "installed app".
(Your redirect_uri
is assumed to be https://www.reddit.com
)
Once you have a developer app created, make a new file in lib/app/
called secrets.dart
.
There, add this line of code: const clientId = '';
and populate the empty string with your client id.
Building the .apk
and installing it should be good enough.
(I don't own an Android device so your experience may vary.)
Apple likes to make things incredibly difficult.
Apple devices require a valid provisioning profile. The standard, unpaid Apple developer account only allows 7 days. To get around this, you'll either have to pay Apple for a developer account, or deal with reinstalling the app every week.
For those that are choosing to reinstall the app every week, simply run:
flutter run --release
(You may need to open XCode go to Runner -> Singing & Capabilities and check "Automatically manage signing" and select a team.)
If you need to refresh your provisioning profile for any reason, you can delete the old one and generate a new one.
The old one can be found at /Library/MobileDevice/Provisinoing Profiles
.
For example
rm /Users/myusername/Library/MobileDevice/Provisioning\ Profiles/<some random hash>.mobileprovision
This project isn't currently accepting changes to its main branch. I mainly use this project as a way to experiment with Flutter.
Forking is welcome, though. If there's anything you'd personally like in a Reddit app, feel free to fork this repo and implement it yourself.
If you think you have a particularly good idea, feel free to post an issue, but just know that I'm unlikely to implement it.