Upgrade to Pro — share decks privately, control downloads, hide ads and more …

LiveActivityでアプリの利用体験を向上させよう

 LiveActivityでアプリの利用体験を向上させよう

Atsushi Otsubo (tsuboyan)

February 07, 2024
Tweet

More Decks by Atsushi Otsubo (tsuboyan)

Other Decks in Technology

Transcript

  1. @tsuboyan5 / Atsushi OTSUBO potatotips #86 iOS/Android開発Tips共有会 ~ LUUP でのLiveActivity

    実装時のつまづきポイントを紹介 ~ Live Activity で アプリの利用体験を 向上させよう! 1
  2. Luup, Inc. - Confidential and Proprietary 2 つぼやん Luup, inc.

    Mobile App Engineer X: @tsuboyan5 Like: ランニング / キャンプ / バイク / ものづくり 自己紹介 2
  3. Luup, Inc. - Confidential and Proprietary 3 内容 Live Activity

    の概要 Live Activity の LUUP での活用 実装・リリースする上でつまずいたポイント まとめ 1 2 3 4 3
  4. Luup, Inc. - Confidential and Proprietary 7 • ロック画面や Dynamic

    Island 上でリアルタイムに情報を表示するた めの機能 • 本体のアプリとは別で動作する • デフォルトではユーザに許可を求めなくても表示される Live Activity の概要 7
  5. Luup, Inc. - Confidential and Proprietary 8 • iOS 16.1

    以上 ◦ ただし、16.2 からAPI仕様が結構変わったので、16.2 以降で利用するの がオススメ • Dynamic Island 対応機種 ◦ iPhone 14 Pro / Pro Max ◦ iPhone 15 無印 / Plus / Pro / Pro Max Live Activity が利用可能な条件 8
  6. Luup, Inc. - Confidential and Proprietary 9 • iOS 16.1

    以上 -> iOS 16 以上のデバイスの割合:89% ※ ◦ ただし、16.2 からAPI仕様が結構変わったので、16.2 以降で利用するの がオススメ • Dynamic Island 対応機種 -> SEを除き最新機種は対応 ◦ iPhone 14 Pro / Pro Max ◦ iPhone 15 無印 / Plus / Pro / Pro Max Live Activity が利用可能な条件 ※ 2024/02/04 時点, AppStore にアクセスされた OS毎の計測結果 https://developer.apple.com/support/app-store/ 9
  7. Luup, Inc. - Confidential and Proprietary 10 つまり Live Activity

    が 本領を発揮できる時代が到来 10
  8. Luup, Inc. - Confidential and Proprietary 14 車両を、返却し忘れるユーザがたまに発生 😱 •

    時間単位で課金されるため、高額な料金になる可能性 • 他のユーザが利用できない LUUP での課題 14
  9. Luup, Inc. - Confidential and Proprietary 15 車両を、返却し忘れるユーザがたまに発生 😱 •

    時間単位で課金されるため、高額な料金になる可能性 • 他のユーザが利用できない 🤔 これらのユーザを救えないものか。 👉 Live Activity を使うことで、 アプリが閉じられていても、車両を利用中であることを ユーザに伝えられるかも!? LUUP での課題 15
  10. Luup, Inc. - Confidential and Proprietary 20 その1 ロック画面 /

    Dynamic Island どちらにも対応する必要がある 20
  11. Luup, Inc. - Confidential and Proprietary 21 ロック画面 / Dynamic

    Island どちらにも対応する必要がある はじめはロック画面だけ実装するつもりだったが、実装上必ず両方記述が必要になって いた その1 - つまずきポイント 画像引用元: Displaying live data with Live Activities | Apple Developer Documentation https://developer.apple.com/jp/design/human-interface-guidelines/live-activities 21
  12. Luup, Inc. - Confidential and Proprietary 23 Dynamic Island のレイアウトには癖がある

    レイアウトの制約 • 色の使い方 • マージンの設定 • etc… 網羅すべき表示状態が複数ある • コンパクト表示 ◦ アプリが1つと2つの時で表示領域が変わる • 拡張表示 その2 - つまずきポイント 画像引用元:ライブアクティビティ | Apple Developer Documentation https://developer.apple.com/jp/design/human-interface-guidelines/live-activities 23
  13. Luup, Inc. - Confidential and Proprietary 24 レイアウトの制約 • 背景は必ず黒

    • インカメラ部分を考慮した実装が必要 👉 制約について十分に理解した上でデザインする必要 その2 - つまずきポイント 24
  14. Luup, Inc. - Confidential and Proprietary 25 その3 Live Activity

    は様々な要因で非表示にされる 25
  15. Luup, Inc. - Confidential and Proprietary 26 Live Activity は様々な要因で非表示にされる

    • 左スワイプで閉じられる (通知と同じ) • 設定アプリからアプリごとにLiveActivityを不許可にできる • 一定時間でOS側からkillされる ◦ ロック画面では12時間、Dynamic Island では8時間 👉 表示したい時に表示されない可能性もある その3 - つまずきポイント 26
  16. Luup, Inc. - Confidential and Proprietary 27 その4 Live Activity

    が要因でリジェクトされるリスク 27
  17. Luup, Inc. - Confidential and Proprietary 28 LUUP では Live

    Activity が要因でリジェクトされた 1回目のリジェクト • 審査官コメント:動作イメージを提出してもらわないと審査できないYO! • Luupの対応:Live Activity の動作イメージを撮影して提出 2回目のリジェクト • 審査官コメント:Widget は実装してます? • Luupの対応:「Live Activity のみ実装してます」といった旨の返答 結果的には無事通過し、Live Activity 対応版(v1.73.0)を先週リリースしました🎉 その4 - つまずきポイント 28
  18. Luup, Inc. - Confidential and Proprietary 29 • LiveActivity が本領を発揮できる時代が到来

    ◦ iOS 16以上のデバイスや Dynamic Island 対応機種の増加 • LUUP での課題の解決に、LiveActivity が役に立てられた ◦ 返却忘れユーザに対して、借りっぱなしであることを伝えられる可能性 ◦ あと、かっこいいので、開発者にとってはモチベになる (重要) • つまずきポイントに注意 ◦ レイアウトの制約・特殊性 ◦ 非表示にされうる ◦ リジェクトリスク まとめ 29
  19. Luup, Inc. - Confidential and Proprietary 30 Luup Developers Blog

    で取り組みを発信しています! https://zenn.dev/p/luup_developers 宣伝 30
  20. 32