Flutter
Add a native feature request board to your Flutter app. One package, one line of setup.
Needs Flutter 3.10 or later and Dart 3.0 or later. Runs on Android, iOS, web, macOS, Windows and Linux.
Install
Add the package
The package installs from GitHub. Add it to your app's
pubspec.yaml:pubspec.yamldependencies: fewchurs: git: url: https://github.com/fewchurs/fewchurs-flutter.git path: packages/fewchurs ref: v1.2.0 dependency_overrides: fewchurs_core: git: url: https://github.com/fewchurs/fewchurs-flutter.git path: packages/fewchurs_core ref: v1.2.0Get it
flutter pub get
ref pins the release (v1.2.0 is the latest). Keep both ref lines the same. The dependency_overrides part is only needed until the packages are on pub.dev.Platform setup
Android: release builds need the internet permission in android/app/src/main/AndroidManifest.xml. Debug builds have it already, which is why a missing one only shows up in release.
<uses-permission android:name="android.permission.INTERNET"/>macOS: allow network access in both macos/Runner/DebugProfile.entitlements and Release.entitlements:
<key>com.apple.security.network.client</key>
<true/>iOS, web, Windows and Linux need nothing.
Set up
Call configure once, before runApp. Use the API key from your dashboard. It makes no network calls, so it doesn't slow down startup.
import 'package:fewchurs/fewchurs.dart';
import 'package:flutter/material.dart';
void main() {
Fewchurs.configure(apiKey: 'fr_live_xxx');
runApp(const MyApp());
}Show the board
Open the board as a full-screen page. It handles everything inside: the Top and New tabs, votes, comments and new requests.
FilledButton(
onPressed: () => Fewchurs.showBoard(context),
child: const Text('Suggest a feature'),
)Or as a bottom sheet:
Fewchurs.showBoardSheet(context);Or put FewchursBoard anywhere, like a tab or a route:
// In a tab or a page that has its own app bar
const FewchursBoard(showAppBar: false)On tablets, web and desktop the board shows the list and the open request side by side.
To open one request, for example from a deep link or a notification, pass its ID:
Fewchurs.showBoard(
context,
board: FewchursBoard(showCloseButton: true, initialFeatureId: id),
);Colors and theme
By default the board follows your app's Theme: colors, fonts and light or dark mode. To change it, add a FewchursThemeData to your theme's extensions.
MaterialApp(
theme: ThemeData(
colorSchemeSeed: const Color(0xFFED5F18),
extensions: const [
FewchursThemeData(
cardRadius: 14,
voteButtonStyle: VoteButtonStyle.pill,
),
],
),
)The package README covers every option: tabs, copy and translations, iOS-style widgets, custom pieces of the board, and building your own UI.
What your plan changes
Your plan is applied on our servers, so you never need to change code or update the package when it changes.
| Free | Starter | Pro | |
|---|---|---|---|
| Requests the board lists | First 5 | First 200 | All |
| "Powered by Fewchurs" line | Shown | Hidden | Hidden |
Newer requests are still saved and show in your dashboard. A request someone just submitted appears on their board straight away, but once the app is past its limit it leaves the list on the next refresh. See pricing.
About the API key
It's fine to put this key in your app. It can only do what the board does: list, vote, comment and suggest. It can't change your settings or read anything private.