【iOSDC Japan 2023 レポート】「SwiftUIに適した新アーキテクチャの導入に挑む」を聞いてきた。

2023.09.05

はじめに

年に一度のiOSエンジニアの為のお祭り iOSDC Japan 2023に参加しています。

せっかくなので、参加したセッションのレポートを書きたいと思います。

SwiftUIに適した新アーキテクチャの導入に挑む

登壇者

概要

ChatworkのiOSアプリは2011年にリリースされ、12年間で様々な技術変更や新機能の追加を行ってきました。しかし、長期間の開発では技術的な負債が蓄積されます。そこで昨年、新しいアーキテクチャを導入し、負債の解消に取り組みました。

新アーキテクチャを社内では「SVVS(Store, View, ViewStateの頭文字)」と呼んでおり、弊社の技術顧問であるkoherさんとの毎週の議論や、技術合宿を経て生まれました。

SVVSはSingle Source of Truthを考慮し、シンプルでオーソドックスな構成を実現しています。特にSwiftUIとの相性が良く、学習コストも低く、サードパーティのライブラリやフレームワークに依存しない点が魅力です。

このセッションでは、「SVVS」の開発秘話や現在のUIKit / MVVMからの導入計画について分かりやすく説明します。

引用: fortee

資料

感想

SwiftUIではよく最適なアーキテクチャは何だ?と議論されますが、今回はSVVSという新しいアーキテクチャを導入して試して行ったお話でした。

SVVSは、

  • Store
    • 画面間で共有される状態。取得・更新するメソッドを持ち、単一情報源になる
  • View
    • SwiftUIで実装された画面。必ずViewStateを持っている
  • ViewState
    • プレセンテーションロジックでViewの状態を管理。Viewのアクションをメソッドとして実装

※画面遷移はUIKitを使用

SVVSの導入することで、コードが減り、責務がわかりやすくなるという利点を話されていました。また、ライブラリに依存しておらず、習得コストも低く導入しやすい。

実際に、サンプルプロジェクトがあるので見てみると良さそうです。

まだ始まったばかりのアーキテクチャで改善箇所も出てくるかもしれないが、これからこのアーキテクチャで進めていかれるようでした。

とても試したくなるアーキテクチャのお話でした。ありがとうございました。

おわりに

これにて僕のiOSDC Japan 2023は閉幕です。

iOSDC 2023 レポート関連

Day0

Day1

Day2