iOS

[SwiftUI] View의 생명주기: 이해 및 효과적 활용

GODOLs 2023. 11. 7. 09:34

SwiftUI를 마스터하는 데 있어 핵심적인 측면 중 하나는 뷰 생명주기를 이해하는 것이며, 이는 뷰의 생성, 업데이트, 파괴를 관리합니다.

SwiftUI 뷰 생명주기의 단계

SwiftUI의 뷰 생명주기는 여러 단계로 나뉩니다. 주요한 것으로는 onAppearonDisappear 클로저가 있으며, 이들은 뷰가 화면에 나타날 때와 사라질 때 실행됩니다. 또한, View의 상태가 변경될 때마다 SwiftUI는 뷰의 body 프로퍼티를 다시 계산하여 화면을 최신 상태로 갱신합니다.

예시 코드

아래는 SwiftUI 뷰 생명주기를 활용하는 간단한 예시 코드입니다:

import SwiftUI

struct ContentView: View {
    @State private var isActive = false

    var body: some View {
        NavigationView {
            VStack {
                Text(isActive ? "활성 상태입니다!" : "비활성 상태입니다.")
                    .font(.title)
                NavigationLink(destination: DetailView()) {
                    Text("상세 화면으로 이동")
                }
            }
            .onAppear {
                self.isActive = true
                print("ContentView가 화면에 나타났습니다.")
            }
            .onDisappear {
                self.isActive = false
                print("ContentView가 화면에서 사라졌습니다.")
            }
        }
    }
}

struct DetailView: View {
    var body: some View {
        Text("상세 화면입니다.")
            .onAppear {
                print("DetailView가 화면에 나타났습니다.")
            }
            .onDisappear {
                print("DetailView가 화면에서 사라졌습니다.")
            }
    }
}

 

이 코드에서 ContentView는 화면의 상태에 따라 텍스트를 변경하고, 뷰가 나타나거나 사라질 때 콘솔에 메시지를 출력합니다.

 

사용자가 "상세 화면으로 이동" 링크를 탭하면 DetailView로 이동하게 되며, 이 때도 onAppearonDisappear가 호출되어 상태를 추적합니다.

뷰 생명주기를 활용하는 방법

SwiftUI의 뷰 생명주기를 활용하여 여러 작업을 수행할 수 있습니다:

  1. 데이터 초기화 및 로딩: onAppear에서 데이터를 불러오거나 초기화 작업을 수행할 수 있습니다.
  2. 자원 해제: onDisappear에서 뷰가 사라지기 전에 필요한 자원을 정리하거나 데이터 저장 등의 작업을 할 수 있습니다.
  3. 상태 관리: 뷰의 상태를 관리하여 사용자 인터페이스를 동적으로 업데이트 할 수 있습니다.

결론

SwiftUI의 뷰 생명주기를 정확히 이해하고 활용하는 것은 사용자 경험을 향상시키고 메모리 사용을 최적화하는 데 중요합니다. 뷰가 화면에 나타나거나 사라질 때 수행해야 할 중요한 작업을 계획하고, 상태 변화에 따른 UI의 동적인 변화를 구현해보세요.

 

다음 포스트에서는 SwiftUI 앱 생명주기에 대해 더 자세히 알아보겠습니다.

 

반응형