SwiftUI

SwiftUI에서는 놀랍게도 최소한의 코드만으로 Swift의 성능을 사용하여 모든 Apple 플랫폼 전반에서 멋진 앱을 빌드할 수 있습니다. 어떤 Apple 기기에서나 단 하나의 도구 및 API 세트를 사용하여 모든 사용자에게 더 나은 경험을 제공할 수 있습니다.

SwiftUI 인터페이스가 표시되어 있는 MacBook Pro, iPad 및 iPhone.

SwiftUI의 새로운 기능

고급 애니메이션 제어

애니메이션 지원이 확장되어 애니메이션을 정교하게 제작할 수 있습니다. 단계로 애니메이션 시퀀스를, 키 프레임으로 여러 애니메이션 트랙을 만들 수 있습니다. SwiftUI는 사용자 제스처의 속도를 애니메이션에 자동으로 전달하여 앱이 유동적이고 자연스럽게 느껴지도록 지원합니다.

간소화된 데이터 흐름

@Observable을 사용하면 SwiftUI가 뷰에서 접근한 필드를 자동으로 감지하고 필요할 때 다시 그리기만 하여 렌더링 속도를 높일 수 있습니다.

공간 앱 구축

visionOS를 위해 SwiftUI 앱을 다시 컴파일할 때 윈도우 또는 현재 볼륨에 심도와 3D 개체를 추가할 수 있습니다. RealityView를 사용하여 뷰 및 제어 기능과 함께 RealityKit 콘텐츠를 가져올 수 있으며, SwiftUI와 RealityKit을 함께 사용하여 몰입감 넘치는 완전한 공간 경험을 조성할 수 있습니다.

대화형 위젯

버튼토글을 사용하여 대화형 위젯을 생성하고, iPhone의 대기 화면, iPad의 잠금 화면, Mac의 바탕화면 등 새로운 위치에서 위젯을 사용할 수 있습니다. SwiftUI를 사용하면 여러 플랫폼에서 이용 상황에 따라 위젯의 색상과 간격을 조정할 수 있습니다.

SwiftData 지원

SwiftUI를 통해 코드 한 줄만으로 SwiftData를 쉽게 사용할 수 있습니다. @Model로 모델링된 데이터는 SwiftUI에서 자동으로 관찰합니다. @Query는 뷰에 맞는 필터링 및 정렬된 데이터를 효율적으로 가져오고 변경 사항에 따라 새로 고칩니다.

확장된 watchOS API

더 많은 SwiftUI 코드를 watchOS 앱에서 공유해 보세요. 크라운을 사용하여 수직 TabViews를 스크롤하고, 적응형 배경 컨테이너와 색상을 일치시키고, 새로운 ToolbarItem 배치로 전면 디스플레이를 활용하고, NavigationSplitView로 상세 목록 보기를 구성할 수 있습니다.

새로운 MapKit API

MapKit 카메라, 주석, 지도 모드 등을 완벽하게 제어하세요. 위젯 내에 MapKit 뷰를 배치할 수도 있습니다.

새 차트 유형 및 상호작용

원형 차트 및 도넛 차트를 사용하여 정보를 표시하세요. 선택 밴드와 스크롤 기능을 통해 사용자는 차트를 탐색하고 데이터를 효과적으로 이해할 수 있습니다.

API 적용 범위 확대

SwiftUI는 프로그래밍 스크롤 및 페이징을 위한 새로운 후크, 애니메이션 스크롤 전환, 달라진 속성 구성 요소, 세분화된 초점 제어, 최신 키보드 입력 지원 등을 통해 API를 계속 확장하고 있습니다.

선언적 구문

SwiftUI는 선언적 구문을 사용하므로 사용자 인터페이스의 기능을 명시하기만 하면 됩니다. 예를 들어, 텍스트 필드로 구성된 항목의 목록을 작성한 다음 각 필드의 정렬, 서체 및 색상을 설명하면 됩니다. 코드가 그 어느 때보다 간단하고 가독성이 향상되어 시간이 절약되고 유지 관리가 용이합니다.

import SwiftUI

struct AlbumDetail: View {
	var album: Album

	var body: some View {
		List(album.songs) { song in 
			HStack {
				Image(album.cover)
				VStack(alignment: .leading) {
					Text(song.title)
					Text(song.artist.name)
						.foregroundStyle(.secondary)
				}
			}
		}
	}
}

이 선언적 스타일은 애니메이션과 같은 복잡한 개념에도 적용됩니다. 코드 몇 줄 만으로 거의 모든 컨트롤에 애니메이션을 손쉽게 추가하고 바로 사용할 수 있는 효과 모음을 선택할 수도 있습니다. 런타임 중에 시스템에서는 부드러운 움직임을 만들기 위해 필요한 모든 단계는 물론 사용자의 상호작용 및 애니메이션 도중의 상태 변경까지도 처리합니다. 따라서 개발자는 이와 같이 간단한 애니메이션을 사용하여 앱에 생동감을 불어넣어 줄 새로운 방법을 찾을 수 있습니다.

디자인 도구

Xcode에는 SwiftUI로 인터페이스를 쉽게 구축할 수 있는 직관적인 디자인 도구가 포함되어 있습니다. 디자인 캔버스에서 작업하면 편집하는 모든 내용이 옆에 표시되는 편집기의 코드와 완벽하게 동기화됩니다. 코드를 입력하는 동시에 미리보기로 바로 볼 수 있고 라이트 모드 및 다크 모드와 같이 다양한 구성에서 UI를 확인할 수도 있습니다. Xcode는 변경 사항을 즉시 재컴파일하고 실행 중인 앱 버전에 삽입하므로 상시 확인 및 편집이 가능합니다.

동적 대체. Swift 컴파일러 및 런타임은 Xcode 전체에서 기본 제공되므로 앱을 지속적으로 구축하고 실행할 수 있습니다. 개발자에게 표시되는 디자인 캔버스는 사용자 인터페이스가 아닌 라이브 앱과 비슷합니다. 또한 Xcode는 동적 대체를 사용하여 직접 라이브 앱에서 편집된 코드로 바꿀 수 있습니다.

미리보기. 이제 SwiftUI 뷰 중 하나 또는 여러 개의 미리보기를 생성하여 샘플 데이터를 얻을 수 있으며 큰 서체, 현지화 또는 다크 모드와 같이 사용자에게 표시할 모든 항목을 구성할 수 있습니다. 또한 미리보기에서는 UI를 원하는 기기에서 원하는 방향으로 표시할 수 있습니다.

UIKit 및 AppKit과의 호환성

SwiftUI는 UIKit 및 AppKit과 호환되도록 설계되었기 때문에 기존 앱에 추가로 적용할 수 있습니다. 사용자 인터페이스의 새로운 부분을 구축하거나 기존 사용자 인터페이스를 다시 빌드해야 하는 경우 나머지 코드베이스를 유지하면서 SwiftUI를 사용할 수 있습니다.

SwiftUI에서 제공하지 않는 인터페이스 요소를 사용하려는 경우 SwiftUI를 UIKit 및 AppKit과 함께 사용하여 최고의 환경을 활용할 수 있습니다.

시작하기

Xcode를 다운로드하고 다음 리소스를 사용하여 SwiftUI로 모든 Apple 플랫폼용 앱을 빌드해 보세요.

Xcode 다운로드하기