🥑
【SwiftUI】はじめてのMVVM
環境
- Xcode13.0
- Swift5.5
- iOS15.1
MVVMとは
アーキテクチャの一つ。
SwiftUIと相性が良い😍
登場人物は、Model - ViewModel - View
MVVMの一番シンプルな構成のメモ。
ここから発展させていく。
Model
Fruit.swift
/// 果物を表すモデル
struct Fruit {
var name: String
}
ViewModel
FruitManager.swift
/// Viewで果物を保持するのではなく、ViewModelで保持してあげる。
class FruitManager: ObservableObject {
/// @Publishedのおかげでプロパティに変更があるとViewが再描画されるよ
@Published var storedFruits: [Fruit] = [Fruit]()
}
View
FruitView.swift
struct FruitView: View {
// iOS14.0以降...
@StateObject var manager: FruitManager = FruitManager()
// iOS13.0
@ObervableObject var manager: FruitManager = FruitManager()
var body: some View {
Text("\(manager.storedFruits.count)").padding()
}
}
Discussion