// エントリーポイント
// エントリーポイントは、プログラムの開始点であり、最初に呼び出される場所である
@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 プロトコル。メソッド内に記述した内容は、プレビューにしか表示されない。
コメント