SwiftUI Academy · レッスン

ビューの状態からモデルクラスへ

共有データをクラスに切り出します。

レッスン 1/413 ステップ

「ビューの状態からモデルクラスへ」はCoddyKit上の無料SwiftUI Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwiftUI Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 SwiftUI Academyコースには全4レッスンが含まれています。

@Stateでは足りなくなるとき

画面に多くの@State値があると、ビューはデータとUIを同時に扱うことになります。画面が大きくなるにつれて、すぐに複雑になってしまいます。 🤔

モデルが保持するもの

modelはデータとそれに関するルールを保持する通常のオブジェクトで、画面上の見た目とは分離されています。

シンプルなモデルクラス

まず、関連する値を1つのclassに移し、整理された1か所にまとめます。

class Counter {
    var count = 0
}

メソッドにロジックを持たせる

methodsを使ってデータの近くに振る舞いを配置します。ビューは自分で処理せず、モデルに実行を依頼するだけになります。

class Counter {
    var count = 0
    func increment() { count += 1 }
}

structではなくclassを使う理由

classは参照型なので、同じインスタンスを共有するすべてのビューが、それぞれのコピーではなくまったく同じデータを確認できます。

ビューを薄く保つ

ロジックをモデルに置くと、ビューのbodyはほぼレイアウトだけになります。薄いビューは、後から読みやすく変更もしやすくなります。

1つの真実のソース

データをモデルに保持するとsource of truthが1つになるため、画面ごとに現在の値が食い違うことがありません。

モデルを再利用する

モデルはビューから独立しているため、複数の画面やテストでも再利用できます。

ビューで保持する

ビューはモデルのインスタンスをプロパティとして作成・保持できます。値の読み取りやmethodsの呼び出しもすぐに行えます。

struct CounterView: View {
    let model = Counter()
    var body: some View { Text("Count") }
}

足りない要素

ここまでのビューはモデルを読み取れますが、データが変わっても更新されません。次は観測機能を使ってこれを解決します。

関心の分離

この分割をseparation of concernsと呼びます。ビューは表示し、モデルは判断します。それぞれに明確な役割があります。

確認テスト

データをclassに移しました。理由について確認しましょう。

まとめ

データとロジックをビューからmodel classへ移し、ビューを薄くして、アプリに1つの真実のソースを持たせる方法を学びました。 ✨

無料で開始

AI チューターと学ぶ Swift — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「ビューの状態からモデルクラスへ」レッスンは無料ですか?

はい。「ビューの状態からモデルクラスへ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、SwiftUI Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 SwiftUI Academyコースには全4レッスンが含まれています。

「ビューの状態からモデルクラスへ」で何を学びますか?

共有データをクラスに切り出します。 ブラウザで直接実行するハンズオンコードでSwiftUI Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

SwiftUI Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのSwiftUI Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「ビューの状態からモデルクラスへ」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このSwiftUI Academyレッスンでコードを書いて実行できますか?

はい。すべてのSwiftUI Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ビューの状態からモデルクラスへ
  2. @Observableマクロ
  3. 所有するオブジェクトに@Stateを使う
  4. @Environmentでモデルを共有する
← SwiftUI Academyに戻る