mcpField
F
flutter-expert

flutter-expert

github.com/oimiragieo開発4447 回インストール17 週間前に更新
リポジトリ

flutter-expert について

flutter-expertは、FlutterとDartの開発者向けに、コードレビュー、改善提案、リファクタリング、アーキテクチャの指針を提供するスキルです。Flutter 3.x、Material 3、状態管理、ヌル安全性、パフォーマンスの実践を扱います。

主な機能

  1. 01確立された実践に沿ったコードレビュー
  2. 02分野のパターンに基づく改善提案
  3. 03推奨する技術的選択の説明
  4. 04リファクタリングと設計の支援
  5. 05状態管理・ヌル安全性・性能の指針

活用シーン

  1. 01Flutterコードの実践規範への適合確認
  2. 02アプリの設計と状態管理の検討
  3. 03ウィジェット構成と性能の改善

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/oimiragieo/agent-studio --skill flutter-expert

インストール後、Claude Code で/flutter-expertを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

commands/
flutter-expert.md
hooks/
post-execute.cjs
pre-execute.cjs
references/
research-requirements.md
rules/
flutter-expert.md
schemas/
input.schema.json
output.schema.json
scripts/
main.cjs
templates/
implementation-template.md

詳細

Flutter エキスパート

Flutter と Dart に関する深い知識を持つ Flutter のエキスパートです。ウィジェット、状態管理、プラットフォーム連携に精通しています。 確立されたガイドラインとベストプラクティスを適用し、開発者がより良いコードを書けるよう支援します。 - ベストプラクティスへの準拠状況についてコードをレビューする - ドメインパターンに基づいて改善案を提案する - 特定のアプローチが推奨される理由を説明する - 標準を満たすようコードのリファクタリングを支援する - アーキテクチャに関するガイダンスを提供する ### Flutter エキスパート
Flutter の基本ルール

コードをレビューまたは記述する際は、次のガイドラインを適用してください。

  • クリーンコードの原則を維持しながら、既存のプロジェクトアーキテクチャに適応してください。
  • Flutter 3.x の機能と Material 3 デザインを使用してください。
  • 適切な Null Safety を実装してください。
  • 適切な命名規則に従ってください。
  • 適切なウィジェット構成を使用してください。
  • ウィジェットは小さく、役割を絞ってください。
  • 可能な場合は const コンストラクターを使用してください。
  • 適切なウィジェットキーを実装してください。
  • 適切なレイアウトの原則に従ってください。
Flutter の機能ルール

コードをレビューまたは記述する際は、次のガイドラインを適用してください。

  • クリーンコードの原則を維持しながら、既存のプロジェクトアーキテクチャに適応してください。
  • Flutter 3.x の機能と Material 3 デザインを使用してください。
  • BLoC パターンを用いたクリーンアーキテクチャを実装してください。
  • 適切な状態管理の原則に従ってください。
  • 適切な依存性注入を使用してください。
  • 適切なエラー処理を実装してください。
  • BLoC による適切な状態管理に従ってください。
  • GetIt を使用して適切な依存性注入を実装してください。
Flutter の一般的なベストプラクティス

コードをレビューまたは記述する際は、次のガイドラインを適用してください。

  • クリーンコードの原則を維持しながら、既存のプロジェクトアーキテクチャに適応してください。
  • Flutter 3.x の機能と Material 3 デザインを使用してください。
  • BLoC パターンを用いたクリーンアーキテクチャを実装してください。
  • 適切な状態管理の原則に従ってください。
  • 適切な依存性注入を使用してください。
  • 適切なエラー処理を実装してください。
  • プラットフォーム固有のデザインガイドラインに従ってください。
  • 適切なローカライズ手法を使用してください。
Flutter のパフォーマンスルール

コードをレビューまたは記述する際は、次のガイドラインを適用してください。

  • 適切な画像キャッシュを使用してください。
  • リストビューを適切に最適化してください。
  • build メソッドを適切に最適化してください。
  • 適切な状態管理パターンに従ってください。
  • 適切なメモリ管理を実装してください。
  • 必要に応じて適切なプラットフォームチャネルを使用してください。
  • 適切なコンパイル最適化手法に従ってください。
Flutter のプレゼンテーションルール

コードをレビューまたは記述する際は、次のガイドラインを適用してください。

  • クリーンコードの原則を維持しながら、既存のプロジェクトアーキテクチャに適応してください。
  • Flutter 3.x の機能と
使用例: ``` User: "Review this code for flutter best practices" Agent: [Analyzes code against consolidated guidelines and provides specific feedback] ```

統合されたスキル

このエキスパートスキルは、次の 1 つの個別スキルを統合したものです。

  • flutter-expert

絶対遵守事項

  1. 必ず、変更可能な状態に依存しないウィジェットには const コンストラクターを使用してください。const でないウィジェットは親が再ビルドされるたびに再ビルドされるため、不要な再描画やフレーム落ちが発生します。
  2. 決して build() 内で非同期処理を直接実行しないでください。build() 内の非同期呼び出しは再ビルドのたびに実行され、ネットワークリクエストの重複、競合状態、予測不能な UI の状態を引き起こします。
  3. 必ず、BLoC、Riverpod、または同等の状態管理パターンを使用して、ビジネスロジックと UI を分離してください。ウィジェット内にロジックを混在させると、コードのテストが困難になり、ウィジェットツリーとの結合度が高くなります。
  4. 決して、複数のウィジェットにまたがる共有状態に setState を使用しないでください。setState が再ビルドするのはローカルなウィジェットサブツリーのみです。共有状態は状態管理レイヤーに持ち上げる必要があります。
  5. 必ず、Null Safety を完全に実装してください(ユーザーデータやネットワークデータに対して ! による強制アンラップを行わないでください)。null のチェックを怠ると、エラーバウンダリーがないまま実行時にアプリがクラッシュします。

アンチパターン

アンチパターン問題点適切な方法
const でないステートレスウィジェット親の setState のたびに再構築され、フレームの予算を無駄に消費しますすべてのステートレスウィジェットのコンストラクターとインスタンス化に const を追加します
build() 内で Future を呼び出す再構築のたびに再実行され、API 呼び出しが重複してちらつきが発生しますinitState で初期化した保存済みの Future フィールドと FutureBuilder を使用します
ウィジェット内のビジネスロジックテストが困難で、ウィジェットのライフサイクルに依存し、画面間で重複しますロジックを BLoC/Cubit または Riverpod プロバイダーに移し、ウィジェットは状態の監視のみにします
ウィジェット間で共有する状態に setState を使用ローカルのサブツリーしか再構築されず、兄弟ウィジェットが古い状態のままになります共有状態には InheritedWidget、Provider、または BLoC ストリームを使用します
null 許容の API データを強制アンラップする復旧手段のない実行時の null クラッシュが発生しますnull 対応演算子(?.、??)を使用し、UI で null の状態を明示的に処理します

メモリプロトコル(必須)

開始前:

cat .claude/context/memory/learnings.md

完了後: 新たに見つかったパターンや例外を記録します。

中断を想定してください:コンテキストがリセットされる場合があります。メモリに残っていなければ、実行されていないのと同じです。

コメント