iOS/SwiftUI

[SwiftUI] SwiftUI란

Dev_Ted 2025. 4. 17. 02:01

SwiftUI는 애플이 만든 선언형(Declarative) UI 프레임워크로, iOS, macOS, watchOS, tvOS 전반에서 통일된 방식으로 앱의 UI를 구축할 수 있게 해주는 프레임워크입니다.

 

SwiftUI의 탄생 배경

UIKit, AppKit 등 기존의 프레임워크는 다음과 같은 문제점을 가지고 있었습니다.

UIKit / AppKit의 문제 설명
명령형 구조 복잡한 상태 변화 처리, 많은 버그 유발
뷰 업데이트 직접 상태를 추적하고, 뷰를 수동으로 갱신
코드 중복 플랫폼마다 API가 달라, iOS와 macOS 개발을 별도로 해야 함
UI와 로직 분리 어려움 코드 양이 많아지고, 의도 파악이 힘듦

 

애플은 이러한 문제를 해결하기 위해 다음과 같은 특징을 지니고 있는 SwiftUI를 개발하였습니다.

  • Swift의 안전성과 현대적인 문법
  • React와 같은 선언형 패러다임
  • 플랫폼 간 코드 통일성을 결합

 

SwiftUI의 주요 특징

1. 선언형 문법

  • View 등을 함수처럼 구성하고, 상태에 따라 자동으로 뷰를 갱신해줍니다.
  • 선언형 문법이기 때문에 ‘어떤 행위를 할 지 정의’를 해주면 간편하게 사용할 수 있지만, 그만큼 추상적이라고 생각합니다.
Text("Hello \\(name)")
    .font(.title)
    .foregroundColor(.blue)

 

2. 양방향 데이터 흐름

  • @State, @Binding, @ObservedObject 등을 사용해 UI의 상태를 명확히 관리합니다.

 

3. 뷰는 Struct

  • 클래스가 아닌 프로토콜 기반의 구조체로 View 생성 → 안전하고 가볍다는 특징을 지닙니다.

 

4. Cross-Platform 개발

  • iOS, macOS, watchOS, tvOS에서 거의 동일한 코드로 앱을 작성할 수 있게 되었습니다.

 

5. Xcode Preview

  • UI 코드를 작성하면 바로 실시간으로 미리보기가 가능해졌습니다.

 

6. 적응형 UI 지원

  • 다크모드, 손쉬운 접근성 대응, 다양한 디바이스 크기 지원을 자동으로 처리해줍니다.

 

특성 설명

구조체 기반 View는 값 타입 → 안전하고 메모리 관리에 유리
중첩 가능 뷰 안에 뷰를 넣는 구조로 UI 계층을 구성
함수형 방식 뷰를 마치 수학 함수처럼, 같은 입력 → 같은 출력
재사용성 Custom View를 만들어 조합하기 쉽다

코드량은 줄이고, 유지보수는 쉽고, UI는 더 직관적으로!1개의 코드로 모든 Apple 기기를 커버하자

 

728x90