能登 要

札幌在住のiOSアプリ開発者。SwiftUI により分割されたデバイス間を縦横にやりとりできる考え方に転換しています。

iOSアプリ開発者。2009年のiPhoneアプリ開発開始時期から活動。開発言語のアップデートの中でSwiftUIおよび周辺技術に着目中。

[プレゼン資料] SwiftUIむけに 整理された状態監視 Observation

2023年8月6日に行われた札幌iPhone開発勉強会でのプレゼンテーション資料。

iOS17から利用可能となるSwiftUIでの状態監視のためのフレームワークObservation について説明している。

以下資料内容を短くすると以下となる。

SwiftUI公開された2019年当初は別フレームワーク(Combineフレームワーク)を組み合わせることでデータの状態を監視、監視した結果変更があればUI反映される仕組みを実現していた。UIへの状態反映は元となるデータのみが情報源となることが売りだった。iOSがサードパーティでも開発可能となった2008年以前はデータの更新元について整理されているとはいえない状態だったので大きな進歩と言えた。

2023年になって同じような機能を置き換えることにしたAppleだったが2019年当初では技術的に使えるSwift言語の機能が限られた状態で極秘裏にSwiftUIを開発していかなければならない状態でCombineフレームワークを使うアイデアも技術的に最適とは言えないものだった。

iOS17からはSwiftMacrosというフレームワークから開発者が閲覧可能なテンプレートコードを書き出す機能が提供されておりObservationについてはSwiftMacrosの貢献によって作り出されたと言って良い。

SwiftUIとObservationフレームワークを使う新しい記述方法は、SwiftUIとCombineフレームワーク を使うことで制約があったコード記述が取り払うことに成功している。Observationフレームワークを使うことでよりSwiftらしい記述方法ができるようになっている。