UIKit에서 작은 뷰 단위로 점진적으로 SwiftUI로 리팩토링 하는 과정에서 알게 된 내용을 공유하겠습니다. 처음엔 SwiftUI 뷰를 단순히 UIHostingController로 감싸서 UIKit에서 'view.addSubview' 해서 사용하면 되는 줄 알았는데요.Apple 공식 문서에 따르면 반드시 Container View Controller 패턴을 따라야 하며, 'addChild' -> 'addSubview' -> 'didMove(toParent:)' 3단계를 모두 거쳐야 합니다. 문제 상황SwiftUI 컴포넌트를 기존 UIKit 프로젝트에 점진적으로 도입하다 보면, 이런 코드를 자주 보게 됩니다// 흔한 실수 - 많은 개발자들이 이렇게 시도합니다let hostingController = U..
SwiftUI에서 수식어는 이전의 뷰를 감싼 새로운 뷰를 만들어내고, 그 다음 수식어는 다시 그 뷰를 감싸는 형식입니다. 그렇기 때문에 수식어를 적용하는 순서에 따라 결과가 크게 달라지는 경우도 있고, 영향을 받지 않는 경우도 있습니다. Text("🐶🐱🐰🦊").font(.largeTitle) .background(Color.yellow) // background 우선 적용 .padding() 1) 텍스트 생성 2) 텍스트와 크기가 동일한 노란색 배경 추가 3) padding 수식어로 뷰에 여백추가 Text("🐶🐱🐰🦊").font(.largeTitle) .padding() // padding 우선 적용 .background(Color.yellow) 1) 텍스트 생성 2) padding 수식어로 뷰에 여백추..
SwiftUI에서 View protocol View { associated type Body: View var body: Self.Body { get } } View 타입은 UIView와 달리 프로토콜로 선언된다. Typealias Body = Never Body는 무한 재귀호출이 일어나지 않도록 Never 타입이 사용된다. UIHostingController Class UIHostingController : UIViewController where Content : View UIHostingController는 UIViewController를 상속받고, 뷰 프로토콜을 준수하는 제네릭 매개변수 Content를 전달받는 제네릭 클래스. 즉, SwiftUI를 이용해 만들어진 뷰를 UIKit의 개발환경에서 사..
- Total
- Today
- Yesterday
- blendshape
- Lottie
- GraphDB
- Swift unowned
- 안드로이드
- infallible
- C++
- coreml
- Reactivex
- blendshapes
- rxswift
- Swift
- ARKit
- 알고리즘
- ios
- 프로그래머스
- 백준온라인저지
- SwiftUI
- Swift weak
- boj
- 백준
- cocoapods
- Kotlin
- 카카오인턴십
- disposeBag
- DispatchQueue
- 코코아팟
- rxswift6
- UIHostingController
- SWEA
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |