SwiftUIで何かアプリを作りたいかも!と思っているけど、大きく分けて、
- レイアウト
- 振る舞い
の2つが、関門かと思います。
SwiftUIでのレイアウト
これまでは、InterfaceBuilderを使って作ってました。GUI的にレイアウトして、画面の大きさが違う場合への対応は、制約を追加することで、伸び縮みする感じ。段階的に建て増しされてきていたので、徐々に慣れることができてました。
正直、制約が少しおかしくてもなんとかなっていたという側面もあったり。
でも、SwiftUIでレイアウトをコードで書くとなると、まったく異なるアプローチなので、どのようになるのかが、よく見えないです。
SwiftUIでの振る舞い
RxSwiftとかで調べてもらうとわかるけど、SwiftUI導入前から、Reactiveというキーワードが盛り上がってました。
なにかというと、「UIで何か値を変更して、その変更をきっかけになにか動作する」とか、逆に「何か操作した結果として、UIに表示しているものを変化させる」とかの振る舞いって、KVCを使いこなして書くことが要求されてました。
でも、開発途中で、何かの変化を見逃したりすることはそれなりの頻度で起こっていて、自分でもテスト中に、ふと気づくバグというのが結構多かったです。それは、設計者の頭の中で考慮が漏れていたり、気づいていたけど記述が漏れていたりという原因でした。
ぶっちゃけReactiveの背後にもKVCが動いてるんだけど、SwiftUIでは、データが主体となって、「それに対してどうする」という形で記述することができる(っぽい)。なので、記述漏れ等を防ぐのに非常に有効だと思う。
問題点は、わかりにくいこと。全体の概要は、上記なので、すごくわかりやすいけど、実際に記述していくとなるといろいろとわかりにくい点が出てきます。
まずは、レイアウト
振る舞いの実装にすごく興味があるんだけど、まずは、レイアウトからみていくことにしました。
結局ユーザーから見えるのは、UI/GUIであって、中の実装は、「不具合がない限り」では、気にしない点ですよね。
ユーザーが使いやすい、開発者が作りたいUIを作るのが最初の一歩と思います。
まだ、UIKitと比較すると部品が足りない等の評価も目にしますが、どこまでできるかやってみることからスタートしましょう。
Sponsor Link