회사의 프로젝트는 UIKit을 기반이다.
SwitUI로 개인프로젝트를 경험해본 나로서는 UIKit를 이용한 작업이 작업 효율성도 낮고 결과물 또한 자질구레한 코드 뭉치처럼 보였다.
앱의 최소버전이 15로 올라오면서 오매불망 기다리던 SwiftUI 사용을 팀원들에개 허락을 받아냈다.
SwiftUI.View는 값타임이기 때문에 UIKit에서 오브젝트에 접근해 값을 바꾸는 건 SwiftUI의 뷰드로잉 컨셉을 어기는 것이다.
따라서 레퍼런스타입의 ViewModel를 인터페이스삼아 통신하는 방법을 사용하게 됐다.
당당하게 SwiftUI로의 전환을 주장했지만, 디테일한 개발을 진행할 수록 아직 여물지 않은 기술임을 확신하게 됐다.
팝업 출력중에 크기를 조절하는 것이 매우 어렵다는 점(iOS15),
네트워크를 이용해 데이터를 로드한 후에 view의 hidden을 조정하면 원하지 않는 출력이 나올수도 있는 점,
그리고 light/dark 모드 변화에도 layer에서 사용하는 CGColor값들은 정상적으로 변경이 되지 않는 버그도 발견했다 (iOS18.2에서 확인).
빠른 개발을 위해서 고려한 전환이 오히려 큰 난관이 될 때도 있다.
약점을 잡고 흔드는 사람들이 주위에 있다고 판단한다면, 쉽사리 가기 어려운 길이리라.