coding-dart
Dart 3: null safety, async/await, streams, isolates, Flutter integration, pub package manager
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o coding-dart.zip https://jpskill.com/download/22079.zip && unzip -o coding-dart.zip && rm coding-dart.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/22079.zip -OutFile "$d\coding-dart.zip"; Expand-Archive "$d\coding-dart.zip" -DestinationPath $d -Force; ri "$d\coding-dart.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
coding-dart.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
coding-dartフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
coding-dart
目的
このスキルは、Dart 3プログラミングの専門知識を提供し、null安全性、async/await、ストリーム、アイソレート、Flutter統合、pubパッケージ管理といった機能に焦点を当て、アプリやツールのための効率的で安全なコードの記述を支援します。
使用場面
モバイルアプリ(例:Flutter)、並行処理、非同期操作、またはパッケージ依存関係を伴うDart 3プロジェクトでこのスキルを使用してください。実行時エラーを回避するためにnull安全性が重要である場合や、ストリームでリアルタイムデータを処理する場合に適用してください。
主な機能
- Null安全性:
lateを使用して遅延初期化を、requiredを使用してパラメーターの非null型を強制します。例:late String name;は、使用前に初期化する必要がある変数を宣言します。 - Async/Await:
Futureとasync関数を使用して非同期コードを処理します。例:Future<void> fetchData() async { var data = await http.get('/api/data'); }。 - ストリーム:
dart:asyncのStreamを使用して非同期データストリームを管理します。例:Stream<int> countStream() async* { for (int i = 0; i < 5; i++) yield i; }。 - アイソレート: CPUバウンドな操作のために
Isolateを使用して並行タスクを実行します。例:Isolate.spawn(workerFunction, args);は作業をオフロードします。 - Flutter統合: ウィジェットと状態管理を使用してUIを構築します。例:シンプルなコンポーネントには
StatelessWidgetを使用します。 - Pubパッケージマネージャー:
pub add package_nameでパッケージを追加するなど、pubを介して依存関係を管理します。
使用パターン
タスクを達成するには、常に型を指定してnull安全性のあるコードを構造化します(例:null許容値には String? optionalString;)。非同期操作の場合、I/Oを async 関数でラップし、可読性のために await を使用します。UIのブロックを避けるために、バックグラウンドタスクにはアイソレートを使用します。main.dart で MaterialApp から始めてFlutterを統合します。パッケージ管理には、pubspec.yaml を編集した後、pub get を実行します。デプロイ前には常に dart test でテストしてください。
一般的なコマンド/API
- Dart CLIコマンド:
dart analyzeを--fatal-infosなどのフラグとともに使用して厳密なチェックを強制します。dart run bin/main.dartでスクリプトを実行します。非同期の場合、dart:asyncをインポートし、Future.delayed(Duration(seconds: 1), () => print('Delayed'));を使用します。 - Pubコマンド: 特定のバージョンには
pub add http --major-version 1で依存関係を追加します。pub upgradeで更新します。pub build --releaseでパッケージをビルドします。 - 主要API: カスタムストリームには
StreamControllerを介してストリームにアクセスします。例:var controller = StreamController<int>(); controller.add(1);。アイソレートの場合、簡単なタスクにはIsolate.runを使用します:Isolate.run(() => computeHeavyTask());。 - 設定形式: 依存関係のために
pubspec.yamlを編集します。例:dependencies: http: ^1.0.0シークレットには環境変数を使用します。例:
$API_KEYを設定し、String.fromEnvironment('API_KEY')を介してアクセスします。
統合に関する注意点
pubspec.yaml にFlutterの依存関係を追加し、flutter pub get を実行することで、DartをFlutterと統合します。外部APIの場合、$FLUTTER_API_KEY のような環境変数を設定し、コード内で Platform.environment['FLUTTER_API_KEY'] を介してアクセスします。DartのFFIをCライブラリに使用したり、Dart拡張機能(code --install-extension Dart-Code.dart-code でインストール)を介してVS Codeと統合したりすることで、他のツールと組み合わせます。Dart SDKがPATHにあることを確認し、dart --version で検証してください。
エラー処理
async 関数でtry-catchを使用して非同期コードのエラーを処理します。例:
try {
var result = await fetchData();
} catch (e) {
print('Error: $e');
}
ストリームの場合、onError コールバックを使用します:stream.listen((data) => print(data), onError: (error) => print(error))。dart analyze でnull安全性エラーをチェックし、rethrow を使用して例外を伝播させます。アイソレートの場合、ReceivePort と SendPort で通信エラーを処理します。
具体的な使用例
- 非同期HTTPリクエスト: null安全性で安全にデータをフェッチするには、次を使用します:
import 'package:http/http.dart' as http; Future<String?> getData() async { try { var response = await http.get(Uri.parse('https://api.example.com/data')); return response.body; } catch (e) { return null; } }。次に、var data = await getData(); if (data != null) print(data);で呼び出します。 - ストリーム付きFlutterウィジェット: Flutterでシンプルなカウンターストリームを作成します:
import 'dart:async'; class MyWidget extends StatelessWidget { Stream<int> counter() async* { for (int i = 0; i < 5; i++) yield i; } @override Widget build(BuildContext context) { return StreamBuilder<int>( stream: counter(), builder: (context, snapshot) => Text(snapshot.data?.toString() ?? '0'), ); } }。
グラフ関係
- クラスターに関連:coding(例:Flutter固有のタスクのために coding-flutter とタグを共有)。
- タグを介して接続:dart(一般的なプログラミングスキルにリンク)、flutter(UIに焦点を当てたスキルと統合)、coding(coding-python のような他の言語スキルとグループ化)。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
coding-dart
Purpose
This skill provides expertise in Dart 3 programming, focusing on features like null safety, async/await, streams, isolates, Flutter integration, and pub package management, to assist in writing efficient, safe code for apps and tools.
When to Use
Use this skill for Dart 3 projects involving mobile apps (e.g., Flutter), concurrent processing, asynchronous operations, or package dependencies. Apply it when null safety is critical to avoid runtime errors, or for handling real-time data with streams.
Key Capabilities
- Null Safety: Enforce non-nullable types using
latefor lazy initialization andrequiredfor parameters, e.g.,late String name;to declare a variable that must be initialized before use. - Async/Await: Handle asynchronous code with
Futureandasyncfunctions, such asFuture<void> fetchData() async { var data = await http.get('/api/data'); }. - Streams: Manage asynchronous data streams using
Streamfromdart:async, e.g.,Stream<int> countStream() async* { for (int i = 0; i < 5; i++) yield i; }. - Isolates: Run concurrent tasks with
Isolatefor CPU-bound operations, e.g.,Isolate.spawn(workerFunction, args);to offload work. - Flutter Integration: Build UI with widgets and state management, e.g., using
StatelessWidgetfor simple components. - Pub Package Manager: Manage dependencies via pub, including adding packages with
pub add package_name.
Usage Patterns
To accomplish tasks, structure code with null safety by always specifying types (e.g., String? optionalString; for nullable values). For async operations, wrap I/O in async functions and use await for readability. Use isolates for background tasks to avoid UI blocking. Integrate Flutter by starting with MaterialApp in main.dart. For package management, run pub get after editing pubspec.yaml. Always test with dart test before deployment.
Common Commands/API
- Dart CLI Commands: Use
dart analyzewith flags like--fatal-infosto enforce strict checks; run scripts withdart run bin/main.dart. For async, importdart:asyncand useFuture.delayed(Duration(seconds: 1), () => print('Delayed'));. - Pub Commands: Add dependencies with
pub add http --major-version 1for specific versions; update withpub upgrade; build packages withpub build --release. - Key APIs: Access streams via
StreamControllerfor custom streams, e.g.,var controller = StreamController<int>(); controller.add(1);. For isolates, useIsolate.runfor simple tasks:Isolate.run(() => computeHeavyTask());. - Config Formats: Edit
pubspec.yamlfor dependencies, e.g.:dependencies: http: ^1.0.0Use environment variables for secrets, e.g., set
$API_KEYand access viaString.fromEnvironment('API_KEY').
Integration Notes
Integrate Dart with Flutter by adding Flutter dependencies in pubspec.yaml and running flutter pub get. For external APIs, set environment variables like $FLUTTER_API_KEY and access in code via Platform.environment['FLUTTER_API_KEY']. Combine with other tools by using Dart's FFI for C libraries or integrating with VS Code via the Dart extension (install with code --install-extension Dart-Code.dart-code). Ensure Dart SDK is in PATH; verify with dart --version.
Error Handling
Handle errors in async code with try-catch in async functions, e.g.:
try {
var result = await fetchData();
} catch (e) {
print('Error: $e');
}
For streams, use onError callbacks: stream.listen((data) => print(data), onError: (error) => print(error)). Check null safety errors with dart analyze, and use rethrow to propagate exceptions. For isolates, handle communication errors with ReceivePort and SendPort.
Concrete Usage Examples
- Async HTTP Request: To fetch data safely with null safety, use:
import 'package:http/http.dart' as http; Future<String?> getData() async { try { var response = await http.get(Uri.parse('https://api.example.com/data')); return response.body; } catch (e) { return null; } }Then call it withvar data = await getData(); if (data != null) print(data);. - Flutter Widget with Stream: Create a simple counter stream in Flutter:
import 'dart:async'; class MyWidget extends StatelessWidget { Stream<int> counter() async* { for (int i = 0; i < 5; i++) yield i; } @override Widget build(BuildContext context) { return StreamBuilder<int>( stream: counter(), builder: (context, snapshot) => Text(snapshot.data?.toString() ?? '0'), ); } }.
Graph Relationships
- Related to cluster: coding (e.g., shares tags with coding-flutter for Flutter-specific tasks).
- Connected via tags: dart (links to general programming skills), flutter (integrates with UI-focused skills), coding (groups with other language skills like coding-python).