Open4
Live Activityについて理解する
Live Activityとは
- iPhoneのロック画面やダイナミックアイランドに、直近のデータを表示するもの
- 生の情報を一目で見ることができる
実装
- 既存のWidget Extensionにコードを追加するか、なければ新しくWidget Extension を追加する
- WidgetKitを使っており、SwiftUIでUIを実装する
- ActivityKitをLive Activityのライフサイクルを扱うために使う
デザイン
Live Activityの表示
-
ロック画面とダイナミックアイランドで表示方法は異なる
-
ダイナミックアイランドをサポートしていないデバイスでは、ロック画面はアラート設定を含むLive Activityのためのバナーとして表示される
-
ダイナミックアイランドをサポートしているデバイスでは、複数の表示方法がある
-
進行中のLive Activity が一つの場合は、コンパクトな表示となる。2つの要素で構成されている
- TrueDepthカメラの左側と右側
- 別れているが、ダイナミックアイランドとしては一つのまとまったビューを形成し、アプリの一つの情報を表現している
- ユーザーはLive Activityをタップして、詳細情報を取得することができる
- 複数のLive Activityが進行中の場合、システムはミニマルの2つの丸い表示となる
- ダイナミックアイランドに接続されているように見えるLive Activityと、切り離されているように見えるLive Activityが選択される
- タップするとアプリが起動して、詳細情報を知ることができる
- コンパクトまたはミニマル表示の場合にLive Activityをタップすると、拡大表示される
制約
- アプリやユーザが終わらせなければ、Live Activityは8時間アクティブとなり、その後は自動的におえる
- 終えたらダイナミックアイランドからは取り除かれる
- ロック画面では、ユーザーが取り除くかシステムが取り除いてから追加で4時間までは残り続ける(つまりロック画面ではLive Activityは最大12時間残る)
- ウィジェットと違ってネットワークにアクセスしたり、位置情報の更新を受信することはできない
- アクティブなLive Activityの動的データを更新するためには、アプリでActivityKitフレームワークを使用するか、Live Activityがリモートプッシュを受信できるようにする必要がある
実装
- Widget Extension にInclude Live Activityを設定したものを追加する
- Info.plistに
NSSupportsLiveActivities
をYES
で追加する - ActivityAttributes を定義したコードを追加する
- ActivityAttributes を使う
- Live Activityを設定、開始、更新、終了するためのコードを追加する