a feature rich Twitter experience built with Flutter
Harpy is currently still in development. See the project for more information about the progress.
This project aims to provide a good example for a medium-big sized Flutter app in hopes that it will be useful for some.
Some interesting features of the app include:
- flutter_bloc for the main state management.
- get_it as a service provider that includes the ability to navigate and to show on screen messages from anywhere in the app.
- firebase_analytics for analytics.
- sentry as an online error tracking service where users can send a crash report when an exception has not been handled in the app.
- Fully featured theme customization.
- Fully featured video player using the video_player package.
- A 'pro' and 'free' android product flavor.
Harpy is being released in the Play Store for Android, therefore only Android devices are used for testing the builds.
Get your Twitter API key here.
- Create a yaml file
app_config.yaml
inassets/config/
with the key and secret.
twitter:
consumerKey: "your key"
consumerSecret: "your secret"
The Sentry error tracking service is used to report errors in release mode.
- The DSN provided by Sentry can be entered in the
app_config.yaml
inassets/config/
.
sentry:
dsn: "your dsn"
When omitted or left empty, errors are not sent to an error tracking service in release mode.
The app can be built with the "free" or "pro" flavor by running:
flutter run --flavor free -t lib/main_free.dart
flutter run --flavor pro -t lib/main_pro.dart
An appbundle for release can be built using:
flutter build appbundle --flavor free -t lib/main_free.dart --bundle-sksl-path sksl.json
flutter build appbundle --flavor pro -t lib/main_pro.dart --bundle-sksl-path sksl.json
The --bundle-sksl-path
flag is used to pre-compile shaders used in the app for
improved animations on the first run.
See Reduce shader compilation jank on
mobile for more information.
To generate json_serializable models:
flutter packages pub run build_runner build