SwiftUI 소개
애플의 WWDC 19에서 공개된 SwiftUI는 어느덧 년차가 꽤 되었고, 해를 거치면서 점점 지원되는 기능도 늘고 안정화도 되어가고 있는데요. 이번 글에서는 이러한 SwiftUI가 무엇인지에 대해 알아보도록 하겠습니다.
SwiftUI 란?

SwiftUI는 모든 애플 플랫폼(iOS, iPadOS, macOS, visionOS, watchOS, tvOS)에서 사용자 인터페이스를 만들 수 있게 해주는 새로운 개발 패러다임입니다. 쉽게 말해, 한번의 개발로 모든 애플 기기의 사용자 인터페이스를 만들 수 있게 해줍니다.
선언형 방식을 사용해, View의 상태에 따라 UI가 자동으로 갱신되는 특징도 있습니다. 기존 UIKit의 명령형 방식보다 훨씬 직관적이고 간결한 코드를 작성할수 있습니다.
SwiftUI vs UIKit

애플은 점점 새로운 기능을 SwiftUI 중심으로 지원하고 있고, 대대적으로 홍보 중이기도 합니다. SwiftUI는 선언형 구문과 상태 기반의 랜더링을 채택해 적은 코드로 UI를 빠르게 구현할수 있고, 다양한 애플 플랫폼을 지원할수 있다는 장점도 있습니다.
하지만 여전히 많은 코드는 UIKit 기반으로 작성되어 있고, UIKit은 호환되는 라이브러리나 참고할 리소스가 풍부합니다. 성숙한 프레임워크이기 때문에 안정성도 높고, 세밀한 커스텀도 가능합니다. 그렇기 때문에 쉽게 점유율을 잃지는 않고 있습니다.
SwiftUI와 UIKit에 각각 장단점이 있지만, 새로 시작되는 프로젝트는 SwiftUI를 많이 사용하고 기존의 프로젝트는 일부 화면에 대해서만 SwiftUI를 사용하는 추세입니다.
무엇을 배워야 하나?

그렇다면 SwiftUI와 UIKit 중 어떤 것을 배워야 할까요? 지금 처음 개발하기 시작했다면, SwiftUI로 시작하는 것을 추천합니다. 점점 SwiftUI가 UIKit 대신 사용될 것이고, 일 자리에서도 SwiftUI를 요구하기 시작할 것입니다. 애플도 이 방향으로 흘러갈 것을 기대할 것이고 많은 개발자 역시 이를 환영할 것입니다.
하지만, 이미 수많은 앱과 시스템이 UIKit 및 Storyboard로 개발되어 있고, 투자되었습니다. 그렇기에 이 개발을 지속하고 유지 보수하기 위해 UIKit 및 Storyboard도 사라지지는 않을 것입니다.
SwiftUI가 UIKit의 대체품인가?

iOS에서는 SwiftUI의 많은 것들이 UIKit 위에서 작동하기 때문에 SwiftUI가 UIKit의 대체품이라고 할 수는 없습니다. SwiftUI가 UIKit의 대체품은 아니지만, iOS 개발자 입장에서는 결국 SwiftUI와 UIKit 중 선택을 해야하기 때문에 고민이 될 것입니다.
UIKit은 SwiftUI가 더 많이 사용되는 미래에도 당분간은 공존할 것으로 보여 숙지는 해야합니다.
SwiftUI의 호환성

SwiftUI는 iOS 13, macOS 10.15, tvOS 13, watchOS 6 이후의 운영체제에서 실행됩니다. 즉, 그 이전 버전까지 지원해야 하는 앱이라면 SwiftUI를 고려하는 것은 위험할 수 있습니다.
또, SwiftUI의 일부 기능들은 더욱 최신 운영체제를 요구하기 때문에 이 점도 유의해서 적용해야 합니다.
마무리

SwiftUI는 지원 가능한 최소 버전이 정해져있고, 이미 수많은 앱이 UIKit 방식으로 개발되어 있습니다. 그리고 아직은 UIKit에 비해 SwiftUI 관련 자료도 턱없이 부족합니다.
그렇기 때문에, 빠른 시일 내에 UIKit이 사라지는 일이 발생하지 않겠지만, 언젠가는 SwiftUI를 UIKit보다 많이 사용하는 날이 올 것이라고 생각합니다. 그렇기에 애플 플랫폼 개발을 새롭게 시작하는 개발자라면 SwiftUI로 시작하는 가치는 충분한 것 같습니다.