WWDC19

2ef2rwe·2022년 5월 8일
0

SwiftUI가 발표된지도 벌써 3년이 지났지만, 공부해야겠다는 생각만 가지고 있다가 최근에 WWDC발표 영상을 보고 SwiftUI에 대해서 학습하는 시간을 가졌다.

명령적, 선언적이라는 용어 부터가 처음 영상을 보며 익숙하지가 않았었는데, SwiftUI는 일단 선언적 구문을 사용해서 개발한다. 두가지의 차이를 설명하기 위해서 Apple에서는 아보카도 토스트를 주제로 설명하는데, 명령적인 방법을 통해서 아보카도 토스트를 만들기 위해서는 하나하나의 과정을 어떻게 진행할 것인지 설명하여서 만들어야하고 , 다른 한가지 방법은 그저 아보카도 전문가에게 어떤 토스트를 만들어 달라고 단순하게 알려주는 것이다.
이 아보카도 전문가가 우리에게는 SwiftUI 프레임워크라고 생각하면 될 것 같다.

VStack {
	Text("Avocado Toast").font(.title) 
    
    Toggle(isOn: $order.includeSalt) {
    	Text("Include Salt")
    }
    
    Button(action: submitOrder) {
    	Text("Order")
    }
}

위는 SwiftUI의 간단한 예시 코드이다. 좀더 직관적으로 코드가 변경된 것을 볼 수 있다.
하지만 기존의 UIKit 프레임워크로 UI를 그려왔던 나는 처음에 오히려 코드가 이해가 되지 않았었다. AddSubview는 어디간거지..?

일단 SwiftUI에서는 더이상 addSubview는 필요하지 않다.

struct OrderForm : View {
	@State private var order: Order
    
	var body: some View {
		Stepper(value: $order.quantity, in: 1...10) {
			Text("Quantity: \(order.quantity)")
		 }
	}			 
}

SwiftUI의 기본적인 View 형태이다. body 프로퍼티에 OrderForm에 어떠한 뷰로 구성될지 선언해 줌으로써 addSubview함수는 필요하지 않게된다.

다음으로 주목할 부분은 Modifier이다.

Text("Avocado Toast").font(.title)

위의 VStack 하위에 존재하였던 텍스트에서 .font(.title)이라는 Modifier를 볼 수 있는데 이것은 Avocado Toast의 Text를 title폰트를 적용시켜서 보여주는 Modifier인데 기존 UIKit에서는 class UIView를 상속받아서 필요하지 않은 변수까지 모두 가져가야 했었지만 SwiftUI에서는 View라는 Protocol를 지키는 Struct로 필요한 변수만 Modifier를 통해서 우리가 보여주고 싶은 View를 보여줄 수 있다.

0개의 댓글