この記事は何?
Apple Developerサイトに掲載されているSwiftUIチュートリアルで実践したことを忘備録として残しました。
実行環境
Xcode11 beta
macOS10.15 Catalina beta
Creating and Combining Views
Landmarks アプリを作る最初のチュートリアルです。
セクション1: プロジェクトを作成して、キャンバスを理解する
SwiftUIを使用できる新しいXcodeプロジェクトを作成します。
キャンバスによるインタラクティブなプレビュー機能を使用するには、XcodeがmacOS 10.15 beta上で動作する必要があるようです。
手順1
Xcodeを起動して、Create a new Xcode project を選択する。
手順2
プラットフォームのiOSタブから、Single View App を選択して、Next をクリックする。
手順3
Product Name に「Landmarks」と入力する。
SwiftUI のチェックボックスをオンにする。
Next をクリックする。
任意の場所にプロジェクトを保存する。
手順4
プロジェクトナビゲータにある ContentView.swift ファイルをクリックして表示する。
import SwiftUI
// 1つ目の構造体(コンテンツとレイアウト)
struct ContentView: View {
var body: some View {
Text("Hello World")
}
}
// 2つ目の構造体(プレビュー)
struct ContentView_Preview: PreviewProvider {
static var previews: some View {
ContentView() // ← 1つ目の構造体のインスタンスかな
}
}
- SwiftUIビューファイルには、デフォルトで2つの構造体が宣言されている。
-
View
プロトコルに適合した構造体で、コンテンツとレイアウトを定義している - ビューをプレビューする構造体
あとで調べたいこと
これまでの基本的なSwiftプログラミングでは、あまり見ない記述があったので...
- View プロトコル とは
- PreviewProvider プロトコルとは
- 構造体のプロパティは、計算プロパティなのかな
-
var body: some View
って、プロパティの型アノテーションにプロトコルを記述してる?
手順5
キャンバスにある Resume ボタンををクリックして、プレビューを表示する。
キャンパスは「Editor > Editor and Canvas to show it」から表示できる。
手順6
body
プロパティにある "Hello World"
を適当に変更する。("Hello SwiftUI"
とか)
コードを変更すると、プレビューに反映される。
思ったこと
- ContentView.swift ファイルが、UIKit の ViewController.swift に該当するのかな。
- 画面に行くつもコントロールを配置するときは、
ContentView
構造体のプロパティとして定義するのかな。 - テキストのビューはレイアウトに関して何も定義してないが、画面の中心になっているなぁ。