UIKit과 SwiftUI 중에 어느 것을 배워야할까?
당신이 모바일 개발자가 되기로 마음 먹었고 그 중에 iOS를 선택했다면.
UIKit가 중요하다 SwiftUI는 아직 이르다.
시험용 제품에만 SwiftUI를 써라
라고 사람들에게 들어서 혼란스러울 것이다.
이 글이 당신의 선택에 도움이 되길 바란다.
UIKit
Apple의 핵심요소로 오랜 역사를 가지고 있다
장점
- UIKit에 대한 지침서와 질문 답변이 있는 수많은 사이트들이 존재한다
- SwiftUI와 호환이된다.
- 여전히 많은 앱에서 사용되고 있다.
단점
- 미래에도 지속가능할지 불투명하다
- 직관적이지 않고 사용하기 어려움
SwiftUI
장점
- 배우기 쉽고 직관적이다
- UIKit과 호환된다
- 다크모드 구현이 쉽다
- Combine이라는 Rx를 대체하는 훌륭한 도구가 있다
- 실시간 미리보기로 빠르게 변경사항을 확인 할 수 있다
단점
- iOS 13 이상이 필요해서 하위 사용자들을 잃게됨
- 참고 자료 부족
- UIKit에서 되던게 안된다고 불평할 수 있다
- 좀 어렵다고 느낄 수 있다
- 아직 많은 코딩 테스트에서 SwiftUI를 사용하지 않는다
- 많은 회사들이 여전히 UIKit을 사용한다.
추세
UIKit와 SwiftUI의 차이는 점차 줄고 있고 Apple이 WWDC에서 말하는 주제도 점점 SwiftUI로 옮겨가고 있다(마치 ObjC에서 Swift로 옮겨간 것 처럼)
대학에서도 SwiftUI를 채택하는 사례가 생기고 있다.
Swift를 시작한다면?
UIKit나 SwiftUI 같은 Framework를 고민하기 전에 Swift 언어를 먼저 공부하기 바란다.
그리고 아주 작은 프로젝트라도 직접 만들면서 해보는게 도움이 될 것이다.
내 생각
KWDC에서 현대차 그룹에서 SwiftUI와 TCA를 사용한다고 들었다. 아마 그정도 큰 기업 아니면 아직 상용에는 이르다고 생각하고 있었는데, 최근에 헤드헌터에게 소개 받은 업체도 같은 구성을 사용한다는 것을 알고 놀랐다.
아마 신생 앱은 처음부터 만드는 것이니 새로운 Framework 도입에 대한 저항이 없었을 수도 있다.
React-Native, Flutter 등 선언형 UI 구현 방식이 대세로 자리 잡고 있는 터라 할 수 있다면 SwiftUI를 사용하는 기업에 가는 것을 추천한다.
나는 2010년에 회사에서 맥북을 사줘서 처음 Objective-C를 공부하고 실제로 프로젝트는 2016년에 시작했는데 다시 시작하려고 보니 Apple의 모든 자료가 Swift로 바뀌어가는 것을 보고 Swift로 개발을 시작했다 SwiftUI도 머지 않아 그렇게 될 것으로 생각된다.
원문
https://medium.com/@stevenpcurtis/should-we-learn-uikit-or-swiftui-in-2023-1981bd3fcc0e