[watchOS 2] watchOS 2 の変更点について少し調べてみた

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

watchOS 1 と watchOS 2 の違いを少し調べてみましたのでご紹介します。

watchOS 2 の変更点

watchOS 2 用の Watch app は 独立した2つのバンドルから構成されます。この役割分担は watchOS 1から変わっていません。

  • Watch app
    • インターフェースを表示するのに必要な storyboard とリソースファイルを含む
  • WatchKit extension
    • インターフェースを更新するのに必要なコードやリソースを含む

watchOS 1 の場合、WatchKit extension は iPhone 上で動作していました。

watch_and_iphone-02

watchOS 2 の場合は、WatchKit extension は Apple Watch 上で動作します。Watch app と extension が共に Apple Watch 上で動作するので、両者間のやりとりは watchOS 1 のときよりも高速です。

また、watchOS 2 用のアプリはユーザーの iPhone が近くになくても動きます。

watch_and_iphone-01

構造が変わったことによる他の影響

Watch app と extension の連携が密接になった反面、連携する iOSアプリ との関係は疎遠になりました。

watchOS SDK の制限

watchOS 2 用の extension は iOS SDK ではなく watchOS SDK 内の framework を使用して実装する必要があります。watchOS SDK で使用できない機能を利用したい場合は iPhone アプリの力を借りる必要があります。

  • watchOS SDK で利用できるフレームワーク
    • ClockKit
    • Contacts
    • Core Data
    • Core Foundation
    • Core Graphics
    • Core Location
    • Core Motion
    • EventKit
    • Foundation
    • HealthKit
    • HomeKit
    • ImageIO
    • MapKit
    • Mobile Core Services
    • PassKit
    • Security
    • System Configuration
    • Watch Connectivity
    • WatchKit

App Groups でデータを共有できなくなった

watchOS 2 用の WatchKit extension は Apple Watch 上で動作するようになったので、App Groups を利用してiOS アプリとファイル交換をすることはできません。iOS アプリとファイル交換をするにはワイヤレスで転送する必要があります。

その他

  • 既存のアプリが iCloud に強く依存している場合
    • watchOS 2 の WatchKit extension は iCloud を利用できない
    • 「Watch Connectivity フレームワークを使用してワイヤレスのデータ転送を行う」などの修正が必要
  • 古いバージョンの Apple Watch のサポートを続ける必要がある場合
    • 1つの iOS app バンドルで watchOS 1 と watchOS 2 両方に対応した Watch app を提供できる
    • しかし、構造は複雑になり、メンテナンスは大変になる

まとめ

今回は watchOS 1 と watchOS 2 の違いを少しご紹介しました。今後も watchOS 2 に関する記事を書いていきたいと思います。

参考資料