Great SwiftUI 정리

https://in.swiftui.wtf/great

 

조건식 보다는 모디파이어를 선호하라

- 애니메이션 보간 가능하게하고, 성능 향상에 도움이 됨

- 뷰 트리를 유지하는지, 바꾸는지의 차이

 

"브랜치는 훌륭하며, SwiftUI에는 이유가 있다. 하지만 불필요하게 사용될 때, 그들은 열악한 성능, 놀라운 애니메이션, 그리고 심지어 상태 손실을 초래할 수 있다.

 

브랜치를 도입할 때, 잠시 멈추고 여러 뷰를 나타내는지 아니면 같은 뷰의 두 상태를 나타내는지 고려하세요."


관련영상

https://developer.apple.com/videos/play/wwdc2021/10022/?time=1498

 

State and dependencies

- let 을 우선으로 사용하라

- 부모 뷰로 부터 값을 전달 받고 이 값을 바꿔야하는 경우 Binding 사용

- Binding과 동등한 레벨이나 클래스로 구성할 때 ObservedObject 사용

- 뷰 내부에서 변경이 필요한 프로퍼티의 경우 State 사용

 

State는 Private여야 한다

- 뷰가 의존하는 외부 데이터와 그 자체로 생성하는 것을 명확히 하기 위함

- 생성된 이니셜라이저의 코드 자동 완성을 더 정확하게 만든다

 

뷰 작성 할 때 기억할 것

- 단일로 사용되는 상수를 피하라

- 뷰는 앱/도메인 지식이 없어야 한다 (참조된 이벤트를 실행하는 구조가 되어야 함)

- 부모 뷰로 부터 받는 공간으로 크기 결정할 수 있음 (UIScreen 접근하지 않기, 뷰 크기 구해야할 때는 GeometryReader 사용)

- 서브 뷰를 Struct로 분리할 때, 컨테이너 뷰(ZStack, VStack, HStack...)를 감싸줄 것

- body를 심플하게 만들것 (WWDC Data Essentials에서 언급했듯이, 디스패치를 포함한 부작용을 만드는 것은 뷰의 생성을 늦추고 프레임 드롭을 유발할 수 있음)

- 중복 뷰 업데이트를 피하라 (관심있는 프로퍼티만 구독하라)

댓글