notes
IOS - UIKit , SwiftUI
UIKit과 SwiftUI의 UI 구성 방식·상태 처리와 선택 기준 비교.
UIKit만 쓰다가 SwiftUI Preview를 보고 “이제 다 바꿔?” 했다가, 레거시 WebView·결제 SDK 앞에서는 다시 UIKit으로 돌아왔다. 선택은 취향이 아니라 제약이다.
한 줄 감각
- UIKit: 명령형. 뷰를 만들고 붙이고 제약을 건다. VC 생명주기가 중심.
- SwiftUI: 선언형.
body가 상태의 함수.@State바뀌면 다시 그림.
같은 버튼
// UIKit
let button = UIButton(type: .system)
button.setTitle("확인", for: .normal)
button.addTarget(self, action: #selector(ok), for: .touchUpInside)
view.addSubview(button)
// SwiftUI
Button("확인") { ok() }
언제 무엇을
섞을 때는 UIHostingController로 SwiftUI를 UIKit에 넣고, 반대로 UIViewRepresentable로 UIKit을 SwiftUI에 넣는다. “전부 교체”보다 화면 단위로 이주가 현실적이었다.