View Full Resolution
100% Free Access
AI Architecture
Cursor AI / Claude 3.5
Category
AI Agents
Best Use Case
Commercial & Cinematic
AI Agents
Verified Blueprint
Flutter Development Guidelines Agent Rule
Cursor rules for Flutter development with MVVM architecture, Riverpod state management, Material widgets, and Dart style guidelines.
Ready-to-Run Prompt
100% Free Copy
### Code style and structure
- Write concise and efficient source code.
- Strive for source code that is easy to read and maintain, and provide accurate examples.
- Avoid duplication of code: modularise widgets and functions into reusable components.
- Use descriptive variable names: use names with auxiliary verbs such as isLoading, hasError.
### Directory structure under /lib.
- /lib/models/: data models and type definitions (Models)
- /lib/viewmodels/: state management and business logic (ViewModel)
- /lib/views/widgets/: reusable widgets (View)
- /lib/views/screens/: per-screen widgets (View)
- /lib/services/: service classes for API calls and data access
- /lib/utils/: helper functions and constants
### Naming conventions
- Directories and files: use snakeCase (e.g. auth_wizard.dart).
- UpperCamelCase: use for class names/enumerations/typedefs/type parameters, etc.
- LowerCamelCase: used for variables/functions/class members (properties, methods), etc.
- lowercase_with_underscores (snakeCase): for files/directories/packages/libraries, etc.
### Import.
- Place imports starting with dart: first (use lowercase_with_underscores for the import prefix).
- Next, import third-party packages (package:).
- Finally, import relative paths and files in the project.
### Using Dart.
- Take advantage of type safety: use static typing in all code and utilise type inference wherever possible.
### UI and styling.
- Use Material widgets.
- Unify theming: use ThemeData to apply consistent styles.
### Performance optimisation.
- Prefer StatelessWidget when state is not required.
- Make use of const constructors: if widgets are immutable, use const to optimise builds.
### State management.
- Use riverpod to implement efficient state management.
- Manage state within the ViewModel and link it to the View.
### Software architecture
Use MVVM (Model View ViewModel).
### Key rules.
- To improve code readability, lines should not exceed 80 characters in length.
- Use braces {} for all flow control structures (if, for, while, etc.).
- Use comment-outs proactively to help understand and maintain code.
- Use single quotes, avoid the use of double quotes and use consistent string literals to improve readability.
- Write concise and efficient source code.
- Strive for source code that is easy to read and maintain, and provide accurate examples.
- Avoid duplication of code: modularise widgets and functions into reusable components.
- Use descriptive variable names: use names with auxiliary verbs such as isLoading, hasError.
### Directory structure under /lib.
- /lib/models/: data models and type definitions (Models)
- /lib/viewmodels/: state management and business logic (ViewModel)
- /lib/views/widgets/: reusable widgets (View)
- /lib/views/screens/: per-screen widgets (View)
- /lib/services/: service classes for API calls and data access
- /lib/utils/: helper functions and constants
### Naming conventions
- Directories and files: use snakeCase (e.g. auth_wizard.dart).
- UpperCamelCase: use for class names/enumerations/typedefs/type parameters, etc.
- LowerCamelCase: used for variables/functions/class members (properties, methods), etc.
- lowercase_with_underscores (snakeCase): for files/directories/packages/libraries, etc.
### Import.
- Place imports starting with dart: first (use lowercase_with_underscores for the import prefix).
- Next, import third-party packages (package:).
- Finally, import relative paths and files in the project.
### Using Dart.
- Take advantage of type safety: use static typing in all code and utilise type inference wherever possible.
### UI and styling.
- Use Material widgets.
- Unify theming: use ThemeData to apply consistent styles.
### Performance optimisation.
- Prefer StatelessWidget when state is not required.
- Make use of const constructors: if widgets are immutable, use const to optimise builds.
### State management.
- Use riverpod to implement efficient state management.
- Manage state within the ViewModel and link it to the View.
### Software architecture
Use MVVM (Model View ViewModel).
### Key rules.
- To improve code readability, lines should not exceed 80 characters in length.
- Use braces {} for all flow control structures (if, for, while, etc.).
- Use comment-outs proactively to help understand and maintain code.
- Use single quotes, avoid the use of double quotes and use consistent string literals to improve readability.
Structured JSON Schema
Use with automated API pipelines, LangChain, or custom image generators
{
"system_prompt": "### Code style and structure\n- Write concise and efficient source code.\n- Strive for source code that is easy to read and maintain, and provide accurate examples.\n- Avoid duplication of code: modularise widgets and functions into reusable components.\n- Use descriptive variable names: use names with auxiliary verbs such as isLoading, hasError.\n\n### Directory structure under /lib.\n- /lib/models/: data models and type definitions (Models)\n- /lib/viewmodels/: state management and business logic (ViewModel)\n- /lib/views/widgets/: reusable widgets (View)\n- /lib/views/screens/: per-screen widgets (View)\n- /lib/services/: service classes for API calls and data access\n- /lib/utils/: helper functions and constants\n\n### Naming conventions\n- Directories and files: use snakeCase (e.g. auth_wizard.dart).\n- UpperCamelCase: use for class names/enumerations/typedefs/type parameters, etc.\n- LowerCamelCase: used for variables/functions/class members (properties, methods), etc.\n- lowercase_with_underscores (snakeCase): for files/directories/packages/libraries, etc.\n\n### Import.\n- Place imports starting with dart: first (use lowercase_with_underscores for the import prefix).\n- Next, import third-party packages (package:).\n- Finally, import relative paths and files in the project.\n\n### Using Dart.\n- Take advantage of type safety: use static typing in all code and utilise type inference wherever possible.\n\n### UI and styling.\n- Use Material widgets.\n- Unify theming: use ThemeData to apply consistent styles.\n\n### Performance optimisation.\n- Prefer StatelessWidget when state is not required.\n- Make use of const constructors: if widgets are immutable, use const to optimise builds.\n\n### State management.\n- Use riverpod to implement efficient state management.\n- Manage state within the ViewModel and link it to the View.\n\n### Software architecture\nUse MVVM (Model View ViewModel).\n\n### Key rules.\n- To improve code readability, lines should not exceed 80 characters in length.\n- Use braces {} for all flow control structures (if, for, while, etc.).\n- Use comment-outs proactively to help understand and maintain code.\n- Use single quotes, avoid the use of double quotes and use consistent string literals to improve readability.",
"prompt_type": "agent_rule",
"framework": "cursor",
"globs": "**/*.dart",
"compatible_models": [
"Claude 3.5 Sonnet",
"GPT-4o",
"Cursor AI",
"Gemini 2.5 Flash"
],
"download_filename": "flutter-development-guidelines.cursorrules",
"tags": [
"cursor",
"cursorrules",
"agent",
"coding",
"flutter"
]
}
Internal Discovery
View All →