SwiftUI
[SwiftUI] SwiftUI란?
1000JI
2024. 8. 25. 23:34
안녕하세요 :) 1000JI 입니다!
그동안 UIKit 밖에 모르는 바보에서 벗어나고자.......
SwiftUI를 공부 시작해보려고 합니다!!

간단하게 글을 조금씩이라도 쓰면서 해보려고 해요!
그럼 시작!
SwiftUI란?
Better Appls. Less code.
애플(Apple)이 2019년 WWDC에서 처음 발표한 선언적(declarative) 사용자 인터페이스(UI) 프레임워크입니다.
최소한의 코드만으로 Swift의 성능을 사용하여 모든 Apple 플랫폼에서 사용할 수 있는 멋진 앱을 만들 수 있도록 도와줍니다.
SwiftUI로 어떤 Apple 기기에서나 단 하나의 도구 및 API 세트를 사용하여 사용자에게 더 나은 경험을 제공할 수 있습니다.
개발자는 상태(state)를 기반으로 UI를 정의하고, 이 상태가 변경될 때 SwiftUI는 자동으로 UI를 업데이트합니다.
이는 코드의 간결성을 높이고, 코드와 UI 간의 일관성을 유지하는 데 큰 도움이 됩니다.
SwiftUI 살펴보기
장점
- 선언적 프로그래밍 모델: SwiftUI는 선언적 문법을 사용하여 UI를 정의합니다.즉, UI가 어떤 모양인지 그리고 그 모양이 어떻게 변해야 하는지를 간단하고 명확하게 표현할 수 있습니다. 이로 인해 코드의 가독성이 높아지고 유지보수가 쉬워집니다.
- 크로스 플랫폼 지원: 하나의 코드베이스로 iOS, macOS, watchOS, tvOS를 포함한 여러 애플 플랫폼에서 앱을 개발할 수 있습니다. 이로 인해 개발 시간과 유지보수 비용이 절감됩니다.
- 실시간 미리보기(Previews): Xcode의 SwiftUI 프리뷰 기능을 사용하면 코드의 변경 사항을 실시간으로 확인할 수 있습니다. 이는 디자인 및 레이아웃 작업의 효율성을 크게 높여줍니다.
- 반응형 디자인: SwiftUI는 다양한 화면 크기와 기기에 자동으로 반응하는 레이아웃을 쉽게 구현할 수 있습니다. 이를 통해 다양한 디바이스에서 일관된 사용자 경험을 제공할 수 있습니다.
- 상태 관리: SwiftUI는 @State, @Binding, @ObservedObject와 같은 속성을 통해 상태를 관리할 수 있는 강력한 도구를 제공합니다. 이는 복잡한 상태 관리를 단순화하고, UI와 데이터 간의 싱크를 쉽게 유지할 수 있게 합니다.
단점
- 제한된 기능성: SwiftUI는 아직 비교적 새로운 프레임워크이기 때문에, UIKit이나 AppKit에서 제공하는 일부 고급 기능들이 부족하거나 완전히 지원되지 않을 수 있습니다. 특히 복잡한 애니메이션이나 커스터마이징이 필요한 경우에 제약이 있을 수 있습니다.
- 학습 곡선: SwiftUI는 기존의 프로그래밍 방식과 다르게 동작하기 때문에, 선언적 프로그래밍에 익숙하지 않은 개발자들에게는 새로운 개념을 이해하는 데 어려움이 있을 수 있습니다.
- 플랫폼 버전 제한: SwiftUI는 iOS 13 이상, macOS 10.15 이상에서만 사용할 수 있습니다. 따라서 구버전의 운영체제를 타겟으로 하는 애플리케이션에서는 사용할 수 없습니다.
- 버그와 불안정성: 새로운 기술인 만큼 초기에는 버그나 불안정성이 존재할 수 있습니다. 특히 SwiftUI의 초기 버전에서는 예상치 못한 동작이나 크래시가 발생할 수 있는 상황이 있었습니다.
- 레거시 코드와의 통합 어려움: 기존에 UIKit이나 AppKit을 사용하여 개발된 레거시 코드와 통합할 때 어려움이 있을 수 있습니다. SwiftUI와 UIKit 간의 상호 운용성이 있지만, 이를 효과적으로 사용하는 것은 때때로 복잡할 수 있습니다.
특징
- 선언적 문법(Declarative Syntax)
- SwiftUI는 선언적(declarative) 방식으로 UI를 정의합니다. 이는 프로그래머가 "어떻게" UI를 그릴지 명령하는 것이 아니라, "어떤" UI가 필요한지를 정의하는 방식입니다.
- 상태(state)가 변경될 때마다 SwiftUI는 자동으로 UI를 업데이트하여 코드의 간결성을 유지합니다.
- 실시간 미리보기(Real-time Previews)
- Xcode의 SwiftUI 프리뷰 기능을 통해 코드 변경 사항을 실시간으로 시각적으로 확인할 수 있습니다.
이를 통해 개발자와 디자이너는 반복 작업의 효율성을 높이고, 디자인과 코드 간의 피드백 루프를 빠르게 할 수 있습니다.
- Xcode의 SwiftUI 프리뷰 기능을 통해 코드 변경 사항을 실시간으로 시각적으로 확인할 수 있습니다.
- 플랫폼 통합(Cross-Platform Integration)
- 하나의 코드베이스로 iOS, macOS, watchOS, tvOS 등 여러 애플 플랫폼에서 작동하는 UI를 개발할 수 있습니다.
- SwiftUI는 애플의 모든 주요 플랫폼을 지원하므로, 여러 디바이스에서 일관된 사용자 경험을 제공할 수 있습니다.
- 반응형 디자인(Responsive Design)
- SwiftUI는 다양한 화면 크기와 장치에 대응하는 반응형 레이아웃을 손쉽게 구현할 수 있도록 도와줍니다.
- GeometryReader, Stack, Grid와 같은 레이아웃 요소를 사용해 다양한 디바이스에서 잘 작동하는 인터페이스를 만들 수 있습니다.
- 상태 관리(State Management)
- SwiftUI는 @State, @Binding, @ObservedObject, @EnvironmentObject와 같은 속성 래퍼를 사용해 UI 상태를 쉽게 관리할 수 있습니다.
이를 통해 데이터와 UI 간의 일관성을 유지할 수 있습니다.
- SwiftUI는 @State, @Binding, @ObservedObject, @EnvironmentObject와 같은 속성 래퍼를 사용해 UI 상태를 쉽게 관리할 수 있습니다.
- 뷰 조합(Composable Views)
- SwiftUI는 작은 뷰 컴포넌트들을 결합하여 복잡한 UI를 구성할 수 있는 컴포저블(composable) 뷰 시스템을 제공합니다.
- 작은 단위로 작성된 뷰를 조합함으로써 코드의 재사용성을 높이고, 복잡한 인터페이스를 쉽게 관리할 수 있습니다.
SwiftUI란 무엇인가? 그리고 장단점과 특징에 대해서 살짝 살펴보았는데요!
다음 글부터는 실제 SwiftUI를 실습해보면서 관련된 내용을 써보겠습니다!
감사합니다 :)