SwiftUIもそろそろ業務で利用されるかと思い、少しずつ情報を整理しています。
というわけで個人的なメモを以下に記します。
2022年秋には、iOS16が提供されることにより市場のアプリのサポートバージョンは、iOS14、15、16が一般的になると思います。結果、SwiftUIもそろそろ積極的に採用されるとの判断です。
実際調べてみると、SwiftUIはiOSバージョンにより挙動の差異があるようです。
この点は、以下のページで詳しく報告されています。
iOS バージョン による SwiftUI の機能差分・制限まとめ
SwiftUIを採用するということは、UIKitからの移行ということだと改めて認識しました。現行のままでは、移行しきれないUIデザインというのもあるのでしょうね。
UIKitのあのコントロールは、SwiftUIではどのコントロールに該当するのかというのは、以下のページが参考になりました。
SwiftUIサンプルコードを見ていて、新しく見つけたProperty Wrapperは以下の通り。
@main | エントリポイント |
@Published | Combineフレームワークが提供。Publisherを生成する。 $を付加して、Publisherにアクセスできる。 |
@ObservedObject | SwiftUIの監視対象となり、参照しているViewが自動的に再描画される。 |
@State | 変数の変更が監視され、変更時にViewが再描画される。 アクセスは宣言されたView内のみとなり、変更時には$を付与する必要がある。 |
@StateObject | 再描画されても値は保持される。 |
@EnvironmentObject | アプリ内でデータを共有する。 |
@Environment | 環境値を取得する。 |
@FocusState | iOS15で導入。表示要素のフォーカス制御を行う。 |
リアクティブプログラミング手法では、UIとモデルのバインディングがどのように行うのか?ということが一つのテーマであったと思うが、SwiftUIはProperty Wrapperという形で提供している。その点も踏まえて、今後はSwiftUIと相性の良いアーキテクチャについても考えたい。
Follow @redwing1300