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

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

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

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

Avatar for Atsushi Otsubo (tsuboyan)

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