Open4

Live Activityについて理解する

kamimikamimi

Live Activityとは

  • iPhoneのロック画面やダイナミックアイランドに、直近のデータを表示するもの
  • 生の情報を一目で見ることができる

実装

  • 既存のWidget Extensionにコードを追加するか、なければ新しくWidget Extension を追加する
  • WidgetKitを使っており、SwiftUIでUIを実装する
  • ActivityKitをLive Activityのライフサイクルを扱うために使う

デザイン

https://developer.apple.com/design/human-interface-guidelines/components/system-experiences/live-activities

kamimikamimi

Live Activityの表示

  • ロック画面とダイナミックアイランドで表示方法は異なる

  • ダイナミックアイランドをサポートしていないデバイスでは、ロック画面はアラート設定を含むLive Activityのためのバナーとして表示される

  • ダイナミックアイランドをサポートしているデバイスでは、複数の表示方法がある

  • 進行中のLive Activity が一つの場合は、コンパクトな表示となる。2つの要素で構成されている

    • TrueDepthカメラの左側と右側
    • 別れているが、ダイナミックアイランドとしては一つのまとまったビューを形成し、アプリの一つの情報を表現している
    • ユーザーはLive Activityをタップして、詳細情報を取得することができる

  • 複数のLive Activityが進行中の場合、システムはミニマルの2つの丸い表示となる
  • ダイナミックアイランドに接続されているように見えるLive Activityと、切り離されているように見えるLive Activityが選択される
  • タップするとアプリが起動して、詳細情報を知ることができる

  • コンパクトまたはミニマル表示の場合にLive Activityをタップすると、拡大表示される

kamimikamimi

制約

  • アプリやユーザが終わらせなければ、Live Activityは8時間アクティブとなり、その後は自動的におえる
  • 終えたらダイナミックアイランドからは取り除かれる
  • ロック画面では、ユーザーが取り除くかシステムが取り除いてから追加で4時間までは残り続ける(つまりロック画面ではLive Activityは最大12時間残る)
  • ウィジェットと違ってネットワークにアクセスしたり、位置情報の更新を受信することはできない
  • アクティブなLive Activityの動的データを更新するためには、アプリでActivityKitフレームワークを使用するか、Live Activityがリモートプッシュを受信できるようにする必要がある
kamimikamimi

実装

  1. Widget Extension にInclude Live Activityを設定したものを追加する
  2. Info.plistにNSSupportsLiveActivitiesYESで追加する
  3. ActivityAttributes を定義したコードを追加する
  4. ActivityAttributes を使う
  5. Live Activityを設定、開始、更新、終了するためのコードを追加する