mcpField
I
ios-frameworks

ios-frameworks

github.com/alphaonedev開発45 回インストール
リポジトリ

ios-frameworks について

ios-frameworks は、データ永続化、機械学習、AR、クラウド同期、各種システム機能に使う Apple フレームワークを扱う iOS 開発向けスキルです。これらの機能を使うアプリ開発を支援します。

主な機能

  1. 01CoreData と SwiftData による永続化
  2. 02CoreML のオンデバイス推論
  3. 03ARKit によるシーン・オブジェクト追跡
  4. 04CloudKit によるデータ同期
  5. 05StoreKit 2、HealthKit、CoreLocation
  6. 06APNs プッシュ通知

活用シーン

  1. 01ローカルデータを使う To-Do アプリの開発
  2. 02アプリへの AR オブジェクト検出の追加
  3. 03ユーザーデータの iCloud 同期
  4. 04健康、位置情報、購入機能の開発

インストール

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

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill ios-frameworks

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

詳細

ios-frameworks

目的

このスキルは、データ管理、ML の統合、AR 体験、クラウド同期、アプリ内課金、ヘルストラッキング、位置情報サービス、プッシュ通知に重点を置き、Apple の主要なフレームワークを使用した iOS アプリ開発を AI が支援できるようにします。

使用する場面

ユーザープロファイルなどのローカルデータの永続化、予測のための ML モデルの統合、AR オーバーレイの構築、データの iCloud 同期、購入処理、ヘルスデータへのアクセス、ユーザーの位置情報の追跡、プッシュ通知の送信が必要なアプリにこのスキルを使用します。決済機能を備えた e コマースアプリ、フィットネストラッカー、AR ゲームなどのシナリオに適用します。

主な機能

  • CoreData/SwiftData:永続化されたオブジェクトグラフを管理します。SwiftData は、データモデリングとストレージに関する、SwiftUI と親和性の高い最新の代替手段です。
  • CoreML:画像認識などのタスク向けに、デバイス上で ML モデルを実行します。Create ML または TensorFlow のモデルをサポートします。
  • ARKit:デバイスのカメラとセンサーを使用して、平面検出、オブジェクトトラッキング、ワールドマッピングのための AR セッションを実現します。
  • CloudKit:CKContainer と CKRecord を通じて、デバイス間でユーザーデータを同期するための iCloud ベースのストレージとデータベースを提供します。
  • StoreKit 2:SKProduct および SKPayment API を使用して、収益化のためのアプリ内課金とサブスクリプションを処理します。
  • HealthKit:ユーザーの許可を必要とし、HKHealthStore を通じて歩数や心拍数などの健康・フィットネスデータにアクセスします。
  • CoreLocation:リアルタイムの位置測定が必要なアプリ向けに、CLLocationManager を使用して位置情報の更新とジオフェンシングを提供します。
  • APNs Push:デバイストークンと APNs プロバイダー API を使用し、Apple のプッシュ通知サービスを通じてリモート通知を送信します。

使用パターン

CoreData を使用するには、AppDelegate で永続化コンテナを初期化し、ビューコントローラーでフェッチを実行します。ARKit では、UIViewController のサブクラスで AR セッションを開始し、アンカーの更新を処理します。CoreML を統合するには、.mlmodel ファイルを読み込み、ユーザー入力に応じて予測を実行します。CloudKit のパターンでは、CKDatabase を使用してレコードを保存し、変更をサブスクライブします。StoreKit 2 では、プロダクトをリクエストし、決済キューオブザーバーでトランザクションを処理します。HealthKit には、認証をリクエストした後、HKSampleType をクエリしてアクセスします。CoreLocation では、更新を受け取るために CLLocationManager のデリゲートを設定します。APNs では、リモート通知に登録し、AppDelegate で受信したペイロードを処理します。

