はじめに
Apple Watchで利用できるアプリケーションを開発するには、2015年8月時点だとWatch OS1をベースとして開発する必要があるのでWatch OS1でできること(こちらを参照)がベースとなりますが、2015年秋には実装される予定のWatch OS2では設計思想がだいぶ変わってしまうので、そちらを見越した開発が必要になるかと思います。
ここでは、Apple社の公開しているWatch OS2への移行文書(watchOS 2 Transition Guide)を元に何が変わるのかを記載しておきたいと思います。
Watch OS1の課題
Watch OS1からWatchOS2にアップデートされるまでに約半年という短い期間(正確にいうならば、Apple Watchが世に送り出されてから約半年という期間)で、そもそものコンセプトが変わるような変更が行われるようなので、その理由を勝手ながら挙げてみます。
- Watch OS1では、WatchKit extensionがiOS側(iPhone側)で動作する仕組みである為、Apple Watch側のアプリの起動がとても遅くて、本来の目的である"素早く必要な情報を見る"ということができないという課題があった。
- Watch OS1では、Apple Watch側にユーザーインターフェースの部分(storyboardとリソースファイル)しかインストールされず、全ての動作がiOS側に依存してしまっている為、Apple Watch単体では時計としての役割しか果たせずに機能性に課題があった。
最初に"コンセプトが変わるような"と書きましたが、コンセプトが変わるというよりは、本来のコンセプトがWatch OS1では達成できていなかったというのが正しい表現かもしれないですね。
Watch OS2でのアーキテクチャの変更
*「watchOS 2 Transition Guide」より抜粋
上図の通り、一番の変更点はiOS上で動作していたWatchKit extensionがApple Watch側に移動したことです。
動作するOSがiOSよりwatchOS上に移動しても、アプリケーション上におけるWatchKit appとWatchKit extensionの役割の分離については変更はありません。iOS上で動作するように記述されたWatchKit extensionのソースコードはWatch OS2上に移動した後もほとんど手を加えることなく利用することができます。
ただ、上記の変更により設計変更が必要な点もあります。
- iOS SDKの代わりにwatchOS SDKのフレームワークを利用してextensionを開発する必要があります。その為、watchOS SDKで対応していない機能については、iOS側のアプリケーションに依存した設計にする必要があります。
- WtachKit extensionはデータをApple Watch上に格納するようになりますので、iOS上のデータを利用するには、iOS上より取得する必要があります。また、iOS上のshared group containerが利用できないので、iOS側のアプリケーション等を通じてファイル交換し、Apple Watch側に転送するなどの考慮が必要になります。
complications
Watch OS2では、「complications」という機能が提供されるようになります。「complications」はclock face上の小さな領域で、システムが提供する現在日時や月齢、日出時刻などと一緒にアプリケーションの重要な情報を素早く表示することができます。
Watch OS1 から Watch OS2へのマイグレーションの判断
Apple社の提供している文書ではマイグレーションする際の検討事項として挙げられれていますが、ここに記載されている内容はつまりのところWatch OS2でアプリケーションを開発する際の注意事項にもつながると思います。
-
iCloudへの依存度による配慮
Watch OS2上のWatchKit extensionからはCloudKitのように直接iCloudへアクセスすることができない為、iCloud上のデータへのアクセス(データ取得、Apple Watchへの転送、受信、データ保存など)方法をiOSアプリ側に依存して行うか、もしくはwireless通信などを利用して行う必要があります。 -
対応するiOS側のアプリケーションデータへの依存度による配慮
iOS上で作成されたファイルはApple Watch側のアプリが起動される前にApple Watch側に転送する必要があり、ファイルが変更されたら、iOS側に戻すことが必要になります。この転送の為の機能をApple Watchは提供していますが、APIがWatch OS2では異なっています。 -
Apple Watchの以前のバージョン(Watch OS1)のサポートへの配慮
Apple WatchではWatch OS1とWatch OS2のアプリケーションを同時に同動作させることができます。ただし、それぞれでコンパイルする必要があるため、それぞれをメンテナンスしていく必要があり複雑性が増すことになる点に注意してください。