SwiftUI란? 특징1편
애플에서 2019년 WWDC 2019에서 발표한 프레임워크입니다.
기존의 UIKit보다 쉽게 만들고 개발하기 위해서 만들어졌다고 하는데요.
사실 처음에 나왔을때에는 UIKit의 여러가지 방향을 제공하여 주지 않아서 UIRepresentable을 이용해서 개발하는 문제가 있었어요.
최근에 iOS16부터는 정말 좀 쓸만한데요
아직은 쉽지 않은 상태라고 생각하고 있습니다.
글을 작성하는 이 시점에도 아마존 앱만해도 iOS14가 최소 버전입니다. ㅎㅎ
특징
적은 코드로 더 좋은 앱을 만든다
사실 어떤 내용이냐면 사실은 SwiftUI 자체도 내부에서는 UIKit을 이용하여서 래핑을 하여주었어요.
UIViewController를 감싸고 있던가 하는 부분들을 프레임워크가 대신 지원해주는것이죠
선언형이다
어떤 의미냐면 기존의 UIKit의 코드를 예로 들어볼게요.
let button = UIButton()
button.setTitle("Hi", for: .normal)
button.setTitleColor(.red, for: .normal)
rootView.addSubView(button)
그냥 타이핑한거라 잘 동작안해도 이해해 주세요. ㅠ
위의 내용은 UIView를 만들고 RootView에 넣어줘입니다.
그럼 SwiftUI는 어떻느냐
struct ContentView: View {
var body: some View {
Button(action: {
print("click!!")
}) {
Text("Hi")
.font(.largeTitle)
.foregroundColor(.red)
}
}
}
위에 넣은것과 거의 비슷한 모양이 나오게 됩니다. SwiftUI는 이걸 여기에 넣어줘 하는 형태로 만들어지게 되는겁니다.
간단하게 선언형의 개발방법에 대해서 알아본것과 같습니다.
중요한것은 사실 저 Button은 UIButton을 wrapping 한것과 같습니다.
SwiftUI가 나오기전에 이것과 거의 흡사하게 만들었었는데요.
컨셉 자체는 같습니다.
잘보시면 .font다음에 바로 .foregroundColor를 호출할수 있는데요.
이유는 View를 다시 return 하여주기 때문입니다.
참 쉽죠?
각 View의 구성 struct에 대해서도 알아보도록 할게요.