主なコマンド/API

  • CoreData の設定:AppDelegate.swift で永続化コンテナを作成します:
    let container = NSPersistentContainer(name: "MyApp")
    container.loadPersistentStores { ... }
  • CoreML の予測:次のように読み込んで予測します:
    let model = MyModel() let input = MyModelInput(...) let output = try model.prediction(input: input)
  • ARKit セッション:ビューコントローラーで次のように設定します:
    let session = ARSession() session.delegate = self session.run(ARWorldTrackingConfiguration())
  • CloudKit のレコード保存:CKDatabase を使用します:
    let record = CKRecord(recordType: "MyType") record["field"] = "value" database.save(record) { ... }
  • StoreKit 2 の購入:次のようにリクエストして購入します:
    let request = SKProductsRequest(productIdentifiers: ["com.example.product"]) request.start() // In delegate, handle products and SKPayment
  • HealthKit のクエリ:次のように認証してクエリします:
    healthStore.requestAuthorization { ... } let query = HKSampleQuery(sampleType: HKQuantityType(...), ...) { ... }
  • CoreLocation の更新:次のように開始します:
    locationManager.requestWhenInUseAuthorization() locationManager.startUpdatingLocation()
  • APNs への登録:AppDelegate で次のように設定します:
    UNUserNotificationCenter.current().requestAuthorization { ... } application.registerForRemoteNotifications()

統合に関する注意事項

Xcode からフレームワークを追加します。ターゲットを選択し、General > Frameworks, Libraries, and Embedded Content に移動して、CoreData.framework などを追加します。権限については、Info.plist を更新します(例:CoreLocation の NSLocationWhenInUseUsageDescription)。スクリプトや設定ファイルでは、キーに $CLOUDKIT_API_KEY のような環境変数を使用します。CloudKit の場合は、Xcode で iCloud 機能を有効にし、デベロッパーポータルでコンテナを設定します。コード内でモジュールをインポートします(例:import CoreData)。APNs の場合は、Apple Developer ポータルで証明書を生成し、サーバーで使用します。設定形式:entitlements ファイルに、com.apple.developer.icloud-container-identifiers などの iCloud 機能を追加します。SwiftData との互換性を確保するには、iOS 17 以降を対象にします。

エラー処理

CoreData では、セットアップ中に発生する NSPersistentStoreCoordinator エラーをキャッチします(例:catch let error as NSError { print(error.localizedDescription) })。CoreML では、do { try model.prediction(...) } catch { print(error) } を使って予測エラーを処理します。ARKit セッションでは ARSession.RunOptions エラーが発生する場合があります。デリゲートメソッドでセッションの状態を確認してください。CloudKit の操作では CKError が使われます。if case .partialFailure(let errors) = error { ... } を使って処理します。SKPaymentTransaction から発生する StoreKit エラーには、.paymentCancelled などのコードが含まれます。失敗を検出するにはキューを監視します。HealthKit の認証に失敗した場合は、UI でのプロンプトが必要です。error as HKErrorCode を確認してください。CoreLocation のエラーは、デリゲートの didFailWithError を通じて通知されます。デバッグにはエラーコードを使用します。APNs の場合は、AppDelegate の didFailToRegisterForRemoteNotificationsWithError で登録エラーを処理します。

具体的な使用例

  1. 例:CoreData ベースの To-Do アプリを作成する
    新しいプロジェクトで CoreData をセットアップします。Xcode でデータモデルを作成し、ViewController.swift で次のように項目を取得します。
    let fetchRequest: NSFetchRequest<Item> = Item.fetchRequest() do { let items = try context.fetch(fetchRequest) } catch { ... }
    新しい項目を保存します:let newItem = Item(context: context); newItem.name = "Task"; try context.save()。

  2. 例:オブジェクト検出用に ARKit を統合する
    ARViewController で、オブジェクト検出用に次のように設定します。
    let configuration = ARWorldTrackingConfiguration() configuration.detectionImages = Set([ARReferenceImage(...)] ) session.run(configuration)
    session(_:didUpdate:) デリゲートで検出を処理し、UI 要素を重ねて表示します。

グラフの関係

  • 関連:モバイルクラスター(クロスプラットフォームの知見については android-frameworks など)。
  • 依存:APNs と CloudKit の認証スキル($APNS_TOKEN を使用)。
  • 統合:CloudKit 同期用のバックエンドスキル。
  • 競合:Apple 以外のエコシステム。ただし、ハイブリッドアプリ向けに web-api スキルと連携できます。

コメント