SwiftUI란? Storyboard 및 UIKit 과의 관계

Dark Mode

애플의 이번 WWDC 19에서는 예상대로 각 운영체제(iOS, iPadOS, macOS, watchOS, tvOS)의 새로운 버전이 나왔고 개발자에게 있어 중요한 여러 가지 새로운 기술(SwiftUI, Combine, Catalyst 등)이 등장했습니다. 새로운 맥 프로와 프로 디스플레이 XDR도 공개되었습니다.

어느 WWDC 때보다도 많은 정보가 쏟아져, 개발자에게 있어서는 설레면서도 할 일이 많아진 해인데요. 많은 정보 중에서도 개인적으로 SwiftUI와 Combine이 가장 눈에 띄었습니다. SwiftUI는 모든 애플 플랫폼의 사용자 인터페이스를 만드는 새로운 개발 패러다임입니다.

이번 글에서는 이러한 SwiftUI에 대해 알아보도록 하겠습니다.

SwiftUI 란?

SwiftUI는 모든 애플 플랫폼에서 사용자 인터페이스를 만들 수 있게 해주는 새로운 개발 패러다임입니다. 쉽게 말해, 하나의 도구 및 API로 모든 애플 기기의 사용자 인터페이스를 만들 수 있게 해주는데요. SwiftUI는 Declarative 구문을 사용합니다.

SwiftUI vs 스토리보드

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

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

무엇을 배워야 하나?

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

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

SwiftUI가 UIKit의 대체품인가?

SwiftUI의 많은 것들이 UIKit 위에서 작동하기 때문에 SwiftUI가 UIKit의 대체품이라고 할 수는 없습니다. 하지만 적어도 개발자들은 이를 신경 쓸 필요가 없습니다. 

SwiftUI를 컨트롤하기 위해 개발자들이 건드려야 하는 부분에는 UIKit의 코드를 숨기고 있어, 애플이 혹시라도 UIKit을 다른 코드로 대체한다 하더라도 개발자들이 작성해야 하는 SwiftUI의 코드는 동일할 것입니다.

SwiftUI의 호환성

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

마무리

SwiftUI는 최신 버전의 운영체제에서만 작동하고, 개발이 가능합니다. 또, 이미 수많은 앱이 스토리보드 방식으로 개발되어 있습니다. 그리고 아직은 스토리보드에 비해 SwiftUI 관련 자료도 턱없이 부족합니다.

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

이것으로 이번 글을 마무리하겠는데요. 앞으로 당분간은 SwiftUI를 비롯해 Combine, Catalyst 등 WWDC 19에서 공개한 새로운 기술들에 대해 알아볼 예정입니다. 궁금한 점은 댓글로 남겨주세요!

  1. 스토리보드가 정말 불편했던 사람으로서 스위프트 유아이는 정말 환영입니다.

댓글

Please enter your comment!
Please enter your name here