[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 공식 문서를 참고하세요.