Open samsung-ga opened 2 years ago
#if DEBUG
import SwiftUI
extension UIViewController {
private struct Preview: UIViewControllerRepresentable {
let viewController: UIViewController
func makeUIViewController(context: Context) -> UIViewController {
return viewController
}
func updateUIViewController(_ uiViewController: UIViewController, context: Context) {
}
}
func toPreview() -> some View {
Preview(viewController: self)
}
}
#endif
하나의 앱을 꾸준히 유지보수를 하게 되면 꾸준한 업데이트로 인해 빠른 UI 개선이 적용되고 삭제되어야 한다. 이럴 경우 기존의 Storyboard와 코드로 UI를 구성하는 것보다 SwiftUI의 preview를 이용하여 빠르게 개발이 가능하다.
기존 UI 구성 방법
Storyboard와 Code로 뷰를 작성하는 기존 방법의 장단점을 알아보자.
Storyboard
2. 직관적이기 떄문에 개발하기 쉬운 Interface Builder
2. xml파일로 이루어져 있기 때문에 자주 일어나는 git conflict
Code
SwiftUI의 preview가 등장하면서 UI 작성의 속도는 빨라졌다. 정량적으로 얼마나 빨라졌는지 측정은 불가하지만 개발을 하면서 직접 느껴볼 수 있다. 특히, 디바이스별로 다르게 나타나는 UI를 테스트해볼 때 가장 용이한 것 같다.
Preview in UIkit (UIKit에서 preview를 사용해보자)
UIViewRepresentable
와UIviewControllerRepresentable
프로토콜을 채택해주면 Preview로 테스트가 가능하다.예제를 살펴보면 이해가 쉽기 때문에 바로 예제로 넘어가자.
UICollectionViewCell을 preview로 UI 빌드없이 보기
상황
Group
을 이용하여 옵션들을 한꺼번에 적용하여 여러 개를 테스트해 볼 수 있다.updateUIView
메소드에서 데이터를 변경해가며 테스트가 가능하다.Tip
Reference