🦁

SwiftUIについて

2021/07/09に公開

SwiftUIとは

2019年6月にAppleによって発表された新しいフレームワーク。これまでのStoryboardの代わりになるもの。AndroidStadioを触っている人は使いやすいかも。

開発手法

これまで

・全部同じファイルで書く。(レイアウトと処理が分かれていない)
・xmlと併用。レイアウトと処理をファイルで分ける

SwiftUI

・全部Swiftコードで書ける
→先祖返りしているところもあるが、レイアウトと処理部分は分けて書ける。パワーアップしてる。

SwiftUIのメリットデメリット

メリット

・コードがシンプル
・シミュレーターを立ち上げる必要がほとんどない(プレビューで十分)
・データを更新したとき自動でViewに反映、メモリも自動化
→変更後すぐにレイアウトに反映。メモリ解放自動化
・ダークモードがデフォルトで対応
・iosにおける将来の主流スタイル

デメリット

・機能不足(まだSwiftUI化されていないUIKitのパーツある)
→まだ置き換わってない部分が多い、Storyboardの機能やプロパティをコードの知識が必要
→その為SwiftUIXが登場してきたり...
・蓄積されたノウハウがない(特に日本語の情報)
・まだまだバグが残っていると言われる
・対応OSがios13以降
・本格的な普及は3~4年ごとも言われる

メリットでもあり、デメリットであり・・・

・.Swiftファイルにレイアウトが一体化(XMLを使わない)
→デザイナー・プログラマーと作業分担する規模の開発では不便。
・プロパティ・ラッパーの理解などSwiftのより高度な文法スキルが必要
・今後のバージョンアップとともに急速に進化すると思われる

SwiftUI コーディング例

プロジェクト作成時

※随時更新
mainstoryboard,viwecontll→

初期状態

※随時更新
プレビュー画面として表示されている。

inspector からの修正の同期してソースコードも修正される

※随時更新

Button とそのアクションを追加した例

※随時更新
VStackの中が画面に置くアイテムを定義する場所になっている
struct(構造体)として定義されている。
textが関数型プログラミングになっている。(筆者はピンときていない)
メソッドを一回しか使わないなら、直接書けばいいじゃない(マリーアントワネット並感)

プレビューで実行確認できる。

※随時更新

おまけ 構造体(struct)とは

簡単に言うとクラスの祖先的な奴
クラスと同じように、複数のデータをまとめて新しいデータ型を作る方法

classとの違い

※随時更新

書き方

※随時更新

linuxやってる人には、ハードリンクとシングルリンクみたいと理解してもよき

Discussion