Swift 5.9でObservationが導入されました。これはCombineのObservableObjectを置き換えるもので、iOS 17から利用可能です。iOS 17のシェアが高まるにつれ、今後Observationを採用するプロジェクトが増えると予想されます。
Observationを導入する際には、単にObservableObjectと@Publishedを@Observableで置き換えることも可能です。しかし、より積極的にObservationの利点を活かすこともできます。たとえば、エンティティをstructではなく@Observable classとして実装することでパフォーマンス上の利益が得られるケースがあります。しかし、これは値型中心の言語であるSwiftにおいては異質なアプローチです。また、CombineではViewModelが別のObservableObjectを監視する際に一手間必要だったので、そのような設計は避けられることがありました。しかし、@Observableでは同様の問題は発生しません。このように、Observationの導入がコーディング上の設計に影響を与える可能性があります。
本セッションでは、まずObservationについて説明し、その後、Observationを使ってどのようにiOSアプリを作れるのか、パターン別に解説します。