🙌

SwiftUI 基本的使い方(随時追記予定)

2022/11/14に公開

(作成中につき、途中で記事内容の変更、記事自体が分かれる可能性あり)
(自分の備忘録用)

Abstract

2019年に登場した、iOS13以降で使用可能なUIフレームワーク。
従来、iOS開発に使用されてきたUIKitと違い、簡潔なコードでUIの構成が可能。

<参考>

メリット

  • デフォルトでダークモードに対応
    • UIKitのように対応せずとも対応できる
  • UIKitよりも少ないコードでViewの記述が可能
  • UIKitと組み合わせて使用することが可能
    • 多少の互換性確保のためのコードが必要

デメリット

  • UIKitと書き方が大きく異なる
    • 汎用的な書き方ができるUIKitと事なり、MVVMモデルを全面的に取り入れた作りになっているため、独自の要素が多い
  • iOS13以降でしか使えない(それ以前は従来のUIKitでのみ実装可能)
    • また、iOS13でも不安定な要素があるらしく、使いづらい
    • ただし、iOSは最新OSの使用率が高い(現在、iOS14以上の使用率が99%以上)ため、あまり考慮しなくてもよいのかも
  • Apple、っぽいUIになってしまい、オリジナルUIにしにくい(現在調査中)
    • OS依存が強く、実行するOSによってUIが異なってしまう場合がある
    • (対処方法はあるかもしれないが、現在調査中)

UIKitとの違い

  • 宣言に使う*『箱』*が違う

    • UIKit: Class
    • SwiftUI: Struct
       それぞれの「箱」の特徴が適用される
      例:
    • Classは、デフォルトで自身のプロパティの値を変更することは可能
    • Structは、デフォルトでは自身のプロパティの値を変更することは不可能
  • AutoLayoutを宣言する必要なし

    • アプリが自動的に調整してくれる?

レイアウト

<参考: [SwiftUI] VStack と HStack によるレイアウト >

Discussion