본문 바로가기

개발/Swift

SwiftUI의 장단점 및 UIKit의 차이점

SwiftUI

- 특징

SwiftUI는 IOS 13 의 출시와 함께 제공된 UI 프레임워크로 선언적 구문과 통합플랫폼을 지향한다는 특징이 있습니다.

 

- 장점

배우기 쉽고 코드는 간단하고 깔끔합니다.

UIHostingController를 사용하여 UIKit과 혼합하여 사용할 수 있습니다.

테마를 쉽게 관리 할 수 ​​있습니다. (개발자는 앱에 다크 모드를 쉽게 추가 할 수 있습니다.)

SwiftUI는 BindableObject, ObjectBinding 및 전체 Combine 프레임 워크를 사용하여 반응 형 프로그래밍을 위한 메커니즘을 제공합니다.

실시간 미리보기를 제공합니다.

SwiftUI는 더 이상 Interface Builder가 필요하지 않습니다. 대화 형 인터페이스 편집기 인 Canvas로 대체되었습니다. 코드를 작성할 때 Canvas의 시각적 부분이 자동으로 생성되고 시각적 표현 요소를 만들 때 코드에 자동으로 나타납니다.

@IBOutlet 연결을 변수로 업데이트하는 것을 잊은 경우 애플리케이션이 더 이상 충돌하지 않습니다.

AutoLayout 또는 관련 문제가 없습니다. 대신 HStack, VStack, ZStack, 그룹, 목록 등과 같은 것을 사용합니다. AutoLayout과 달리 SwiftUI는 항상 유효한 레이아웃을 생성합니다. 모호하거나 만족스럽지 않은 레이아웃과 같은 것은 없습니다. SwiftUI는 스토리 보드를 코드로 대체하여 재사용 가능한 뷰를 쉽게 만들고 개발 팀이 한 프로젝트를 동시에 사용하는 것과 관련된 충돌을 방지 할 수 있습니다.

 

- 단점

iOS 13 및 Xcode 11 이후만 지원하여 이전 버전의 iOS 에서 지원하지 않습니다.

관련  데이터가 많지 않습니다.

Xcode 미리보기에서 뷰 계층 구조를 검사 할 수 없습니다.

 

- UIKit와의 차이점

UIKit 은 명령형 프레임워크 이지만 SwiftUI 는 선언적 프레임워크 입니다.

UIKit 은 사용자 인터페이스의 상태를 추적해야 하지만, SwiftUI에서는 데이터가 사용자 인터페이스 요소와 자동으로 결합될 수 있으므로 사용자 인터페이스의 요소를 추적할 필요가 없다.

UIKit 의 뷰는 UIView 라는 클래스의 자식이지만, SwiftUI 는 뷰가 클래스가 아닌 구조체이기 때문에 상속된 추가값이 없습니다.

 

 

# 참고자료 

medium.com/@SteelKiwiDev/swiftui-vs-uikit-benefits-and-drawbacks-6a540cced684

medium.com/mobil-dev/what-is-the-difference-between-swiftui-and-uikit-framework-a47b74b66c1c