struct TodaysWeather_SwiftUIApp: App {
@StateObject private var repository = Repository()
@StateObject private var imageCacheManager = ImageCacheManager()
var body: some Scene {
WindowGroup {
ContentView()
.environmentObject(repository)
.environmentObject(imageCacheManager)
}
}
}
위와 같이 App파일 내에 선언한 뒤, 사용할 뷰에서 EnvironmentObject
키워드로 선언하면 된다.
struct CityList: View {
@EnvironmentObject var repository: Repository
@EnvironmentObject var imageCacheManager: ImageCacheManager
...
UIKit, MVVM을 적용한 프로젝트를 진행하면서 하나의 뷰는 하나의 뷰모델이 책임진다! 를 기억하고 있었는데, SwiftUI과 MVVM에서는 이 개념을 적용하기 힘들다는 생각이 들었다.
당연함..UIKit이 아님...
따라서 SwiftUI에서 사용하면 적절한 아키텍쳐들에 대해서 고민중이다.
여러 정보들을 모아서 생각해본 뒤에 블로깅할 예정!