반응형 SwiftUI10 [SwiftUI] View의 생명주기: 이해 및 효과적 활용 SwiftUI를 마스터하는 데 있어 핵심적인 측면 중 하나는 뷰 생명주기를 이해하는 것이며, 이는 뷰의 생성, 업데이트, 파괴를 관리합니다. SwiftUI 뷰 생명주기의 단계 SwiftUI의 뷰 생명주기는 여러 단계로 나뉩니다. 주요한 것으로는 onAppear와 onDisappear 클로저가 있으며, 이들은 뷰가 화면에 나타날 때와 사라질 때 실행됩니다. 또한, View의 상태가 변경될 때마다 SwiftUI는 뷰의 body 프로퍼티를 다시 계산하여 화면을 최신 상태로 갱신합니다. 예시 코드 아래는 SwiftUI 뷰 생명주기를 활용하는 간단한 예시 코드입니다: import SwiftUI struct ContentView: View { @State private var isActive = false var .. 2023. 11. 7. [SwiftUI] @StateObject와 @ObservedObject는 뭐가 다를까? 지난번에는 EnvironmentObject에 대해서 알아봤지만 사실 더 먼저 알아야하는 것이 이 두 Wrapper인 @StateObject와 @ObservedObject입니다. @StateObject와 @ObservedObject: 차이점 설명 @StateObject와 @ObservedObject 속성 래퍼는 Observed 객체의 변경에 대한 응답으로 SwiftUI 뷰를 업데이트하도록 지시합니다. 두 속성 래퍼 계층으로 유사해 보이지만 SwiftUI에서 앱을 구축할 때 알아야 할 중요한 차이점이 있습니다. 처음에는 왜 항상 @ObservedObject를 잘 사용을 안했는지 이유를 몰랐습니다. (그냥 써야한다고해서 그냥 썼던 기억밖에.. ㅎㅎ) 그러다 두개의 차이에 대한 의문과, 공식문서를 연구하면서 S.. 2023. 11. 5. [Swift] Swift에서 Equatable을 이해하고 적용하기 오늘은 Swift 개발자로서 반드시 알아야 할 기본적인 프로토콜 중 하나인 'Equatable'에 대해 이야기해보려고 합니다. Equatable 프로토콜은 객체 비교를 간단하게 만들어 주며, 특히 SwiftUI와 같은 최신 Swift 기술에서 중요한 역할을 합니다. 1.Equatable 이란? Equatable은 Swift 표준 라이브러리의 프로토콜 중 하나로, 사용자 정의 데이터 타입(클래스, 구조체 등)의 인스턴스 간에 동등 비교(==)를 가능하게 합니다. 기본 데이터 타입들은 이미 Equatable을 준수하고 있기 때문에, 우리는 문자열이나 정수 등을 쉽게 비교할 수 있습니다. let a = 5 let b = 5 print(a == b) // true 하지만, 사용자 정의 데이터 타입의 경우, 어떤.. 2023. 10. 26. [iOS/SwiftUI] @EnvironmentObject와 Singleton의 차이점 1. 목적: EnvironmentObject: SwiftUI view 계층 내에서 데이터를 공유하고 전달하는 목적으로 사용됩니다. 특정 뷰에서 제공되는 데이터나 상태를 자식 뷰들에게 전달하고 싶을 때 사용됩니다. 싱글톤: 앱 전체에서 하나의 인스턴스만 유지하고자 할 때 사용하는 디자인 패턴입니다. 앱의 여러 부분에서 동일한 정보나 설정, 리소스를 공유해야 할 때 사용됩니다. 2. 사용법: EnvironmentObject: 뷰 계층에서 .environmentObject(_:) 메서드를 사용하여 제공되고, @EnvironmentObject 속성 래퍼를 사용하여 해당 객체에 액세스합니다. 싱글톤: 특정 클래스에서 static shared 변수나 메서드를 통해 싱글톤 인스턴스에 액세스합니다. 1. Environ.. 2023. 10. 11. 이전 1 2 3 다음 반응형