* 이 글은 작성자의 학습을 위하여 작성된 글입니다.
2019년, WWDC 2019에서 Apple은 SwiftUI를 소개했습니다.
iOS 13과 macOS Catalina 10.15에서 처음으로 지원되기 시작했습니다.
SwiftUI의 등장은 Apple 플랫폼에서 UI 개발 방식에 큰 전환점을 가져옵니다.
선언적(Declarative) 프로그래밍
SwiftUI는 선언형 프로그래밍으로, 개발자가 UI의 최종 상태를 선언하면 시스템이 상태변화를 자동으로 처리하여 UI에 대한 코드가 더 간단하고 직관적입니다. 이전의 UIKit은 명령형 프로그래밍으로, UI 요소를 각각 단계별로 관리하고 상태 변화도 수동으로 처리해야했습니다!
명령형 VS 선언형, 무엇이 다를까?
예시로 아보카도 토스트를 만든다고 가정해봅시다. [참고: 🔗Link]
명령형 프로그래밍에서는 어떻게 할 지를, 개발자가 시퀀스를 작성하여 단계별로 상태를 변경합니다. 명령형 코드는 더 구체적이고 자세한 제어가 가능하다는 장점이 있습니다.
선언형 프로그래밍에서는 무엇을 할 지를, 개발자가 필요한 조건과 로직을 선언하면, 프로그램의 상태는 선언에 따라 자동으로 작동합니다. RxSwift가 떠오릅니다! RxSwift와 완전 유사하지는 않으나, UI의 상태변화에 대해 반응형 특징을 가지고 있다고 생각해도 좋겠습니다.
다중 플랫폼 지원
하나의 코드베이스로 iOS, macOS, watchOS, tvOS, 심지어 visionOS 까지
여러 Apple 플랫폼에서 작동하는 앱을 만들 수 있습니다!!
즉시 화면 미리보기 가능: PreView
preview 기능에 의하여 코드를 변경하면 즉시 결과를 볼 수 있습니다. 앱을 실행시키지 않아도 즉시 해당 뷰를 확인 할 수 있어 빠른 개발을 돕습니다.
데이터 바인딩 및 상태 관리
SwiftUI는 데이터와 UI 요소 간의 연결을 자동으로 관리합니다. @State, @ObservableObject, @EnvironmentObject 등의 프로퍼티 래퍼를 사용하여 데이터가 변경될 때 UI가 자동으로 업데이트되도록 할 수 있습니다.
SwiftUI의 상태 관리 시스템은 반응형 특성을 가지고 있습니다. 즉, 상태가 변경되면, 그 변경 사항이 자동으로 관련된 UI에 반영됩니다. 이는 데이터의 흐름을 중심으로 반응하도록 하며, 상태 변경의 감지 및 처리가 자동화되어 있기 때문에, 개발자는 상태 관리 로직에 보다 더 편리하게 코드를 작성할 수 있습니다.
'iOS > SwiftUI' 카테고리의 다른 글
[SwiftUI] 왜 body에서 변수를 수정하지 못할까? (0) | 2024.04.17 |
---|---|
[SwiftUI] some View에 대해서, some과 Opaque Type (0) | 2024.04.16 |
[SwiftUI] Custom Font 추가와 Font Extension하기 (0) | 2023.11.25 |
[Udemy : SwiftUI+SwiftData Masterclass] Section 10. AFRICA (0) | 2023.11.08 |
[Day 9] 클로저(Closure), passing functions into functions (0) | 2023.08.11 |