mdennis10 / harpy

A Twitter app built with Flutter

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

a feature rich Twitter experience built with Flutter

Get it on Google Play


Harpy is currently still in development. See the project for more information about the progress.


More images
Home User profile Theme selection
Home screen User profile Theme selection

About

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.

Development / Setup

Harpy is being released in the Play Store for Android, therefore only Android devices are used for testing the builds.

Twitter API key

Get your Twitter API key here.

  • Create a yaml file app_config.yaml in assets/config/ with the key and secret.
twitter:
    consumerKey: "your key"
    consumerSecret: "your secret"

Sentry

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 in assets/config/.
sentry:
    dsn: "your dsn"

When omitted or left empty, errors are not sent to an error tracking service in release mode.

Building

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.

Misc

To generate json_serializable models:

  • flutter packages pub run build_runner build

About

A Twitter app built with Flutter

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Dart 98.9%Language:Ruby 1.0%Language:Swift 0.1%Language:Java 0.0%Language:Objective-C 0.0%