UIKit vs. SwiftUI
어떤 프레임워크가 올바른 선택일까?
SwiftUI는 높은 버전부터 특정 기능을 제공함
UIKit은 낮은 버전에서 부터 지원하여 개발에 용이
따라서 SwiftUI에서 해당 기능을 사용하기 위해 커스텀 제작 또는 라이브러리 사용 그리고 UIKit 활용으로 해결함
SwiftUI가 UI를 그리기 용이함???
선언형이라 확실히 그리기 용이함
그러나 UIKit에도 UI를 그리기 좋은 라이브러리 다수 존재
FlexLayout, PinLayout을 활용하면 선언형과 동일하게 그리기 용이하다고 생각함
아키텍처 선택
직접 아키텍처를 설계하는 선택지 존재
Coordinator 패턴을 사용하기에는 UIKit이 적합하다 생각함
UIKit은 리턴 타입을 UIViewController를 사용하면 되므로
직접 설계하지 않는다면 SwiftUI는 선택 폭이 얼마 없음
UIKit - RIBs, ReactorKit, TCA, etc ...
SwiftUI - TCA, ???
Preview 활용은???
둘 다 비슷한 것 같음
결국 앱 크기 커지면 활용하기 어려움
잘 활용하려면 모듈화를 잘 해야할 것 같음
아직 경험이 적어서 그런지, Class를 활용하는 것이 모듈화하기 편한 것 같음
의존성 주입
인터페이스 모듈을 만들기 위해서는 protocol과 의존성 주입을 활용해야 함
결국 의존성 주입은 컴파일 타임에 의존성이 확인이 보장되어야 함
Needle이 최선의 방식인가? (https://github.com/uber/needle)
결론.
watchOS, macOS 앱을 만들 생각이 아니면? UIKit을 활용하는 것이 좋을 것 같음
사실 watchOS도 기존에 SwiftUI로 코드를 작성했다고 해서 엄청나게 기존 코드를 활용하는 것은 아닌 듯한 느낌 🤓
Last updated