さて、前回SwiftUIの実行環境を用意しました。
SwiftUIのファイル構成と軽くソースの解析を
「Hello world」を使って確認していきます。
(前回:コピペで乗り切るエンジニアがSwiftUIを勉強してみた(環境構築編))
ファイル構成について
プロジェクトをつくった際にデフォルトでたくさんファイル作成される。
-
TestHelloWorld
-
TestHelloWorldApp.swift
作成するアプリケーションのエントリポイント。
@mainと記述された箇所が該当。 -
ContentView.swift
作成するアプリケーションのビューの役割。
画面に表示するボタンや文字を配置する。 -
Assets.xcassets
アプリで使用する画像を格納するフォルダ。
表示したいファイルはここに追加する。 -
info.plist
アプリ内の共通設定。
アイコンやバージョンの設定や権限まわりの設定を設定する。 -
Preview Content
- Preview Assets.xcassets
-
TestHelloWorldTests
XCTestフレームワークを使ったユニットテストを実装するためのもの。
使い方はまだ分からないので一旦スルーで。 -
TestHelloWorldTests.swift
-
Info.plist
-
TestHelloWorldUITests
XCTestフレームワークを使ったUIテストを記載します。
こちらも使い方はまだ分からないのでスルーで。 -
TestHelloWorldUITests.swift
-
Info.plist
-
Products
各種ビルド後のアプリケーション本体。 -
TestHelloWorld.app
-
TestHelloWorldTests.xctest
-
TestHelloWorldUITests.xctest
実行までの流れ
初期起動(エントリーポイント)
さて、上記のフォルダ構成で記載した通り、
SwiftUIでは初期起動(エントリーポイント)は
「@main」で指定されるとのこと。
なので、「このプログラムはどこから始まるのかな?」となったら
まずは「@main」を探すと良いかと思います。
import SwiftUI
@main
struct TestMusicLibraryForSwiftUIApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
エントリポイントであるTestMusicLibraryForSwiftUIApp から呼び出された
ContentView も上記フォルダ構成で記載した通り、
画面レイアウトを記述していきます。
下記に記載の通り、Text("Hello, world!").padding()
で画面上に「Hello, world!」という文言を表示させます。
また、ContentView_Previews側はプレビュー表示の際に使用されます。
import SwiftUI
struct ContentView: View {
var body: some View {
Text("Hello, world!")
.padding()
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
以上!ひとまずこのくらいで!