複雑なインタラクションを伴うフリックカード機能を、SwiftUI化かつコンポーネント化した話 by sosuiiii

iOSDC Japan 2024
レギュラートーク(20分)

複雑なインタラクションを伴うフリックカード機能を、SwiftUI化かつコンポーネント化した話

Sossui_Swift sosuiiii Sossui_Swift
4

[はじめに]
UIKitで作られた画面や既存機能をSwiftUI化する際に、
GeometryReaderや描画パフォーマンス、イベントの伝搬・連携、状態管理などで困った経験はありませんか?
この問題と正面からぶつかり、誰でも再現可能なシンプルなI/Fでコンポーネント化した経験を踏まえたお話をさせてください。
※Introspectなどのライブラリは未使用

[背景]
10年続く弊社プロダクトでは、InterfaceBuilderを使ったフリックカードの構成が限界を迎えていました。
「施策に追従するための実装コスト」や「AIを使った最適化」のハードルはエベレスト級で、
若手の多い弊チームでは尚更難易度が高いものとなっていました。

[主題]
このトークセッションでは、主に次の2点についてお話しします。
①設計について

  • UIKitからSwiftUIへのリプレイス
  • SwiftUIの思想に合わせたシンプルなI/F設計
  • 複雑なインタラクション管理
    これを踏まえて「若手でも再現可能な状態」にするために、どのように実装したのか

②SwiftUIについて

  • 描画パフォーマンスが落ちないように工夫したこと
  • 親Viewと子Viewのイベント連携

などなど..数ヶ月以上に渡る壮絶なバトルについて、色濃くお話しできたらと思います。
よろしくお願いいたします!