Flutter Bond is a Palestinian product proudly developed in Gaza by a passionate Palestinian engineer. This template serves as One Studio’s public framework for all internal Flutter applications. We invite you to use this template for your projects and contribute to its ongoing improvement.
Flutter Bond is a work-in-progress mini-framework inspired by Clean Architecture, lessons learned from past projects, and innovative ideas from the Laravel ecosystem.
Flutter Bond is a mobile application framework built on top of Flutter with expressive, simplified architecture. Our aim is to make development not just easier but also fun. With Flutter Bond, you can focus more on building features rather than worrying about boilerplate code. Some of the core features are:
- Seamless state management.
- Simplified API calls with Bond Fire.
- Easy navigation and routing.
- Extensible architecture with Bond Core.
- CLI support for faster development with Bond CLI.
Flutter Bond is scalable, flexible, and designed to build robust, high-quality applications.
Requirements: Flutter 3.47.7 (Dart 3.13.5), Java 17,
Xcode 26 (iOS 15+), and dart pub global activate flutterfire_cli for iOS archives.
dart install bond_cli
bond create project # clones this template at v2.1.0 and renames itOr clone this repository and set it up by hand:
flutter pub get
cp env.example.json env.staging.json # and env.json for production; timeouts are in milliseconds
flutter run --flavor Staging --dart-define-from-file=env.staging.json
flutter run --flavor Production --dart-define-from-file=env.json- Flavors:
staging/productionon Android,Staging/Productionschemes on iOS (bundle idsps.app.bond.staging/ps.app.bond). - Firebase:
lib/firebase_options_{production,staging}.dart,android/app/src/<flavor>/google-services.jsonandios/<Flavor>/GoogleService-Info.plist. The iOS Staging plist is a placeholder: replace it with the file from your Firebase console. - iOS uses Swift Package Manager only (no CocoaPods). Set your
DEVELOPMENT_TEAMin Xcode to run on a device. - Android release builds are signed with
android/key.propertiesif present, otherwise with the debug keys.
.mcp.json registers two MCP servers. Claude Code asks once to approve them; check them with
claude mcp list.
dart: the official Dart & Flutter MCP server: analyzer, pub, tests, reading and searching the source of every dependency (including the bond_* packages), and tools for the running app. It starts throughtool/mcp/dart.sh, which always uses the Flutter version pinned in.fvmrc(3.47.7) and never another Flutter on your PATH.bond: the Bond MCP server from bond_cli: what each bond_* package does, its public API read from the version this project uses, migration notes, and thebond creategenerators (model, widget, service provider, project). Install it once withdart install bond_cli(Dart 3.13 or newer);tool/mcp/bond.shstarts it.
Projects created with bond create project inherit this setup.
| Template | bond_* packages | bond_cli | Flutter |
|---|---|---|---|
v1.0.0 (legacy) |
bond_core 0.0.3 … bond_form_riverpod 0.0.17+19 | 0.0.4+3 | 3.19 – 3.27 |
v2.0.0 |
bond_core, cache, network, form, form_riverpod 0.1.x; notifications, app_analytics 0.2.x | 0.1.x | 3.47.7+ |
v2.1.0 |
same as v2.0.0; adds the Claude Code MCP setup (no app code changes) | 0.2.x | 3.47.7+ |
Upgrading a v1 app: see MIGRATION.md.
Your project is a copy of this template, so template changes (iOS and Android config, scripts,
tooling) do not arrive with flutter pub upgrade; the bond_* packages do. bond upgrade
(bond_cli 0.3.0 or newer) brings the template changes in, even though your project was renamed:
bond upgrade --dry-run # what would change, nothing is written
bond upgrade # to the newest tag, on a new branch bond/upgrade-<version>Your files are merged line by line; conflicts get <<<<<<< markers, and files you deleted stay
deleted. It needs bond.yaml (written by bond create project; older projects pass
--from v2.0.0 once). Then run flutter pub upgrade, dart fix --apply for renamed APIs, and read
MIGRATION.md.
Flutter Bond comes with comprehensive documentation to get you up and running in no time. You can refer to our Bond Docs Repo for detailed guides and tutorials.
For hands-on experience, you can follow the Flutter Bond tutorial series to build a fully functional application from scratch.
If you prefer a more interactive learning experience, we're in the process of developing a complete video tutorial library.
- Bond Core - The core architecture.
- Bond CLI - The Command Line Interface for Flutter Bond.
- Bond Docs - Comprehensive Documentation.
We are actively looking for sponsors to help us maintain and grow this project. If you are interested in becoming a sponsor, please get in touch with us.
We welcome contributions from the community. For guidelines on how to contribute, please refer to our Contribution Guidelines.
If you discover a security vulnerability within Flutter Bond, please send an e-mail to [salahelamassi@gmail.com]. All security vulnerabilities will be promptly addressed.