大規模な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
SelectState
とUseDispatch
- 状態の更新が 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でフローティングタブバーを解除してみた
- iPadにおけるタブが iPadOS 18 からフローティングで表示されてしまうため、それを解消する
traitOverrides
とはなにか- どのように overrides されるのか、WWDCでの解説
- カスタムタブバーの作り方2種類(実演)