SwiftUIについて
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