watchOSアプリのプランニング

Apple Watch向けソフトウェアを初めて開発する場合は、利用するツールやテクノロジーについてよく理解しておきましょう。Appleでは、開発を始めるために必要なすべてを提供しているため、watchOSテクノロジーで、アプリで目的とする機能やパフォーマンスを実現することができます。

watchOS向けの新しいアプリケーションとテクノロジーに関するStoryboard

広がる可能性

Apple Watchは、最も重要な情報をすばやく入手する手段として使用されています。ユーザーはApple Watchを手首に装着するため、いつでも簡単に利用できます。タイムリーな通知の配信、健康維持のサポート、ニュースや情報の提供が可能で、情報やエンターテインメントを利用する別の手段を見出してもらうことができます。

ユーザーはApple Watchを使用し、Apple Watch向けにApp Storeから直接ダウンロードしたアプリや、iOSアプリと連係するアプリを操作します。アプリ自体も重要な役割を担いますが、コンプリケーションおよび通知も、ユーザーがコンテンツを利用するように促すことができます。

watchOSのコンプリケーション画面のスクリーンショット。

コンプリケーション

コンプリケーションは、文字盤の事前定義エリアに表示される小さなビジュアル要素です。これを利用して、アプリの最も重要な情報を表示したり、ユーザーがアプリのコンテンツを利用するように促すことができます。詳細は、「WidgetKitフレームワークをご参照ください。

watchOSの通知画面のスクリーンショット。

通知

通知には時間に応じた情報が表示され、触覚、サウンド、視覚的な要素を使用してユーザーを注目を促します。アプリからの通知をローカルで作成することや、サーバからリモートでApple Watchにプッシュ通知を配信することができます。詳細は、「ユーザー通知フレームワーク」をご参照ください。

watchOSアプリの画面のスクリーンショット。

アプリ

アプリでは、コンテンツの表示と操作を全画面で行います。watchOSアプリは、ユーザーが今すぐ必要としている最も関連性の高いデータのみにフォーカスします。たとえば、天気アプリには現在の予報のみが表示され、詳細な地図やデータは表示されません。SwiftUIをご参照ください。

開発を始める場所

ソフトウェアの開発は、Appleの統合開発環境であるXcodeで始めます。Xcodeには、プロジェクト管理、コードエディタ、UI用のビジュアルエディタ、デバッグツール、各種デバイスのシミュレータ、パフォーマンス評価ツールなど、ソフトウェア開発に必要なすべてのツールが用意されています。またXcodeには、「フレームワーク」と呼ばれる、ソフトウェア開発用のシステムコードモジュールが含まれています。

Mac App StoreからXcodeをダウンロード

Xcodeには、iOS、iPadOS、macOS、tvOS、watchOS向けの各SDKが用意されています。

Xcodeプロジェクトは、watchOSアプリのコードとリソースを管理します。新規プロジェクトを作成するか、または既存プロジェクトへwatchOSアプリを追加するかを選択できます。

Watch専用アプリのための新規プロジェクトを作成する、またはwatchOSとiOSの両方のアプリを同時に開発する。Watch専用アプリは、iOSアプリと連係しない、Apple Watch特有の体験を提供します。また代わりに、watchOSアプリとiOSアプリの両方を含むプロジェクトを作成して同時に開発することも可能です。

既存のiOSプロジェクトを開き、連係するwatchOSアプリを追加する。このようなwatchOSアプリはApple Watchのみでも機能しますが、iOSアプリの機能と連係したり、機能を補完したりします。たとえば、watchOSのフィットネスアプリはワークアウトのデータを収集しますが、iOS側でそのデータを表示および分析します。このアプリは両方とも、iOSのApp Storeから提供されます。

Xcodeで新規プロジェクトを作成するには、「File (ファイル)」>「New (新規)」>「Project (プロジェクト)」を選択して、表示される指示に従います。新規のwatchOSアプリでは、SwiftUIを使用してUIおよびインフラストラクチャを構築します。SwiftUIの宣言型プログラミングモデルにより、コードの複雑さが緩和され、異なるサイズのApple Watch向けのインターフェイスを管理する作業負担が軽減されます。Xcodeの使用方法に関するその他の詳細は、Xcodeのドキュメントで確認してください。

SwiftUIは、Appleのデータ管理テクノロジーとシームレスに連携し、インターフェイスの構築を支援します。Swift標準ライブラリおよびFoundationフレームワークには、Array型やDictionary型などの構造型や、文字列、数字、日付、およびその他の一般的なデータ値に使用する値型が用意されています。ユーザー定義のカスタム型については、SwiftのCodableサポートを採用してそれらの型をディスク上で永続化します。アプリがより大規模な構造化データを管理する場合は、Core DataおよびCloudKitで提供されているオブジェクト指向モデルを使用してデータの管理及び永続化を行えます。

Swiftを利用する

コードの作成には、プログラミング言語Swiftを使用します。Swiftは、構文が簡素な上、安全性を考慮した設計のもとコードの表現力をより豊かにする最新機能を装備しています。Swiftのコードなら、処理が非常に高速なソフトウェアの作成が可能です。

Swiftプログラミング言語ガイド

Swiftプログラミング言語ブックには、Swiftプログラム言語の概要がすべて網羅されており、Swiftの学習に向けて第一歩を踏み出す上で最適な資料です。

ユーザー体験をデザインする

魅力的な体験を提供するアプリには、ユーザーが自然と集まります。そのようなユーザー体験を実現するには、分かりやすいレイアウトで、見栄えがよく、適切なコンテンツを強調するUIが必要です。UIの操作方法は、直感的で既存のパターンにマッチすると良いでしょう。何よりも重要なのは、Apple Watch上でインターフェイスを自然に操作できることです。

ヒューマンインターフェイスガイドライン

Appleのヒューマンインターフェイスガイドラインには、アプリのインターフェイスをデザインする方法、Apple Watchでコンテンツを操作する方法、およびインタラクションを管理する方法に関する重要な情報が記載されています。watchOSのエコシステムについて学習する際はこれらのガイドラインを最初に確認することが大切です。該当するAppleのデザインリソースを参考にしながらアプリの開発を行ってください。

Apple Watchで最高の体験を実現するため、必ず以下の機能に対応させてください。

常時表示ディスプレイ

Apple Watchの一部のモデルには常時表示ディスプレイが採用されており、文字盤が常に表示された状態を維持します。アプリが常時表示ディスプレイで使用されている際に、コンテンツが最新の状態を維持するようにしてください。「常時表示ディスプレイに対応するようにアプリを設計する」をご参照ください。

異なるサイズのApple Watch

Apple Watchには38mm〜45mmまでのサイズがありますが、SwiftUIを使用すると、インターフェイスをどのサイズにも適応させることができます。シミュレータを使用してインターフェイスをプレビューし、必要に応じてレイアウトを調整します。「異なるサイズのWatchに対応させる」をご参照ください。

ダイナミックタイプ

ユーザーはシステム設定で、大きなフォントに変更して文字を見やすくしたり、小さいフォントに変更して画面により多くの情報を表示させたりできます。このようなフォントサイズの変更に応じて、アプリのテキストも調整する必要があります。このためには、標準的なタイプスタイルを採用してこの調整を自動的に行うか、またはカスタムフォントを含むテキストに対してシステムAPIを使用して手動で調整するようにします。SwiftUIではビューの環境から、

スケーラブルな画像

アプリでSF Symbolsを組み込むことで、変更への対応度が高まります。SF Symbolsアプリには、膨大な数の設定可能なベクターベースの画像が収録されており、これらの画像は外観やサイズの変更に自然に適応します。また、システムフォント「San Francisco」とも調和するため、Appleの各種プラットフォームでの一貫性も維持されます。「UIのシンボル画像を構成および表示する」をご参照ください。

Apple Watchは、主にタッチスクリーンとDigital Crownを使用して操作します。システムは、Siriを通じた音声入力や、アクセシビリティ関連の入力(AssistiveTouchなど)にも対応しています。ユーザーはApple Watchの画面を数秒間しか見ない場合もあるため、操作の必要性をなくし、関連性の高い情報がすぐに表示されるようにしてください。

開発にあたってのベストプラクティス

以下のベストプラクティスを実践し、すべてのユーザーにとってベストな体験を提供しましょう。

ユーザーのプライバシーを保護する

プライバシーは重要なため、ユーザーのデータがどのように使用されるかを明確にする必要があります。データを収集する場合は、その情報がどのように使用されるかを説明する、プライバシーに関する声明を表示するようにします。個人データを利用するAppleテクノロジーを採用する場合、データの初回利用時に、データの使用用途に関する説明をシステム上で表示してください。詳細は、「ユーザーのプライバシーを保護する」をご参照ください。

収集および保存したデータを保護する

データを収集する場合は必ず、悪意ある攻撃からそのデータを保護してください。パスワード、財務関連データ、個人識別情報など、非常に機密性の高いデータは、ユーザーの暗号化されたキーチェーンに保存します。その他の個人データは、ディスク上の暗号化テクノロジーやその他のAppleのセキュリティテクノロジーを使用して保存します。ローカルに保存するデータやアプリの外部に送信するデータは、AppleのCryptoKitを使用して暗号化します。

アクセシビリティへの対応を検証する

Appleのテクノロジーにはアクセシビリティへのサポートが組み込まれていますが、画面読み上げ機能やその他のアクセシビリティ機能は、アプリから提供される情報に依存します。SwiftUIでは各UI要素を定義することはできますが、それらのUI要素がどのように相互に連携するかは開発者次第です。アクセシビリティラベルおよびその他の説明をレビューし、それらが有益な情報を提供すること、およびフォーカスベースのナビゲーションがシンプルで直感的になっていることを確認してください。詳細は、「アクセシビリティ」をご参照ください。

アプリを国際化およびローカライズする

