작성한 코드의 결과물을 매번 새로 빌드 하지 않고도 프리뷰를 통해 쉽고 빠르게 피드백을 받을 수 있었습니다.
프리뷰는 이런 장점 외에 유용한 기능들을 많이 제공합니다.
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
Xcode는 위와 같은 코드를 아래와 같은 순서로 인식합니다.
프리뷰도 각 기긱별로 프리뷰 컨테이너로 지정하여 확인 할 수 있습니다. 기본값은 액티브 스킴에서 목적지로 지정한 형태로 보이지만 원하는 것을 지정 할 수도 있습니다.
struct ContentView: View {
var body: some View {
List {
Image("KotlinLogo")
Image("KotlinLogo")
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
Group {
ContentView()
.previewDevice(PreviewDevice(rawValue: "iPhone 11 Pro"))
ContentView()
.previewDevice(PreviewDevice(rawValue: "iPhone 8"))
}
}
}
previewDevice(_:) 수식어를 적용하면 프리뷰에 디바이스를 지정해서 확인 할 수 있습니다.
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ForEach(["iPhone 11 Pro", "iPhone 8", "iPhone 12 mini"], id: \\.self) {
ContentView()
.previewDevice(PreviewDevice(rawValue: $0))
}
}
}
ForEach를 사용해서 다양한 디바이스를 추가 할 수도 있습니다.
프리뷰에는 이름이 기본값으로 Preview
가 들어가 있는데 previewDisplayName으로 간단하게 이름을 지정 할 수 있습니다.