watchOS 3 の概要
この記事では、Xamarin 開発者向けに、watchOS 3 で使用できる新規および変更された API と機能のすべてについて説明します。
このドキュメントでは、次のトピックについて説明します。
- watchOS 3 の新機能
- Apple Pay の機能強化により、Apple Watch でのアプリ内支払いのサポートが追加されました。
- バックグラウンド タスクを使用すると、アプリはバックグラウンドで情報を更新して、ユーザーが必要なときに準備を整える機能を提供します。
- コンプリケーションの機能強化が、アプリの新機能を提供する watchOS 3 用に加えられています。
- 新しく使用可能なフレームワークが、watchOS アプリ用に公開されました。
- プロアクティブな候補を使用すると、アプリはユーザーに情報をプロアクティブに表示できます。
- watchOS 3 には、いくつかのセキュリティとプライバシーの強化が行われています。
- スナップショットとドッキングを使用すると、ユーザーはアプリ watchOS アプリにすばやくアクセスできます。
- ユーザー通知は、ローカル通知とリモート通知の両方をユーザーに提供します。
- watchOS 3 では、いくつかの Watch Connectivity Framework の機能強化が行われています。
- watchOS 3 では、いくつかの WatchKit Framework の機能強化が行われています。
- トレーニング アプリの機能強化は、ワークアウト関連の Apple Watch アプリに新しい機能を提供します。
- watchOS 3 全体で、フレームワークの追加の変更が行われました。
- watchOS 3 の非推奨の API。
watchOS 3 の新機能
Apple は、既存の機能に対する多くの機能強化に加えて、watchOS 3 にいくつかの新しい API とサービスを追加しました。
Apple Pay の機能強化
watchOS 3 では、PassKit フレームワークが拡張され、Apple Watch で実行されているアプリに対するセキュリティで保護されたアプリ内支払い (物理的な商品とサービスの両方) のサポートが可能になりました。
新しい PKPaymentAuthorizationController クラスと PKPaymentAuthorizationControllerDelegate クラスを使用して、ユーザーが支払い要求を承認できるインターフェイスを提示して応答します。
詳細については、Apple Pay の機能強化に関するガイドをご覧ください。
バックグラウンド タスク
watchOS 3 には、アプリが情報を更新するために使用できるバックグラウンド タスクがいくつか導入されており、ユーザーがアプリを開く前に、必要なコンテンツがアプリに確実に含まれるようにできます。
次の新しいバックグラウンド タスクを使用できます。
- バックグラウンド アプリの更新 - WKApplicationRefreshBackgroundTask タスクを使用すると、アプリはバックグラウンドでその状態を更新できます。 通常、これには、NSUrlSession を使用してインターネットから新しいコンテンツをダウンロードするなどの別のタスクが含まれます。
- バックグラウンド スナップショットの更新 - WKSnapshotRefreshBackgroundTask タスクを使用すると、システムがドッキングの設定に使用されるスナップショットを取得する前に、アプリでコンテンツと UI の両方を更新できます。
- バックグラウンドの Watch Connectivity - WKWatchConnectivityRefreshBackgroundTask タスクは、ペアになっている iPhone からバックグラウンド データを受信すると、アプリに対して開始されます。
- バックグラウンド URL セッション - バックグラウンド転送で承認が必要な場合、または完了 (正常にまたはエラーで) すると、アプリに対して WKURLSessionRefreshBackgroundTask タスクが開始されます。
詳細については、「バックグラウンド タスク」ガイドをご覧ください。
コンプリケーションの機能強化
コンプリケーションは、役立つ情報をひとめで確認できる小さな視覚的要素です。 選択したウォッチの文字盤に応じて、ユーザーは 1 つ以上のコンプリケーションでウォッチの文字盤をカスタマイズできます。
watchOS 3 では、ユーザーがウォッチの文字盤から一目で情報にアクセスできるように、ウォッチ アプリ用に 1 つ以上のコンプリケーションを作成する機能がアプリに提供されます。
さらに、コンプリケーションには次の利点があります。
- ユーザーは、ウォッチの文字盤から直接コンプリケーションをタップすることで、アプリをすばやく起動できます。
- ウォッチの文字盤にアプリのコンプリケーションの 1 つがあると、システムはアプリを起動可能な状態に保ち、アプリをバックグラウンドで起動し、メモリ内に保持し、更新するための追加の時間を与えます。
- コンプリケーションは、1 日あたり少なくとも 50 回のプッシュ更新が保証されます。
- アプリにコンプリケーションが含まれている場合は、Apple Watch Face ギャラリーにフィーチャーされます。
watchOS 3 では、ClockKit フレームワークに CLKComplicationTemplateExtraLargeColumnsText と CLKComplicationTemplateExtraLargeRingImage など、極めて大型なコンプリケーションのための新しいテンプレートがいくつか追加されました。 さらに、ローカライズ可能なテキストを作成するには、CLKTextProvider クラスの新しいメソッドを使用します。
詳細については、「watchOS 3 のクイック操作のテクニック」ガイドをご覧ください。
新しく利用可能なフレームワーク
watchOS 3 には、以前は使用できなかったいくつかの既存の Apple フレームワークが含まれています。
- SceneKit - SceneKit を使用して、照明、シェーディング、アニメーション、物理、パーティクル システムなどの他のプラットフォームで利用できるほとんどの機能を含む 3D モデルをウォッチ アプリの UI に組み込みます。 3D 空間オーディオ、カスタム メタル シェーダーまたは OpenGL シェーダー、コア イメージ フィルター、物理ベースの素材はサポートされていません。
- SpriteKit - SpriteKit を使用して、アクション、物理、照明、パーティクル システムなどの他のプラットフォームで使用できるほとんどの機能を含むスプライトをアプリ ウォッチ アプリの UI でレンダリングおよびアニメーション化します。 3D 空間オーディオ、ビデオ再生、コア イメージ フィルターはサポートされていません。
- AVFoundation - オーディオを管理および再生します。
- CloudKit - ウォッチ アプリと iCloud コンテナーの間でデータを移動します。
- コア オーディオ - オーディオ ストリーム、複雑なバッファー、時間値を表すデータ型を管理します。
- GameKit - ソーシャル ゲームを作成します。
プロアクティブな候補
watchOS 3 を使用すると、アプリは特定のコンテキスト内でユーザーに情報を事前に提示できます。 この機能をサポートするために、NSUserActivity には、アプリが他のアプリで後で使用するための位置情報を提供できる MapItem
プロパティが含められました。
詳細については、プロアクティブな候補の概要に関するガイドをご覧ください。
セキュリティとプライバシーの機能強化
Apple は、watchOS 3 のセキュリティとプライバシーの両方にいくつかの機能強化を行いました。これにより、開発者はアプリのセキュリティを強化し、エンド ユーザーのプライバシーを確保できます。
その結果、watchOS 3 (またはそれ以降) で実行されているアプリは、アプリがアクセスを望む理由をユーザーに説明する 1 つ以上のプライバシー固有のキーを Info.plist
ファイルに入力して、特定の機能またはユーザー情報にアクセスする意図を静的に宣言する必要があります。
watchOS 3 は iOS 10 とこれらの変更を共有しているため、詳細については、iOS 10 のセキュリティとプライバシーの強化に関するガイドを参照してください。
スナップショットとドッキング
Apple は、watchOS 3 でユーザーが自分のお気に入りのアプリをピン留めしてすばやくアクセスできるドッキングを追加しました。 Apple Watch でユーザーがサイド ボタンを押すと、ピン留めされたアプリ スナップショットのギャラリーが表示されます。 ユーザーは左または右にスワイプして目的のアプリを見つけ、アプリをタップして起動し、スナップショットを実行中のアプリのインターフェイスに置き換えます。
システムは、アプリの UI のスナップショットを定期的に取得し、それらのスナップショットを使用してドキュメントを設定します。watchOS は、このスナップショットを作成する前に、アプリのコンテンツと UI を更新する機会を提供します。
詳細については、「バックグラウンド タスク」ガイドと Apple の「WKSnapshotRefreshBackgroundTask リファレンス」をご覧ください。
ユーザーへの通知
watchOS 3 で導入されたユーザー通知フレームワークでは、Apple Watch へのローカル通知とリモート通知の両方の配信がサポートされています。 このフレームワークを使用して、時刻や場所などの特定の条件に基づいて、通知を受信して処理するように、通知のスケジュールを設定します。
詳細については、「watchOS 3 のクイック操作のテクニック」ガイドをご覧ください。
Watch Connectivity Framework の機能強化
WCSession クラスの新しい HasContentPending
プロパティは、処理が必要なデータをセッションがバックグラウンドで受信したことを示します。 また、RemainingComplicationUserInfoTransfers
プロパティは、iOS アプリが watchOS コンプリケーションを更新できる残りの時間を返します。
詳細については、「バックグラウンド タスク」ガイドをご覧ください。
WatchKit Framework の機能強化
watchOS 3 には、次のような WatchKit Framework のいくつかの機能強化が含まれています。
- アプリは、新しい WKCrownSequencer クラスを使用して Digital Crown の状態を取得し、WKCrownDelegate クラスを使用してユーザーがクラウンを回転したときに更新情報を受け取ることができます。
- WKExtension クラスに、アプリのランタイム状態を追跡するためにアプリが使用できる
ApplicationState
メソッドと WKApplicationState 定数が含められました。WKExtension
には、バックグラウンド タスクのスケジュールに使用できる 2 つの新しいメソッドも用意されています。 - WKExtensionDelegate は、アプリの状態の変化を監視し、バックグラウンド タスクの更新を処理するための新しい
ApplicationWillEnterForeground
、ApplicationDidEnterBackground
、HandleBackgroundTasks
の各メソッドが含められました。 - 新しい WKGestureRecognizer クラスが追加され、WKLongPressGestureRecognizer、WKPanGestureRecognizer、WKSwipeGestureRecognizer、WKTapGestureRecognizer の種類のジェスチャ認識がウォッチ アプリに提供されます。
- 新しい WKinterfaceHMCamera クラスは、任意の HomeKit に接続されている IP カメラ用のインターフェイスを提供します。
- 新しい WKInterfaceInlineMovie クラスを使用すると、ユーザーがタップしたときに実行中のムービーに置き換えられるムービー "ポスター" をアプリに表示できます。
- 新しい WKInterfacePaymentButton クラスを使用すると、アプリは、タップされたときに支払い要求を開始する Apple Pay ボタンを UI に表示できます。
- 新しい WKInterfaceSCNScene クラスは、Apple Watch で SceneKit シーンを表示するためのインターフェイスを提供します。
- 新しい WKInterfaceSKScene クラスは、Apple Watch で SpriteKit シーンを表示するためのインターフェイスを提供します。
詳細については、「watchOS 3 のクイック操作のテクニック」ガイドをご覧ください。
トレーニング アプリの拡張機能
watchOS 3 の新機能であるワークアウト関連のアプリには、Apple Watch のバックグラウンドで実行する機能があります。 この機能を有効にし、HealthKit データにアクセスできるようにするには、アプリに workout-processing
値を持つ Info.plist
ファイルに WKBackgroundModes
キーが含まれる必要があります。
さらに、開発者は、ペアリングされた iPhone の iOS アプリ バージョンから watchOS トレーニング アプリを起動できるようになりました。
詳細については、「トレーニング アプリの拡張機能」ガイドをご覧ください。
追加のフレームワークの変更
上記の主要なフレームワークの変更と追加に加えて、Apple は watchOS 3 で多くの追加のマイナー フレームワークの変更も行いました。
詳細については、その他のフレームワークの変更に関するガイドをご覧ください。
非推奨 API
watchOS 3 では、次の API は非推奨となりました。
- UIKit の
UILocalNotification
クラスは非推奨となり、ユーザー通知フレームワークに置き換える必要があります。
非推奨と変更の完全な一覧については、Apple の watchOS 2.2 と watchOS 3.0 API の相違点に関するドキュメントをご覧ください。