SwiftUI分からなすぎて解読してみた

// エントリーポイント
// エントリーポイントは、プログラムの開始点であり、最初に呼び出される場所である
@main
// プロトコル App に準拠した構造体
struct LandmarksApp: App {
    // Scene に適合する不透明型
    var body: some Scene {
        // RootView である ContentView を返却
        // WindowGroup はビュー階層のコンテナ
        WindowGroup {
            ContentView()
        }
    }
}

疑問と調査結果

  • @main ってなに?
    • エントリーポイント。エントリーポイントはプログラムの開始される場所。
  • struct LandmarksApp: App の App ってなに?
    • プロトコル App LandmarksApp は、プロトコル App に準拠している。
  • var body: some Scene の some ってなに? Scene は?
    • some は、Opaque Result Type を表すためのキーワード。some をつけることで、画面を抽象的に扱うことができる。
    • Scene → プロトコル Scene のこと。body は Scene に準拠している。
  • WindowGroup ってなに?
    • ビュー階層のコンテナ。親ビューでもある。
    • WindowGroup の中で ContentView を呼び出しているので、アプリが実際に表示している画面は ContentView の内容を表示している。
struct ContentView: View {
    var body: some View {
        // 縦に並べる
        VStack {
            // Image→画像。systemNameと書けば、SF Symbols のアイコンが使える。Apple で用意されいてるアイコン。globe は地球儀。
            // imageScale。画像のサイズを相対的なサイズでレンダリングする。large サイズ。他には、Small、Medium がある。
            // foregroundColor。前景色を指定。accentColor を指定している。
            Image(systemName: "globe")
                .imageScale(.large)
                .foregroundColor(.accentColor)
            // テキストを表示する
            Text("Hello, world!")
        }
        // ビューの周りに余白を追加。VStack に対して、付与している。
        .padding()
    }
}

// プレビュー画面
struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

疑問と調査結果

  • VStack ってなに?
    • VStackというのは、VはVerticalの略。要素を縦に並べたい時に使用する。
    • Image と、Text を縦に並べている。
  • Image は?後ろのメソッドチェーンは何をしている?
    • modifier というらしい。属性(プロパティ)。大きさや色を変える。
  • Text は?
    • テキストを表示するView。
  • .padding() って?
    • 余白の追加。この場合 VStack に余白を追加している。
  • PreviewProvider ってなに?
    • SwiftUI の機能の一つ。Xcode にプレビューを表示できるようになる。PreviewProvider プロトコル。メソッド内に記述した内容は、プレビューにしか表示されない。

コメント

タイトルとURLをコピーしました