Token导航 LogoToken导航TokenDH.com
开发规范权限需确认github未标认证来源可访问许可证需确认审计未展示

flutter-conventions-&-best-practicesFlutter conventions 最佳实践

Agent Skill

flutter-conventions-&-best-practices 用于补充开发规范相关能力,适合在 Codex、Claude、Cursor、Gemini CLI 中需要让 Agent 承接开发规范相关任务时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

17,967

周安装

602

GitHub Stars

公开资料未说明

下载量

7,167
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:flutter-conventions-&-best-practices(Flutter conventions 最佳实践)
来源仓库:https://github.com/kaakati/rails-enterprise-dev
仓库路径:skills/flutter-conventions-&-best-practices
安装命令:
npx skills add kaakati/rails-enterprise-dev --skill "flutter-conventions-&-best-practices"
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

AgentSkills.tonpx skills
npx skills add kaakati/rails-enterprise-dev --skill "flutter-conventions-&-best-practices"

简介

提供 Flutter 开发规范与最佳实践指导,提升代码质量和团队协作效率。

  • 适用于 Codex、Claude、Cursor、Gemini CLI 等宿主环境中的 Flutter 项目规范化开发。
  • 通过 GitHub 仓库安装,使用 npx skills add 命令添加指定技能。
  • 安装前需确认权限范围、维护状态,注意可能触发的文件读写和网络访问操作。
  • flutter-conventions-&-best-practices 属于开发规范类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Flutter Conventions & Best Practices

Dart 3.x Features

Pattern Matching

String describeUser(User user) {
  return switch (user) {
    User(role: 'admin', isActive: true) => 'Active administrator',
    User(role: 'user', isActive: true) => 'Active user',
    User(isActive: false) => 'Inactive account',
    _ => 'Unknown status',
  };
}

Records

(int, String) getUserInfo() => (123, 'John Doe');

final (id, name) = getUserInfo();

Sealed Classes

sealed class Result<T> {}
class Success<T> extends Result<T> {
  final T data;
  Success(this.data);
}
class Error<T> extends Result<T> {
  final String message;
  Error(this.message);
}

File Naming Conventions

  • Files: snake_case.dart
  • Classes: PascalCase
  • Variables/Functions: camelCase
  • Constants: lowerCamelCase or SCREAMING_SNAKE_CASE for compile-time constants
// user_controller.dart
class UserController extends GetxController {
  static const int maxRetries = 3;
  static const String BASE_URL = 'https://api.example.com';

  final userName = 'John'.obs;

  void fetchUserData() {
    // ...
  }
}

Directory Organization

Layer-first (recommended for Clean Architecture):

lib/
├── domain/
├── data/
└── presentation/

Feature-first (alternative):

lib/
└── features/
    ├── auth/
    │   ├── domain/
    │   ├── data/
    │   └── presentation/
    └── profile/

Null Safety

// Use late for non-nullable fields initialized later
class MyController extends GetxController {
  late final UserRepository repository;

  @override
  void onInit() {
    super.onInit();
    repository = Get.find();
  }
}

// Use ? for nullable types
String? userName;

// Use ! only when absolutely certain
final name = userName!; // Use sparingly

// Prefer ?? for defaults
final displayName = userName ?? 'Guest';

Async/Await Best Practices

// Use async/await for asynchronous operations
Future<User> fetchUser(String id) async {
  try {
    final response = await client.get(Uri.parse('/users/$id'));
    return User.fromJson(jsonDecode(response.body));
  } on SocketException {
    throw NetworkException();
  } catch (e) {
    throw UnknownException(e.toString());
  }
}

// Use Future.wait for parallel operations
Future<void> loadAllData() async {
  final results = await Future.wait([
    fetchUsers(),
    fetchSettings(),
    fetchPreferences(),
  ]);
}

// Use unawaited for fire-and-forget
unawaited(analytics.logEvent('page_view'));

Code Organization Within Files

class MyClass {
  // 1. Constants
  static const int maxRetries = 3;

  // 2. Static fields
  static final instance = MyClass._();

  // 3. Instance fields
  final String id;
  final _isLoading = false.obs;

  // 4. Constructors
  MyClass(this.id);
  MyClass._();

  // 5. Getters/Setters
  bool get isLoading => _isLoading.value;

  // 6. Lifecycle methods
  @override
  void onInit() {}

  // 7. Public methods
  void publicMethod() {}

  // 8. Private methods
  void _privateMethod() {}
}

Widget Best Practices

// Prefer const constructors
class MyWidget extends StatelessWidget {
  const MyWidget({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return const Text('Hello');
  }
}

// Extract widgets for reusability
class UserCard extends StatelessWidget {
  final User user;

  const UserCard({Key? key, required this.user}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Card(
      child: _buildContent(),
    );
  }

  Widget _buildContent() {
    return Column(
      children: [
        Text(user.name),
        Text(user.email),
      ],
    );
  }
}

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

36.11%
按下载量换算2,588

Claude

31%
按下载量换算2,222

Cursor

19.98%
按下载量换算1,432

Gemini CLI

9.66%
按下载量换算692

安全审计

暂无安全审计结果可展示。

权限和风险

权限需确认

当前来源未能明确判断权限范围,默认进入异常复核队列。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills