Worldwide Developers Conference(以下、WWDC)は、Appleが毎年6月ごろに開催する開発者向けイベントです。iOSやwatchOSの最新機能も発表されるため、Appleファンも注目しています。セッション数は約200本もあり、情報量も多いです。そこで本連載では、2022年に開催されたWWDC22で、新しく追加されたAPIや新OSの便利な使い方をご紹介します。ざっとキーワードだけ拾いたい開発者やアップデートを知りたい方のキャッチアップに役立てると幸いです。第2回となる今回は、iPhoneのロック画面、iPadのデスクトップ級の機能およびパスキーについてご紹介します。
はじめに
この連載は各記事がWWDC22からそれぞれ別のトピックを取り上げてWWDC22の振り返りを行う企画です。WWDCはAppleが提供するOSやサービスの最新情報をキャッチアップする良い機会ですが、そのコンテンツの量や大きさにはボリュームがあります。この記事ではiPhoneのロック画面、iPadのデスクトップ級の機能およびパスキーに絞ってご紹介するので、これらの要点を知りたい方はぜひ読んでみてください。
「Live Activities」の登場
Live ActivitiesはiPhoneのロック画面に表示される新しい機能です。スポーツ試合の中継情報(図1)やタクシーが到着するまでの時間(図2)などのライブ情報を表示することができます。この機能を利用するとアプリ内で時時刻刻と変化する情報をiPhoneのロックを解除することなく確認できます。体験としては音楽や動画の再生中に進捗確認と操作をロック画面で行える既存の機能と近いと思われます。
つまり、今までは音楽や動画再生などの一部の機能しかライブ情報をロック画面で表示できなかったのが、今回のアップデートによって全てのアプリの機能で表示できるようになったと捉えることもできそうです。
Live Activityの実装は非常にシンプルな印象を持ちました。まずロック画面に表示するUIは下記のようにWidgetとして実装します。図3のコードは、Timerアプリの残り時間を表示するLive Activityを想定しています。通常のWidgetと異なりActivityConfigurationメソッドの引数にSwiftUIのViewを構築することによって、見た目を決定することができます。
なお、アプリから送られてくる残り時間の情報はコード中のcontext変数に該当する変数から取得することができます。
アプリからLive Activityにライブ情報を渡し更新するには下記のように、Activityのインスタンスを作成し、そのインスタンスに対してLive Activityの開始や更新を命令します。UI側の表示に用いるライブ情報の状態はActivityAttributesに準拠した型を作って表現します。それをActivityのインスタンスに渡すことによってライブ情報の開始や更新が行えます。
下記のコードの例では、タイマーの残り秒数を状態として持っているTimerAttributesを生成し、Live Activityの開始や更新を行うメソッドに渡しています。下記のコードではActivityの終了を行っていませんが、終了を行わない場合は最大12時間ほどロック画面にLive Activityが残り続けるので注意が必要です。
このあたりのLive Activitiesの表示・非表示の制御は開発者側の責任であるうえ、誤った制御を行うとロック画面というよく目にする画面に不具合が発生するため、実装するうえでの勘所になりそうだと感じました。
なお、iOS 16の最初のリリースにはLive Activitiesは含まれない予定です。
この記事は参考になりましたか?
- iOSエンジニアたちと振り返るWWDC連載記事一覧
-
- 【WWDC2022総復習】図形描画フレームワークChartsの登場とUIKitの進化
- 【WWDC2022総復習】「機能不足」は過去の話、さらに表現力を増したSwiftUI
- 【WWDC2022総復習】知ってる? ロック画面以外でもiOS 16/iPadOS 16は...
- この記事の著者
-
k-kohey(STORES 株式会社)(k-kohey)
STORES 株式会社テクノロジー部門モバイル本部にて、STORES 決済 のiOSアプリ開発に従事。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
