[swift] SwiftUI 뷰의 위해 외부객체사용
SwiftUI는 앱의 사용자 인터페이스를 만들기 위한 강력한 도구이지만 뷰와 외부 객체 사이의 상호작용은 종종 필요합니다. 이를 위해서는 뷰가 외부 객체(예: ViewModel, 데이터 매니저, 네트워크 클라이언트 등)를 알고 있어야 합니다.
외부 객체 주입
외부 객체를 사용하려면 주입(injection)을 통해 뷰에 전달해야 합니다. 이를 위해서는 @StateObject
속성 래퍼를 사용하여 외부 객체를 선언하고 초기화할 수 있습니다.
struct ContentView: View {
@StateObject var viewModel = MyViewModel()
var body: some View {
Text(viewModel.data)
}
}
환경 객체
SwiftUI에서는 @EnvironmentObject
속성 래퍼를 사용하여 전역적으로 접근 가능한 외부 객체를 사용할 수 있습니다.
struct ContentView: View {
@EnvironmentObject var viewModel: MyViewModel
var body: some View {
Text(viewModel.data)
}
}
외부 객체 사용하기
뷰에서 외부 객체를 사용하려면 주입받은 객체를 직접 호출하거나 데이터를 가져오는 등의 작업을 수행할 수 있습니다.
struct ContentView: View {
@StateObject var viewModel = MyViewModel()
var body: some View {
Text(viewModel.getData())
}
}
결론
SwiftUI에서 외부 객체를 사용하는 것은 중요합니다. 이를 통해 뷰와 모델을 분리하여 코드를 더욱 모듈화하고 재사용성을 높일 수 있습니다.
더 많은 정보는 SwiftUI 공식 문서를 참고하세요.