Boost‐SwiftUI‐2024.07.09(화) - BoostSwiftUI/SwiftUI GitHub Wiki
원본 텍스트 파일
0709 SwiftUI 뿌수기.txt
240709 SwiftUI 스터디 요약
- 2024.07.09 화 오후 9:06 ・ 96분 16초
- 권승용 권승용 유정주 정다함 홍승현 이준복
- 클로버노트를 이용해 회의 내용을 기록하고, GPT를 이용해 요약, 편집했습니다.
iOS 및 SwiftUI 스터디 요약
Grid와 LazyVGrid
- Grid: 열을 만들기 위해
GridRow
를 사용한다.
- LazyVGrid:
GridRow
를 사용하지 않고 ForEach
를 사용하여 열을 만든다. 두 컴포넌트의 차이점은 LazyVStack
과 VStack
의 차이와 비슷하다.
- 장점:
Grid
를 사용하면 레이아웃을 좀 더 세부적으로 제어할 수 있다.
GridRow의 활용
- Grid 안에서
GridRow
를 사용하면, 각 GridRow
가 하나의 열이 된다.
- LazyVGrid와 달리
Grid
는 GridRow
안에 요소를 배치하여 열을 구성한다.
iOS 버전 호환성
- iOS 16 이상: 새로운 Grid 기능을 사용할 수 있다. iOS 15에서는 사용 불가.
SwiftUI의 성능
- UIViewController와 달리 SwiftUI는 구조체 기반으로 뷰를 그린다.
- 재사용 메커니즘: SwiftUI는 뷰를 재사용하지 않으며, 이는 UIkit과의 큰 차이점이다.
- 퍼포먼스 관리: 개발자가 직접 뷰의 퍼포먼스를 신경 쓰기보다는 SwiftUI가 자동으로 관리해준다.
SwiftUI의 특징
- 선언형 언어: 개발자가 많은 세부 사항을 신경 쓰지 않아도 된다. 상태 변화에 따라 뷰가 자동으로 업데이트된다.
- 상태 관리:
State
와 Binding
을 사용하여 뷰의 상태를 관리한다.
- 뷰 레이아웃:
VStack
, HStack
등을 사용하여 뷰를 쉽게 구성할 수 있다.
Property Wrappers
- State: 뷰의 상태를 관리한다.
- Environment: 앱 전체에 걸쳐 동일한 데이터를 공유할 수 있게 한다.
- Bindable: 데이터 바인딩을 쉽게 할 수 있게 해준다.
Navigation과 ViewModel
- Navigation Path: 뷰 간의 네비게이션을 관리하는 방법으로,
@StateObject
나 @EnvironmentObject
를 통해 뷰 모델을 전달한다.
- 싱글톤 패턴: 네비게이션 컨트롤을 싱글톤 패턴으로 관리하여 뷰 모델에 접근한다.
스터디의 방향성
- 뷰 그리기: SwiftUI에서 뷰를 그리는 방법을 익히는 것을 우선으로 한다.
- 상태 관리:
State
, Bindable
, Environment
의 사용법을 익히는 것을 중요하게 생각한다.
- 깊이 있는 학습: 개념과 메커니즘을 이해하기 위해 필요한 경우 더 깊이 파고든다.
추가적인 학습
- WWDC 영상: Apple의 공식 영상을 통해 SwiftUI와 관련된 새로운 기능과 개념을 학습한다.
- 실습과 이론 병행: 코드 실습과 이론적 이해를 병행하여 SwiftUI의 사용법을 익힌다.