Xcode에서 프로젝트를 진행하면서 가장 큰 불만이 코드를 짠 후에, 빌드를 해야지 확인이 가능하다는 점이었다. Flutter 프로젝트에서는 실시간으로 변화가 적용되는 기능이 있어서 좋다고 생각했는데, Xcode에서도 이와 유사한 기능을 사용할 수 있다는 것을 알게되었다.
이렇게 실시간으로 미리보기를 하는 기능을 Preview라고 한다. 원래 이 기능은 SwiftUI에서 지원하는 기능이다. 따라서 UIKit 프로젝트에서 사용하려면 SwiftUI를 import 해줘야 한다.
import SwiftUI
이 기능과 관련된 내용을 extension으로 빼면 좀 더 편하다.
#if DEBUG
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
이제 Preview기능을 사용하고자 하는 ViewController에 구조체를 만들어주면 끝이다.
// Preview를 위한 구조체
struct MainVC_Preview: PreviewProvider {
static var previews: some View {
MainViewController().toPreview()
}
}
MainViewController()
부분을 자신이 원하는 ViewController로 바꾸면 된다.