[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-9221":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":43,"readmeContent":44,"aiSummary":45,"trendingCount":16,"starSnapshotCount":16,"syncStatus":46,"lastSyncTime":47,"discoverSource":48},9221,"flutter_boilerplate_project","zubairehman\u002Fflutter_boilerplate_project","zubairehman","A boilerplate project created in flutter using MobX and Provider.","http:\u002F\u002Fzubairehman.surge.sh\u002F",null,"Dart",2423,913,75,8,0,3,30.88,"MIT License",false,"master",true,[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"boilerplate","boilerplate-template","dart","dependency-injection","dio","encryption-decryption","flutter","flutter-boilerplate","flutter-state-management","inject","injector","logging","mobx","provider","sembast","state-management","user-notifications","validator","xxtea","2026-06-12 02:02:04","# This branch is still under development\n\n\n# Boilerplate Project\n\nA boilerplate project created in flutter using MobX and Provider. Boilerplate supports both web and mobile, clone the appropriate branches mentioned below:\n\n* For Mobile: https:\u002F\u002Fgithub.com\u002Fzubairehman\u002Fflutter-boilerplate-project\u002Ftree\u002Fmaster (stable channel)\n* For Web: https:\u002F\u002Fgithub.com\u002Fzubairehman\u002Fflutter-boilerplate-project\u002Ftree\u002Ffeature\u002Fweb-support (beta channel)\n\n## Getting Started\n\nThe Boilerplate contains the minimal implementation required to create a new library or project. The repository code is preloaded with some basic components like basic app architecture, app theme, constants and required dependencies to create a new project. By using boiler plate code as standard initializer, we can have same patterns in all the projects that will inherit it. This will also help in reducing setup & development time by allowing you to use same code pattern and avoid re-writing from scratch.\n\n## How to Use \n\n**Step 1:**\n\nDownload or clone this repo by using the link below:\n\n```\nhttps:\u002F\u002Fgithub.com\u002Fzubairehman\u002Fflutter-boilerplate-project.git\n```\n\n**Step 2:**\n\nGo to project root and execute the following command in console to get the required dependencies: \n\n```\nflutter pub get \n```\n\n**Step 3:**\n\nThis project uses `inject` library that works with code generation, execute the following command to generate files:\n\n```\nflutter packages pub run build_runner build --delete-conflicting-outputs\n```\n\nor watch command in order to keep the source code synced automatically:\n\n```\nflutter packages pub run build_runner watch\n```\n\n## Hide Generated Files\n\nIn-order to hide generated files, navigate to `Android Studio` -> `Preferences` -> `Editor` -> `File Types` and paste the below lines under `ignore files and folders` section:\n\n```\n*.inject.summary;*.inject.dart;*.g.dart;\n```\n\nIn Visual Studio Code, navigate to `Preferences` -> `Settings` and search for `Files:Exclude`. Add the following patterns:\n```\n**\u002F*.inject.summary\n**\u002F*.inject.dart\n**\u002F*.g.dart\n```\n\n## Boilerplate Features:\n\n* Splash\n* Login\n* Home\n* Routing\n* Theme\n* Dio\n* Database\n* MobX (to connect the reactive data of your application with the UI)\n* Provider (State Management)\n* Encryption\n* Validation\n* Code Generation\n* User Notifications\n* Logging\n* Dependency Injection\n* Dark Theme Support (new)\n* Multilingual Support (new)\n* Provider example (new)\n\n### Up-Coming Features:\n\n* Connectivity Support\n* Background Fetch Support\n\n### Libraries & Tools Used\n\n* [Dio](https:\u002F\u002Fgithub.com\u002Fflutterchina\u002Fdio)\n* [Database](https:\u002F\u002Fgithub.com\u002Ftekartik\u002Fsembast.dart)\n* [MobX](https:\u002F\u002Fgithub.com\u002Fmobxjs\u002Fmobx.dart) (to connect the reactive data of your application with the UI)\n* [Provider](https:\u002F\u002Fgithub.com\u002FrrousselGit\u002Fprovider) (State Management)\n* [Encryption](https:\u002F\u002Fgithub.com\u002Fxxtea\u002Fxxtea-dart)\n* [Validation](https:\u002F\u002Fgithub.com\u002Fdart-league\u002Fvalidators)\n* [Logging](https:\u002F\u002Fgithub.com\u002Fzubairehman\u002FFlogs)\n* [Notifications](https:\u002F\u002Fgithub.com\u002FAndreHaueisen\u002Fflushbar)\n* [Json Serialization](https:\u002F\u002Fgithub.com\u002Fdart-lang\u002Fjson_serializable)\n* [Dependency Injection](https:\u002F\u002Fgithub.com\u002Ffluttercommunity\u002Fget_it)\n\n### Folder Structure\nHere is the core folder structure which flutter provides.\n\n```\nflutter-app\u002F\n|- android\n|- build\n|- ios\n|- lib\n|- test\n```\n\nHere is the folder structure we have been using in this project\n\n```\nlib\u002F\n|- constants\u002F\n|- data\u002F\n|- stores\u002F\n|- ui\u002F\n|- utils\u002F\n|- widgets\u002F\n|- main.dart\n|- routes.dart\n```\n\nNow, lets dive into the lib folder which has the main code for the application.\n\n```\n1- constants - All the application level constants are defined in this directory with-in their respective files. This directory contains the constants for `theme`, `dimentions`, `api endpoints`, `preferences` and `strings`.\n2- data - Contains the data layer of your project, includes directories for local, network and shared pref\u002Fcache.\n3- stores - Contains store(s) for state-management of your application, to connect the reactive data of your application with the UI. \n4- ui — Contains all the ui of your project, contains sub directory for each screen.\n5- util — Contains the utilities\u002Fcommon functions of your application.\n6- widgets — Contains the common widgets for your applications. For example, Button, TextField etc.\n7- routes.dart — This file contains all the routes for your application.\n8- main.dart - This is the starting point of the application. All the application level configurations are defined in this file i.e, theme, routes, title, orientation etc.\n```\n\n### Constants\n\nThis directory contains all the application level constants. A separate file is created for each type as shown in example below:\n\n```\nconstants\u002F\n|- app_theme.dart\n|- dimens.dart\n|- endpoints.dart\n|- preferences.dart\n|- strings.dart\n```\n\n### Data\n\nAll the business logic of your application will go into this directory, it represents the data layer of your application. It is sub-divided into three directories `local`, `network` and `sharedperf`, each containing the domain specific logic. Since each layer exists independently, that makes it easier to unit test. The communication between UI and data layer is handled by using central repository.\n\n```\ndata\u002F\n|- local\u002F\n    |- constants\u002F\n    |- datasources\u002F\n    |- app_database.dart\n   \n|- network\u002F\n    |- constants\u002F\n    |- exceptions\u002F\n    |- rest_client.dart\n    \n|- sharedpref\n    |- constants\u002F\n    |- shared_preference_helper.dart\n    \n|- repository.dart\n\n```\n\n### Stores\n\nThe store is where all your application state lives in flutter. The Store is basically a widget that stands at the top of the widget tree and passes it's data down using special methods. In-case of multiple stores, a separate folder for each store is created as shown in the example below:\n\n```\nstores\u002F\n|- login\u002F\n    |- login_store.dart\n    |- form_validator.dart\n```\n\n### UI\n\nThis directory contains all the ui of your application. Each screen is located in a separate folder making it easy to combine group of files related to that particular screen. All the screen specific widgets will be placed in `widgets` directory as shown in the example below:\n\n```\nui\u002F\n|- login\n   |- login_screen.dart\n   |- widgets\n      |- login_form.dart\n      |- login_button.dart\n```\n\n### Utils\n\nContains the common file(s) and utilities used in a project. The folder structure is as follows: \n\n```\nutils\u002F\n|- encryption\n   |- xxtea.dart\n|- date\n  |- date_time.dart\n```\n\n### Widgets\n\nContains the common widgets that are shared across multiple screens. For example, Button, TextField etc.\n\n```\nwidgets\u002F\n|- app_icon_widget.dart\n|- empty_app_bar.dart\n|- progress_indicator.dart\n```\n\n### Routes\n\nThis file contains all the routes for your application.\n\n```dart\nimport 'package:flutter\u002Fmaterial.dart';\n\nimport 'ui\u002Fpost\u002Fpost_list.dart';\nimport 'ui\u002Flogin\u002Flogin.dart';\nimport 'ui\u002Fsplash\u002Fsplash.dart';\n\nclass Routes {\n  Routes._();\n\n  \u002F\u002Fstatic variables\n  static const String splash = '\u002Fsplash';\n  static const String login = '\u002Flogin';\n  static const String home = '\u002Fpost';\n\n  static final routes = \u003CString, WidgetBuilder>{\n    splash: (BuildContext context) => SplashScreen(),\n    login: (BuildContext context) => LoginScreen(),\n    home: (BuildContext context) => HomeScreen(),\n  };\n}\n```\n\n### Main\n\nThis is the starting point of the application. All the application level configurations are defined in this file i.e, theme, routes, title, orientation etc.\n\n```dart\nimport 'package:boilerplate\u002Froutes.dart';\nimport 'package:flutter\u002Fmaterial.dart';\nimport 'package:flutter\u002Fservices.dart';\n\nimport 'constants\u002Fapp_theme.dart';\nimport 'constants\u002Fstrings.dart';\nimport 'ui\u002Fsplash\u002Fsplash.dart';\n\nvoid main() {\n  SystemChrome.setPreferredOrientations([\n    DeviceOrientation.portraitUp,\n    DeviceOrientation.portraitDown,\n    DeviceOrientation.landscapeRight,\n    DeviceOrientation.landscapeLeft,\n  ]).then((_) {\n    runApp(MyApp());\n  });\n}\n\nclass MyApp extends StatelessWidget {\n  \u002F\u002F This widget is the root of your application.\n  @override\n  Widget build(BuildContext context) {\n    return MaterialApp(\n      debugShowCheckedModeBanner: false,\n      title: Strings.appName,\n      theme: themeData,\n      routes: Routes.routes,\n      home: SplashScreen(),\n    );\n  }\n}\n```\n\n## Wiki\n\nCheckout [wiki](https:\u002F\u002Fgithub.com\u002Fzubairehman\u002Fflutter-boilerplate-project\u002Fwiki) for more info\n\n## Conclusion\n\nI will be happy to answer any questions that you may have on this approach, and if you want to lend a hand with the boilerplate then please feel free to submit an issue and\u002For pull request 🙂\n\nAgain to note, this is example can appear as over-architectured for what it is - but it is an example only. If you liked my work, don’t forget to ⭐ star the repo to show your support.\n\n","这是一个使用Flutter框架结合MobX和Provider构建的模板项目，旨在为开发者提供一个快速启动新项目的起点。项目支持移动和Web平台，内置了包括登录、主页、路由、主题管理等功能，并且集成了Dio网络请求库、数据库操作、状态管理和加密解密等技术特性。特别适合需要高效开发跨平台应用（如移动应用及Web应用）的场景下使用，能够显著减少项目初始化阶段的工作量，帮助团队保持代码风格一致性和提高开发效率。",2,"2026-06-11 03:21:46","top_language"]