SwiftUIファーストアーキテクチャ by Mike Apurin

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

SwiftUIファーストアーキテクチャ

auramagi Mike Apurin auramagi
3

iOSアプリアーキテクチャはさまざま存在しますが、多くはUIKit時代に誕生したものです。これらをSwiftUIで採用すると、SwiftUIの特色である状態管理やEnvironmentの仕組みをフルに活用できず、使い心地の良い設計になかなかなりません。

また、SwiftUIは毎年の変化が激しく、新しいUIコンポーネントはもちろん、ConcurrencyやObservabilityといった新しい言語仕様、ウィジェットやApp Intentsなどの新しい活用場面が登場してきました。これらの変化に対応できる柔軟な設計でないと、新機能の採用に難航してしまうでしょう。

せっかくSwiftUIを使うなら、純正の機能をなるべく活用したいものです。実際の案件や個人アプリの開発経験を元に、SwiftUIの使いやすさを最優先にする設計とは何かを探求します。

本トークでは、以下の点に焦点を当てます。

  • SwiftUIの案件で従来のアーキテクチャを採用して課題と感じたこと
  • Environmentを使った依存解決
  • 状態とアクションの分離
  • プレビューやモックのためのビュー・プロパティラッパーの抽象化
  • SwiftPMを使ったマルチモジュール化