{"id":19267182,"url":"https://github.com/stevenosse/flutter_kit","last_synced_at":"2025-04-09T17:20:14.819Z","repository":{"id":141408779,"uuid":"583726015","full_name":"stevenosse/flutter_kit","owner":"stevenosse","description":"Opinionated flutter starter project using feature-first folder structure.","archived":false,"fork":false,"pushed_at":"2025-03-08T11:50:56.000Z","size":1338,"stargazers_count":73,"open_issues_count":1,"forks_count":15,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-02T16:06:36.142Z","etag":null,"topics":["dart","flutter","flutter-bloc","template"],"latest_commit_sha":null,"homepage":"https://stevenosse.github.io/flutter_kit/","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stevenosse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-30T17:52:51.000Z","updated_at":"2025-03-27T06:24:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"81fc4c95-8130-4a8f-898b-2a69001703a2","html_url":"https://github.com/stevenosse/flutter_kit","commit_stats":null,"previous_names":["stevenosse/flutter_kit"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stevenosse%2Fflutter_kit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stevenosse%2Fflutter_kit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stevenosse%2Fflutter_kit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stevenosse%2Fflutter_kit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stevenosse","download_url":"https://codeload.github.com/stevenosse/flutter_kit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248074922,"owners_count":21043490,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dart","flutter","flutter-bloc","template"],"created_at":"2024-11-09T20:10:53.159Z","updated_at":"2025-04-09T17:20:14.795Z","avatar_url":"https://github.com/stevenosse.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\u003cb\u003eFlutter Kit\u003c/b\u003e\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003eOpinionated flutter starter project using feature-first folder structure.\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"GitHub stars\" src=\"https://img.shields.io/github/stars/stevenosse/flutter_kit\"\u003e\n    \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\n    \u003cimg alt=\"GitHub forks\" src=\"https://img.shields.io/github/forks/stevenosse/flutter_kit\"\u003e\n\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"flutter-kit-logo.png\" width=\"100\"\u003e\n\u003c/div\u003e\n\n## Motivation\n\nFlutter is geat, really. But after few years of development, it's not as easy as it seems; starting a new project can be quite a challenge. The fact that Flutter is as less opinionated has some benefits but also comes with some drawbacks among those the pain of starting a new project. You can easily waste a lot how hours to get productive, while you only wanted to POC a new idea.\n\nThis kit provides a set of preconfigured features and utilities to help you get started with your project. It is inspired by my own experience and knowledge of Flutter. I hope you find it useful.\n\nIf you are not confortable with some choices i made in the structure, we can either discuss it (yeah i may find it helpful) or fork this repo to create your own.\n\n## What's in this kit?\nThis kit includes:\n\n- An example login feature\n- I18n\n- Navigation\n- State management\n- Extensions\n- Basic config for API calls\n- Theming (Material 3)\n\n## Get started\n\n### 1. Clone the repository\n```bash\ngit clone git@github.com:stevenosse/flutter_kit.git\n```\n\n### 2. Configure your project\n\nAdd your configuration to the `pubspec.yaml` file under the `flutter_kit` key:\n\n```yaml\nflutter_kit:\n  app_name: Your App Name\n  ios_bundle_id: com.yourcompany.yourapp\n  android_package_name: com.yourcompany.yourapp\n```\n\n### 3. Run the setup script\n\n#### On macOS/Linux:\n```bash\nchmod +x setup.sh\n./setup.sh\n```\n\n#### On Windows:\n```bash\nsetup.bat\n```\n\nThe setup script will:\n- Update your app name for both iOS and Android\n- Change the iOS bundle identifier\n- Change the Android package name\n- Move the Android files to the correct package structure\n\n### 4. Run flutter pub get\n```bash\nflutter pub get\n```\n\n## Features\nThis kit comes with a set of preconfigured features and utilities:\n\n- I18n\n- Navigation (using auto_route)\n- State management (using plain change notifier)\n- Extensions (on context, iterable)\n- Utility widgets\n- Default Theming using Material 3\n\n## 🗺️ I18n\nThis kit uses [intl_utils](https://pub.dev/packages/intl_utils) for internationalization. To add a new language, add a new file to the `src/core/i18n/l10n` folder. The file name should be the language code prefixed with intl_ (e.g. `intl_fr.arb`).\n\nTo generate the code for the new language, run the following command:\n\n```bash\nflutter pub run intl_utils:generate\n```\n\nAlternatively, you can install the [flutter_intl](https://marketplace.visualstudio.com/items?itemName=localizely.flutter-intl) package in VSCode to automatically generate the code when you save the file.\n\n## 🛣️ Navigation\nThis kit uses [auto_route](https://pub.dev/packages/auto_route) for navigation. To add a new route, add a new file to the `src/core/routing/app_router.dart` file. \n\nSee the [auto_route documentation](https://pub.dev/packages/auto_route) for more information.\n\n## 🧱 State Management\nThis kit uses plain change notifiers for state management. \n\nAn example of a change notifier can be found in the `src/features/login/logic` folder.\n\n## 🗼 Extensions\nThis kit comes with a few extensions on the `BuildContext` and `Iterable` classes. See the `src/shared/extensions` folder for more information.\n\n## 📌 Utils\n### Widgets\nThis kit comes with a few utility widgets. See the `src/shared/components` folder for more information.\n\n### Assets\nAssets paths are automatically generated when using build_runnner thanks to the [flutter_gen](https://pub.dev/packages/https://pub.dev/packages/flutter_gen) package.\n\nEach time you add an asset, run the following command:\n\n```bash\n$ fluttergen\n```\n\n### CLI\nThis kit comes with a few CLI commands to make your life easier.\nIt uses make:\n\n- Windows: `choco install make`\n- Linux: `sudo apt install make`\n- Mac: `brew install make`\n\nSee the `Makefile` for more information.\n\n## 🖌️ Theming\nThis kit uses the new Material 3 theming system. See the `src/core/theme` folder for more information.\n\nThe default color scheme is generated using https://m3.material.io/theme-builder#/custom. You can use this tool to generate your own color scheme.\n\n## Showcase\n- [LineAI](https://github.com/stevenosse/lineai)\n\n## 💼 Need a new feature?\nIf you need a new feature, please open an issue on the [GitHub repository](https://github.com/stevenosse/flutter_boilerplate/issues/new)\n\n## 📇 Get in touch\nIf you have any questions, feel free to contact me on [Twitter](https://twitter.com/nossesteve) \n\n## TODO\n- [ ] Setup a CI pipeline\n- [ ] Add setup for unit tests \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstevenosse%2Fflutter_kit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstevenosse%2Fflutter_kit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstevenosse%2Fflutter_kit/lists"}