ios-swift について
iOS アプリ開発者向けの Swift 開発スキルです。UIKit、SwiftUI、Xcode に加え、並行処理のパターンやプロジェクト構成も扱います。
主な機能
- 01UIKit のビューコード生成
- 02SwiftUI インターフェースの構築
- 03async/await による並行処理
- 04Xcode のターゲットとスキーム管理
活用シーン
- 01iOS アプリの UI コンポーネント作成
- 02非同期ネットワークリクエストの処理
- 03アプリ拡張用ターゲットの設定
- 04Swift エラーやビルド問題の調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill ios-swiftインストール後、Claude Code で/ios-swiftを入力して読み込まれたか確認します。
詳細
ios-swift
目的
このスキルは、UIKit と SwiftUI の基礎、並行処理のパターン、Xcode プロジェクトの管理に重点を置き、効率的なアプリ構築のために AI が Swift ベースの iOS 開発を支援できるようにします。
使用する場面
- UIKit または SwiftUI でのビュー作成など、iOS の UI コンポーネントのコードを生成するとき。
- ネットワークリクエストやタイマーなど、iOS アプリの非同期処理を扱うとき。
- 複数アプリ構成向けのターゲットやスキームなど、Xcode プロジェクトを構成または変更するとき。
- Swift のエラーや Xcode のビルド問題に関するデバッグを行うとき。
主な機能
- 基本的なビュー向けの UIKit コードを生成します。例:ライフサイクルメソッドを含む UIViewController サブクラスの作成。
- SwiftUI インターフェースを構築します。例:宣言型レイアウトのために View プロトコルに準拠する構造体を定義。
- Swift の並行処理を実装します。API 呼び出しなどのタスクに async/await を使用し、スレッドセーフを確保します。
- Xcode の構成を管理します。アプリ拡張機能のターゲットやビルド構成のスキームを定義し、.xcodeproj などのプロジェクトファイルを扱います。
使用パターン
- 必要なフレームワークをインポートするところから始めます。Swift ファイルの先頭には必ず
import UIKitまたはimport SwiftUIを記述します。 - 並行処理では、ブロッキング処理を非同期関数でラップします。
func fetchData() async -> Data { ... }のように関数を定義し、Task { await fetchData() }で呼び出します。 - Xcode を使用する場合は、プロジェクトファイルを直接参照します。
./MyApp.xcodeprojのようなパスを使用し、コマンドでターゲットを指定します。 - パターンは順番に組み合わせます。デッドロックを防ぐため、まずプロジェクト構造を設定し、次に UI 要素を追加し、最後に並行処理を扱います。
主なコマンド/API
- Xcode CLI:
xcodebuild -workspace MyWorkspace.xcworkspace -scheme MyScheme -configuration Debug buildを使用してプロジェクトをコンパイルします。シミュレーターでテストする場合は-sdk iphonesimulatorを追加します。 - SwiftUI API:
struct MyView: View { var body: some View { Text("Hello").padding() } }で基本的なビューを作成し、アプリのエントリポイントで表示します。 - UIKit API:
let vc = UIViewController(); vc.view.backgroundColor = .white; present(vc, animated: true)のようにビューコントローラーを初期化します。 - 並行処理のコードスニペット:
func loadImage() async throws -> UIImage { let data = try await URLSession.shared.data(from: URL(string: "https://example.com/image")!) return UIImage(data: data.0) ?? UIImage() } - 設定形式:GUI または .pbxproj ファイルを使って Xcode スキームを編集します。たとえば、スキームエディターで
"GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1"のようなビルド設定を追加します。
統合に関する注意
- Xcode のインストールが必要です。
xcode-select -pで確認し、カスタムの場合は $XCODE_PATH 環境変数を設定します(例:export XCODE_PATH=/Applications/Xcode.app)。 - App Store Connect などの Apple サービスでは、スクリプトでの認証に $APPLE_API_KEY を使用します。例:
altool --upload-app -f myapp.ipa -u [email protected] -p $APPLE_API_KEYを使ってツールに渡します。 - 他のツールと統合します。Package.swift に
.package(url: "https://github.com/apple/swift-algorithms", from: "1.0.0")のように依存関係を追加して、Swift Package Manager を使用します。 - テストでは、iOS シミュレーターを指定します。
xcodebuild test -scheme MyScheme -destination 'platform=iOS Simulator,name=iPhone 14'のようなコマンドでデバイスを指定します。
エラー処理
- Swift では、スローされるエラーに try-catch を使用します。非同期処理の失敗を処理するには、
do { let data = try await fetchData() } catch let error { print("Error: \(error.localizedDescription)") }のようにします。 - Xcode のビルドでは、
xcodebuildの出力を解析して一般的なエラーを確認します。例:「Code Sign error: No matching provisioning profile found」が表示された場合は、xcodebuild -exportArchive -archivePath build/MyApp.xcarchive -exportPath output -exportOptionsPlist ExportOptions.plistを使ってプロビジョニングプロファイルが設定されていることを確認します。 - 並行処理のエラーを確認します。リークを防ぐため、
let task = Task { try await function() }; task.cancel()のようにキャンセル可能なTaskを使用します。 - UI の問題をデバッグします。UIKit では
viewDidLoadをオーバーライドしてエラーをログに記録し、SwiftUI では.onAppear { print("View appeared") }を使ってライフサイクルの問題を追跡します。
具体的な使用例
- iOS アプリ用のシンプルな SwiftUI ビューを作成する:まず、
struct ContentView: View { var body: some View { VStack { Text("Welcome").font(.title) Button("Tap") { print("Tapped") } } } }を含む新しい Swift ファイルを生成します。次に、メインの App 構造体に追加して Xcode プロジェクトに組み込み、xcodebuild -scheme MyApp buildでビルドします。 - 既存の Xcode プロジェクトに新しいターゲットを設定する:Xcode GUI を使用してターゲット(例:App Extension)を追加するか、.xcodeproj/project.pbxproj を編集して新しい PBXNativeTarget エントリーを追加するスクリプトを作成します。次に、
xcodebuild -target MyExtensionTarget -configuration Releaseでそのターゲットを指定してビルドします。
グラフの関係
- クラスターとの関連:mobile(例:iOS エコシステムの知識を共有します)。
- リンク先:mobile-android(クロスプラットフォームのモバイル開発向け)、general-swift(Swift 言語機能全般向け)、ios-testing(XCTest との統合向け)。
コメント
Markdown 対応