グローバルな市場を視野に入れ、アプリをローカライズして異なる地域や言語に対応させましょう。アプリをローカライズできるよう、異なる言語や地域向けに文字列、日付、時刻、通貨、数字をフォーマットするためのコードが提供されているFoundationフレームワークを使用します。左から右に書く言語と右から左に書く言語の両方において、UIが適切に表示されるよう対応させてください。アプリのリソースは、ローカライズしてXcodeのプロジェクトに追加します。インターナショナライゼーションとローカリゼーションのプロセスに関する情報は、「ローカリゼーション」をご参照ください。

あらゆるユーザーを考慮して設計する

コンテンツを作成する際は社会的および文化的な違いを考慮し、特定のユーザーに対してネガティブまたは軽蔑的なニュアンスを持つ画像や用語の使用を避けてください。詳細は、「インクルージョン」をご参照ください。

アプリを徹底的にテストおよびデバッグする

開発サイクルでは、問題が発生すると同時に、組み込まれているXcodeデバッガを使用してデバッグを行います。XCTestを使用して自動テストスイートを作成し、ビルドするたびに毎回テストを実行して、新しいコードが想定通りに機能することを確認します。Xcode Cloudの継続的インテグレーションシステムを使用して、ビルド、テストサイクル、QAチームへのアプリの配信を自動化します。

アプリのパフォーマンスを最適化する

Xcodeに付属するInstrumentsアプリを使用して、コードのボトルネックやパフォーマンスに関するその他の問題を特定します。このアプリでは、実行コードのプロファイル取得、メモリリークの検出、リソース使用状況の分析などが可能です。Instrumentsアプリを使用して測定値を収集する方法については、「アプリのパフォーマンスを向上させる」をご参照ください。

アプリのビジネスモデルを選択する

「無料」、「無料(アプリ内課金あり)」、「有償でダウンロード」などのビジネスモデルを使用して、アプリを全世界に配信しましょう。インターフェイスを構築する際は、統一感のある体験を提供し、選択したビジネスモデルに対応するインターフェイスを心がけてください。詳細は、「ビジネスモデルの選択」をご参照ください。

さらにその先へ

アプリをビルドし、実行できることを確認したら、その体験を向上させる方法を検討しましょう。特定機能の追加やコンテンツに対するアプローチの変更など、小さい変更が大きい違いをもたらすこともあります。たとえば、次の内容を検討します。

ウォレットやApple Payに対応させる

ウォレットやApple Payに対応させることにより、ユーザーがアプリのサービスを利用する際の利便性が向上します。アプリでポイントカード、搭乗券、チケット、ギフトカード、またはその他のデジタルカードがサポートされている場合、ユーザーはこれらをウォレットに追加して簡単にアクセスできます。また、アプリをApple Payに対応させると、ユーザーは商品やサービスの代金をより簡単に支払えるようになります。

該当するコンテンツを見つけやすくする

ユーザーがアプリを使用する状況を想定して、重要なコンテンツをすぐに表示させる方法を検討します。位置情報や現在の日時に応じて、結果をフィルタリングしたり重要な通知を生成したりします。また、機械学習を使用し、データを分析してより良い解決策を提案する、インターフェイスを動的に再配置し、使用頻度の高いコンテンツに簡単にアクセスできるようにする、といったことを検討します。

健康的なライフスタイルのチョイスを推奨する

Apple Watchは、健康やフィットネスに関する情報を収集するための優れたツールです。アプリが健康関連のデータを収集する場合は、HealthKitを使用して保存するようにします。データをHealthKitリポジトリに追加すると、そのデータを安全に維持することができ、Apple Watch所有者の管理下に置くことができます。所有者は、iOSのヘルスケアアプリでその情報を確認でき、健康やフィットネス全般に関する潜在的に重要な傾向を把握できます。

Apple WatchからBluetoothデバイスへの接続に対応させる

Apple Watchは、多くの標準的なBluetoothプロトコルによる通信に対応していますが、カスタムプロトコルに対応させることも可能です。自社でBluetooth対応のスピーカー、ヘッドフォン、医療機器(血圧計や血糖モニターなど)を製造している場合は、アプリとハードウェアとの間の通信にCore Bluetoothを使用します。

新しい機能に対してランタイム条件チェックを追加する

watchOSの新しいバージョンに対応させるためにアプリをアップデートする際は、新しい機能のコードに対してランタイム条件チェックを追加します。ランタイムチェックにより、アプリの異なるバージョン(新しいwatchOS用バージョンと古いwatchOS用バージョン)を配信する必要性を排除できます。同じバージョンのアプリを実行するユーザーのうち、新しいwatchOSを使用しているユーザーは、追加された新機能を利用できるようになります。ランタイムチェックを追加する方法については、「特定バージョンのプラットフォームやOSでコードを実行する」をご参照ください。

その他のリソース

独自の機能を提供すると同時にAppleのプラットフォームと緊密に統合する、各種テクノロジーを確認しましょう。これらのテクノロジーにより、iOSiPadOSmacOStvOSvisionOS、watchOSの全プラットフォームを通してシームレスなアプリおよびゲームのエコシステムを実現できます。

アプリの配信

アプリを配信する準備が整ったら、全世界の数億人のユーザーに向けてApp Storeからアプリを配信することができます。開発したアプリをApp Storeに提出するための準備方法を確認しましょう。

アプリの提出について詳しく