mcpField
M
moai-lang-swift

moai-lang-swift

github.com/modu-ai開発1.2k65 回インストール今日更新
リポジトリ

moai-lang-swift について

iOS と macOS 向け Swift 6 以降の開発を支援するリファレンススキルです。SwiftUI、並行処理、Combine、テスト、パッケージ管理の実装パターンを扱います。

主な機能

  1. 01Swift 6 の言語機能
  2. 02SwiftUI の状態管理とナビゲーション
  3. 03async/await とアクターによる並行処理
  4. 04Combine の Publisher パターン
  5. 05XCTest と Swift Package Manager

活用シーン

  1. 01iOS または macOS アプリの開発
  2. 02Swift の並行処理コードの設計
  3. 03SwiftUI ビューと状態モデルの構築
  4. 04XCTest による非同期コードのテスト

インストール

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

$npx skills add https://github.com/modu-ai/moai-adk --skill moai-lang-swift

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

同梱ファイル

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

modules/
combine-reactive.md
concurrency.md
swift6-features.md
swiftui-patterns.md
references/
examples.md
reference.md

詳細

Swift 6+ 開発スペシャリスト

SwiftUI、Combine、Swift Concurrency を使用した iOS/macOS 向け Swift 6.0+ 開発のエキスパートです。

自動トリガー:Swift ファイル(.swift)、iOS/macOS プロジェクト、Xcode ワークスペース

クイックリファレンス

主な機能
  • Swift 6.0:型付き throws、完全な並行処理、デフォルトでのデータ競合安全性
  • SwiftUI 6:@Observable マクロ、NavigationStack、最新の宣言型 UI
  • Combine:パブリッシャーとサブスクライバーによるリアクティブプログラミング
  • Swift Concurrency:async/await、アクター、TaskGroup、分離
  • XCTest:単体テスト、UI テスト、非同期テストのサポート
  • Swift Package Manager:依存関係の管理
バージョン要件
  • Swift:6.0+
  • Xcode:16.0+
  • iOS:17.0+(推奨)、最低 15.0
  • macOS:14.0+(推奨)
プロジェクトのセットアップ

Package.swift の設定:まず、swift-tools-version コメントを 6.0 に設定します。PackageDescription をインポートします。Package イニシャライザーを使用して let package を定義します。name、.iOS と .macOS の最小バージョンを指定する platforms 配列、ライブラリ定義を含む products 配列、パッケージ URL とバージョン要件を含む dependencies 配列、そして依存関係を含む target と testTarget エントリーを含む targets 配列を設定します。

基本パターン

基本的な @Observable ViewModel:Observation フレームワークをインポートします。final class に @Observable 属性と @MainActor 属性を付けます。状態を表すプロパティを private(set) var で宣言します。isLoading を true に設定し、defer を使って false に設定する非同期関数を作成し、try? await と nil 合体演算子を使って取得したデータを代入します。

基本的な SwiftUI View:View に準拠する struct を定義します。viewModel 用の @State private var を宣言します。body の計算プロパティで、viewModel の項目を反復処理する List を NavigationStack 内に配置します。.task 修飾子を追加して viewModel.load を await で呼び出し、プルして更新するための .refreshable 修飾子も追加します。

スレッド安全性を確保する基本的な Actor:キャッシュ用の private dictionary を持つ actor 型を定義します。キーを検索し、Data をオプショナルで返す get 関数を作成します。キャッシュに保存するため、キーとデータをパラメーターに取る set 関数を作成します。

モジュール一覧

Swift 6 の機能

modules/swift6-features.md

  • 正確なエラー処理のための型付き throws
  • 完全な並行処理チェック
  • デフォルトでのデータ競合安全性
  • Sendable 準拠の要件
SwiftUI のパターン

modules/swiftui-patterns.md

  • @Observable マクロと状態管理
  • NavigationStack とナビゲーションのパターン
  • View のライフサイクルと .task 修飾子
  • Environment と依存関係の注入
Swift Concurrency

modules/concurrency.md

  • async/await の基礎
  • Actor の分離と @MainActor
  • 並列実行のための TaskGroup
  • カスタムエグゼキューターと構造化並行処理
Combine フレームワーク

modules/combine-reactive.md

  • パブリッシャーとサブスクライバー
  • オペレーターと変換
  • async/await ブリッジのパターン
  • SwiftUI との統合

Context7 ライブラリのマッピング

Swift コア
  • /apple/swift - Swift 言語と標準ライブラリ
  • /apple/swift-evolution - Swift Evolution の提案
  • /apple/swift-package-manager - SwiftPM のドキュメント
  • /apple/swift-async-algorithms - 非同期シーケンスのアルゴリズム
人気のライブラリ
  • /Alamofire/Alamofire - HTTP 通信
  • /onevcat/Kingfisher - 画像のダウンロードとキャッシュ
  • /realm/realm-swift - モバイルデータベース
  • /pointfreeco/swift-composable-architecture - TCA アーキテクチャ
  • /Quick/Quick - BDD テストフレームワーク
  • /Quick/Nimble - マッチャーフレームワーク

テストのクイックスタート

MainActor を使った非同期テスト:XCTestCase を継承するテストクラスに @MainActor 属性を付けます。async throws を指定したテスト関数を定義します。モック API を作成してモックデータを設定します。モックを使ってテスト対象を初期化します。非同期メソッドを await で呼び出します。件数の検証には XCTAssertEqual を、ブール値の状態確認には XCTAssertFalse を使用します。

相性の良いもの

  • moai-lang-kotlin - クロスプラットフォームプロジェクト向けの Android 版
  • moai-lang-flutter - クロスプラットフォームのモバイル開発向けの Flutter/Dart
  • moai-domain-backend - API 統合とバックエンドとの通信
  • moai-foundation-quality - iOS のセキュリティに関するベストプラクティス
  • moai-workflow-testing - Xcode のデバッグとプロファイリング

リソース

  • reference.md - アーキテクチャパターン、ネットワークレイヤー、SwiftData
  • examples.md - 本番環境ですぐに使えるコード例

コメント