Posted at

SwiftUIのチュートリアル日記1


この記事は何?

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 ファイルをクリックして表示する。


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 ファイルが、UIKitViewController.swift
    に該当するのかな。

  • 画面に行くつもコントロールを配置するときは、ContentView 構造体のプロパティとして定義するのかな。

  • テキストのビューはレイアウトに関して何も定義してないが、画面の中心になっているなぁ。