聴講メモ:Sansan x DMM.swift

大規模なSwift移行プロジェクトから、最新のiPadOS対応のテクニックまで。
Pro SwiftUIは、発表を聞くに4、5年前に読んだ「Thinking in SwiftUI」と重なる内容も多いと推測されるが、あらためて最新情報を体系的に学びたいため、プレゼン終わり即購入した。

イベントページ:https://dmm.connpass.com/event/336359/


DMMオンラインサロンのSwift移行

大門 弘明 さん

  • SwiftUI アプリで Redux を採用
    • VIPER での課題を解決したい
    • RN 時代の設計を流用、宣言的 UI や SSOT な状態管理を実現したい
  • Redux を SwiftUI でどう実装したか
    • Redux+Saga
    • SelectStateUseDispatch
  • 状態の更新が View に即座反映され、共通処理の一元化ができるようになった
  • 処理順序が旧アプリと同じのため、移行時にビジネスロジックの考慮漏れを防げた
    • が、同時にイケてない部分の解消ができなかった
  • パフォーマンスに課題があり(メモ化検討)

Q&A

  • TCA 採用に至らなかった理由
    • 流行り始めたのが Swift 化のあと、キャッチアップに時間が掛かる
    • 外部ライブラリへの依存をしたくなかった(RxSwift の二の舞)
    • Redux であれば Web でも使っているし、薄く作れるものとして採用
  • 既存実装の再利用について
    • アーキテクチャは全て捨てたが、API クライアントやコンポーネントなどは再利用した

DMMブックスへのTipKit導入

宗像 恒 さん

  • TipKit とは:
    • 機能を発見してもらうためにヒントを表示する
    • 表示条件、表示状態、履歴がフレームワーク側で管理される
    • 適した/使うべきでないケース
      • HIG:3つ以上の操作が必要なケースは向いていない
  • 使い方・実装
    • Inline と Popover
    • Option と Action
  • 導入事例の紹介
  • その他の使い方
    • Rule:Optionよりも高度な条件指定
    • 開発時に便利なデバッグ用機能
    • 見た目のカスタマイズ、独自 Style の定義

Q&A

  • 使う箇所のルールについて
    • 企画段階で Diretor と合意、レビュー会を行なっている(別の手法が良いのではなど)

Pro SwiftUI を読んで得られた知識

@RioFujimon さん

  • 「SwiftUIのコード動いたから良しになってない?」
  • 書籍から5つのトピックを抜粋
    • SwiftUI のレイアウトプロセス
    • Parent View と Child View の関係
    • View Size の修正
    • View のレイアウト中立性
    • View Identity の理解

iPadOS 18でフローティングタブバーを解除してみた

@bluewhitered123 さん

  • iPadにおけるタブが iPadOS 18 からフローティングで表示されてしまうため、それを解消する
  • traitOverridesとはなにか
    • どのように overrides されるのか、WWDCでの解説
  • カスタムタブバーの作り方2種類(実演)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です