SwiftUI 소개

애플의 WWDC 19에서 공개된 SwiftUI는 22년 기준 어느덧 3년차가 되었고, 해를 거치면서 점점 안정화가 되어가고 있는데요. 이번 글에서는 이러한 SwiftUI에 대해 알아보도록 하겠습니다.

SwiftUI 란?

swiftui-tutorial-introduction

SwiftUI는 모든 애플 플랫폼(iOS, iPadOS, macOS, watchOS, tvOS)에서 사용자 인터페이스를 만들 수 있게 해주는 새로운 개발 패러다임입니다. 쉽게 말해, 한번의 개발로 모든 애플 기기의 사용자 인터페이스를 만들 수 있게 해줍니다.

SwiftUI vs Storyboard

swiftui-tutorial-introduction

기존의 iOS 혹은 애플 플랫폼 개발자들은 대부분 UIKit 및 스토리보드 개발 방식을 숙지하고 있을 것입니다. 하지만, 스토리보드는 시간이 지남에 따라 급격하게 커지고, 협업 및 유지 보수 하기에도 매우 까다로워서 iOS 혹은 애플 플랫폼 개발자들 중에는 이러한 스토리보드 방식을 안 좋아하는 경우가 많습니다.

스토리보드의 이러한 커다란 단점을 SwiftUI는 대부분 해결해줍니다. SwiftUI에서는 코드를 작성하는 동시에 디자인 인터페이스가 생성되고 디자인 요소들이 코드로 생성되기 때문에, 더 이상 읽기 어려운 스토리보드의 XML 방식과 싸우지 않아도 됩니다.

무엇을 배워야 하나?

swiftui-tutorial-introduction

그렇다면 SwiftUI와 UIKit 중 어떤 것을 배워야 할까요? 지금 처음 개발하기 시작했다면, SwiftUI로 시작하는 것을 추천합니다. 수년 내에 SwiftUI가 스토리보드 방식 대신 사용 되기 시작할 것이고, 애플 관련 일 자리에서도 SwiftUI를 요구하기 시작할 것입니다. 애플도 이 방향으로 흘러갈 것을 기대할 것이고 많은 개발자 역시 이를 환영할 것입니다.

하지만, 이미 수많은 앱과 시스템이 UIKit 기반의 스토리보드로 개발되어 있고, 투자되었습니다. 그렇기에 이 개발을 지속하고 유지 보수하기 위해 UIKit 및 스토리보드가 금방 사라지지는 않을 것입니다.

SwiftUI가 UIKit의 대체품인가?

swiftui-tutorial-introduction

SwiftUI의 많은 것들이 UIKit 위에서 작동하기 때문에 SwiftUI가 UIKit의 대체품이라고 할 수는 없습니다. SwiftUI가 UIKit의 대체품은 아니지만, iOS 개발 입장에서는 결국 SwiftUI와 UIKit 중 선택을 해야하기 때문에 고민이 될 것입니다.

UIKit은 SwiftUI가 더 많이 사용되는 미래에도 당분간은 공존할 것으로 보여 숙지는 해야합니다.

SwiftUI의 호환성

swiftui-tutorial-introduction

SwiftUI는 iOS 13, macOS 10.15, tvOS 13, watchOS 6 이후의 운영체제에서 실행됩니다. 즉, 그 이전 버전까지 지원해야 하는 앱이라면 SwiftUI를 고려하는 것은 위험할 수 있습니다.

마무리

swiftui-tutorial-introduction

SwiftUI는 지원 가능한 최소 버전이 정해져있고, 이미 수많은 앱이 UIKit 방식으로 개발되어 있습니다. 그리고 아직은 UIKit에 비해 SwiftUI 관련 자료도 턱없이 부족합니다.

그렇기 때문에, 빠른 시일 내에 UIKit이 사라지는 일이 발생하지 않겠지만, 언젠가는 SwiftUI를 UIKit보다 많이 사용하는 날이 올 것이라고 생각합니다. 그렇기에 애플 플랫폼 개발을 새롭게 시작하는 개발자라면 SwiftUI로 시작하는 가치는 충분한 것 같습니다.