ViewModelを設計する
画面用の@ObservableなViewModelを作成します。
「ViewModelを設計する」はCoddyKit上の無料SwiftUI Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwiftUI Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 SwiftUI Academyコースには全4レッスンが含まれています。
ViewModelは単なるクラス
ViewModelは通常、1つの画面の状態とロジックを保持するクラスです。クラスを使うと、複数のビューで同じ実体を共有できます。
class ProfileViewModel {
var name: String = ""
}監視可能にする
@Observableマクロを追加すると、SwiftUIがプロパティの変更を追跡し、状態が更新されたときにビューを自動的に再描画します。
@Observable
class ProfileViewModel {
var name = ""
}ビュー用の状態を公開する
フォーマット済みのgreetingなど、ビューが直接読み取れるプロパティをViewModelに用意します。こうすれば、ビュー自身が文字列を組み立てる必要はありません。
var greeting: String {
"Hi, " + name
}読み込みフラグを保持する
UIの状態をViewModel内で管理します。単純なisLoadingの真偽値によって、ビューはスピナーとコンテンツのどちらを表示するか決められます。
var isLoading = false意図をメソッドにまとめる
load()やsave()のように、操作をメソッドとして公開します。ビューはタップ時に呼び出し、何をするかはViewModelが正確に決めます。
func load() {
isLoading = true
}UIに合わせてプロパティ名を付ける
buttonTitleやrowsのように、生のデータではなく画面に表示するものに基づいて状態の名前を付けます。これにより、ビューをほぼ宣言的に保てます。
複雑な詳細を隠す
解析、計算、エッジケースへの対応はViewModelの中に置きます。ビューには整えられた値だけを見せ、複雑な処理には触れさせません。
画面ごとに1つのViewModel
各画面に、役割を絞ったViewModelを1つ用意します。単一の目的に集中した小さなモデルは、読みやすく、理解しやすく、テストもしやすくなります。
空の状態から始めて、後から埋める
ViewModelは適切な空のデフォルト値で初期化し、データが届いたら値を設定します。その間、ビューには落ち着いた空状態を表示します。
ビューのコードを持ち込まない
ViewModelにビューの型やレイアウトコードを決してimportしないでください。UIから切り離すことで、持ち運びやすく、ユニットテストもしやすくなります。✨
小さな完全な例
この小さなViewModelは、countとそれを変更するメソッドを公開します。ビューに必要なものが、明確な2つのメンバーにまとまっています。
@Observable
class CounterViewModel {
var count = 0
func increment() { count += 1 }
}確認問題
ViewModelクラスにSwiftUIの更新を発生させるマクロはどれでしょうか。
まとめ:ViewModelを設計する
ビュー用の状態と意図を表すメソッドを公開し、複雑な詳細を隠す@Observableクラスを作成しました。次はビューを接続します。
AI チューターと学ぶ Swift — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 30
- レッスン
- 120
よくある質問
「ViewModelを設計する」レッスンは無料ですか?
はい。「ViewModelを設計する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、SwiftUI Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 SwiftUI Academyコースには全4レッスンが含まれています。
「ViewModelを設計する」で何を学びますか?
画面用の@ObservableなViewModelを作成します。 ブラウザで直接実行するハンズオンコードでSwiftUI Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
SwiftUI Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのSwiftUI Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「ViewModelを設計する」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このSwiftUI Academyレッスンでコードを書いて実行できますか?
はい。すべてのSwiftUI Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- MVVMがSwiftUIに適している理由
- ViewModelを設計する
- ビューをViewModelにバインドする
- ViewModelの依存性注入