SwiftUIに入門する
とりあえずApple公式のここら辺やってく
プレビューをCmd+クリックでアクションメニューが出てくる
SwiftUI Inspectorを使って変更を加えると、コード側に反映される。面白い。
逆にコード側をCmd+クリックしてもInspectorを開ける
画像を丸型で抜いてAppleあるあるのあの画像の縁取りの感じが1行でできるのすごい
とりあえず一番最初のチュートリアルは完走した!
Swiftの文法とかは全く学んでないので、結構これはどういうものなんだろう?という疑問がある
テキストスタイルなどの指定の仕方
Text("Turtle Rock").font(.title)
の .title
はどこでどう定義されているのか?
定義へ移動したら
@available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
extension Font {
/// A font with the large title text style.
public static let largeTitle: Font
/// A font with the title text style.
public static let title: Font
...
と出てきたので、extension?という機構を使っている?
フォーマット
VSCodeみたいにonSaveで整形したいんだけど、Xcode標準機能ではない…?
Swift-formatとかを使うらしいけど、簡単にXcodeと連携する方法はないのか?
カンマの省略
ちゃんと改行してれば ;
なしで連ねて書けるのなんか変な感じ
これは結果として配列となって渡されるイメージであってるんだろうか?
VStack(alignment: .leading) {
Text("Turtle Rock")
.font(.title)
HStack {
Text("Joshua Tree National Park")
Spacer()
Text("California")
}
.font(.subheadline)
.foregroundColor(.secondary)
// 改行するなら何もなしでOK
Divider()
// 改行しない場合は ; で区切る
Text("About Turtle Rock").font(.title2); Text("Descriptive text goes here.")
}
プレビュー体験が良い
エミュレータとかじゃないからか(?)、めっちゃ起動や修正の反映早いし、とても使いやすい最高
もう一個チュートリアルをやった
変数の宣言
-
let
: 一度代入したら変更不可 (JSでいうconst
) -
var
: 何度でも変更可能 (JSでいうvar
,let
)
変数の文字列への埋め込み
\()
を使うっぽい。変数名以外に式を入れてもOK
> var txt = "1 + 2 = \(1 + 2)"
txt: String = "1 + 2 = 3"
続きをやった
star.fill
を starts.fill
って書いてて1時間とかした…。
ちゃんと両方のプレビューを整備しなきゃね。
Group{ ... }.previewLayout(.sizeThatFits) // サイズが最小限になるように自動調整
Group{ ... }.previewLayout(.fixed(width: 100, height: 100)) // サイズ固定
SwiftUIのDebug Previewのやり方
公式の説明がわかりづらくて沼った
実際は、現在のXcode 12.3では再生マークを右クリック→Debug Previewを選ぶ
コンソール出力を見る場合は、View→Debug Area→Activate Console。
UI周りはDebug View Hierarchy。各コンポーネントの値とかは見れない…?
printデバッグ
現状、Xcode 12.3ではバグでprintデバッグがSwiftUIのDebug Previewで出力されないらしい
そんなバグある???ちなみにエミュレータを使うとちゃんとprintされる…