SwiftUIを使ってみた

Pocket

SwiftUIをやってみようっと

今までの開発ではまだSwiftUIを使っていなかったので、今回からはSwiftUIを使ってみたいと思います。

環境について

いままでの記事ではどのバージョンを使っていたのか等書いていなかったし、時間が空いて色々変わってしまっていました。なるべく使用環境を記載していくようにします。

記述時の環境

  • PC: MacBook Pro (16-inch, 2019)
    • CPU: Intel Core i7 2.6GHz
    • MEM: 16GB DDR4
  • OS: 12.6
  • Xcode: 14.0.1

SwiftUIって…?

SwiftUIはXcode11から登場したコードベースで画面を作成出来る機能です。つまり、コーディングするようにSwiftで画面のレイアウトを記述してしまおうというフレームワークです。
SwiftUI以前はStoryboardというGUIのUIエディタを使って画面を作成していました。
このStoryboardがなかなか厄介でして、Storyboard上で作成した画面と画面制御用のコードとを紐付けたり等なかなか面倒でした(control押しながらコード側のエディタに向かってドラッグ&ドロップするとか正気かしら)

SwiftUIの使い方

Xcode11以上であれば、プロジェクト新規作成時にSwiftUIかStoryboardかを選択することが出来ます。

UIインターフェースの指定
図1. UIインターフェースの指定

InterfaceをSwiftUIにすることでSwiftUIでの開発が可能になります。

早速やってみました

手始めにカードビューをSwiftUIとStoryboardで作ってみました。

SwiftUIで書いたカードビュー
図2. SwiftUIで書いたカードビュー

Storyboardで作成したカードビュー
図3. Storyboardで作成したカードビュー

SwiftUIを使ってみて

SwiftUIとStoryboardとの大きな違いとして感じたのはビューの配置方法ですね。
親Viewを基準にViewの設定していくStoryboardに対して、配置したViewに対して設定を追加していく感じです。
Storyboardでは親ビューを基準として子ビューの位置を決める形になります。この際に設定する位置やサイズの指定(制約:Constraints)の設定がかなり面倒で、StackViewの設定には苦労させられますし、ガッチリ固めた構造に新たにパーツを追加したりするのはかなり面倒です。
それに対してSwiftUIはStackに配置したビューに対してサイズ、パディング、カラーといった要素を追加していく形です。親Viewの影響を受けずにレイアウトを作れたのでSwiftUIの方が直感的にViewを作ることが出来ました。
また、paddingやcornerRadius(Viewの角丸設定)をカスタムView無しに設定出来るのは大きいですね。

SwiftUIを使ってみるまではコードでビューを書くのって設定が面倒そうだなと思っていましたが、欲しい設定をチェーンで記述していくだけ(順番は考える必要がありますが)だし、何より修正が楽なので作業効率はSwiftUIの方が高いですね。

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です