짧은인사, 하루의 사건, 나의 행동
ToDo✅ udemy 완강 끄읕✅ 패캠 강의✅ 운동
가을은 어디갔죠...? 하ㅏㅎ... 날씨가 이리 추울 수 있나요ㅋㅋ 열어분 모두 감기 조심하세요~~
또 건조해져서 가습기가 없으면 안되는 계절이 왔네요...
오늘은 이것저것 자기소개서 쓰고 저를 밀어붙이기 위해 구매했던 강의를 들었습니다~~
(강의는 구매당시의 의지가 불타오르고 그이후엔 점점 불씨가 꺼지는건 저만그런가여...?)
배운점
SwiftUI Property Wrappers
@State
SwuftUI에서 상태를 처리하는 방법
뷰의 상태를 저장하는 프로퍼티로 상태 관리 주체는 해당 뷰
기본적으로 private 선언, 다른 뷰와 값을 소통하려면 Binding을 이용
값이 변경될 때마다 UI Update
@Binding
뷰와 상태를 바인딩 하는 방법
상위 @State 변수를 전달 받아 하위 뷰에서 캐치해 변화 감지 및 연결
Binding은 다른 뷰가 소유한 속성을 연결. 따라서 소유권 및 저장 공간이 없음
ObservableObject)프로토콜
클래스 프로토콜로 관찰하는 어떠한 값이 변경되면 변경사항을 알려줌
뷰에서 인스턴스 변화를 감지하기 위해 뷰모델 객체로 생성할 때 사용할 수 있음
@Published
ObservableObject를 구현한 클래스 내에서 프로퍼티 선언 시 사용
@Published로 선언된 프로퍼티를 뷰에서 관찰할 수 있음
ObservableObject에서 objectWillChange.send() 기능을 @Published 프로퍼티가 변경되면 자동으로 호출
@ObservableObject
뷰에서 ObservableObject 타입의 인스턴스 선언 시 사용
ObservableObject의 값이 업데이트되면 뷰를 업데이트함.
@StateObject
뷰에서 ObservableObject 타입의 인스턴스 선언 시 사용
뷰마다 하나의 인스턴스를 생성하며, 뷰가 사라지기 전까지 같은 인스턴스 유지
@ObservableObject의 뷰 렌더링 시 인스턴스 초기화 이슈 해결을 위한 방법
매번 인스턴스가 새롭게 생성되는것처럼 외부에서 주입 받는 경우가 아닌 최초 생성 선언 시에 @StateObject를 사용하는 것이 적절한 방법
@Enviroment
미리 정의되어 있는 시스템 공유 데이터
사용하려는 공유 데이터 이름을 keyPath로 전달하여 사용
시스템 공유 데이터는 가변하기에 var로 선언
뷰가 생성되는 시점에 값이 자동으로 초기화됨
@EnviromentObject
ObservableObject를 통해 구현된 타입의 인스턴스를 전역으로 공유하여 사용
앱 전역에 공통으로 사용할 데이터를 주입 및 사용
많이 의존하지 않기.
생각과 감정
오늘도 일찍 일어난 나에게 감사해🙏
급하게 말고 천천히 확실하게 가자🙏
나를 믿는 나에게 감사해🙏
감사함을 알려준 sAewoo에게 감사해🙏
앞으로의 계획선언
프로퍼티 래퍼를 간단하게 알아봤으니 Document를 보면서 공부를 해나가자 👏
'TIL' 카테고리의 다른 글
TIL_20231120 (0) | 2023.11.20 |
---|---|
TIL_20231114 (0) | 2023.11.15 |
TIL_20231107 (0) | 2023.11.07 |
TIL_20231006 (0) | 2023.10.06 |
TIL_20230921 (0) | 2023.09.21 |