SwiftUI

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

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

SwiftUI의 새로운 기능

Navigation API

앱의 탐색 동작을 프로그래매틱한 방식으로 제어하여 실행 상태 설정, 크기 클래스 간 전환 관리, 딥 링크에 응답하는 등의 작업을 할 수 있습니다.

고급 레이아웃 컨트롤

재사용 가능한 고급 레이아웃을 빌드하여 앱 디자인을 강화할 수 있습니다. VStack 및 Hstack과 더불어 이제 SwiftUI에서는 새로운 Grid API를 제공하므로 가로 및 세로 보기를 동시에 정렬할 수 있습니다. 또한, 새로운 하위 수준의 맞춤형 Layout API를 통해 앱에 필요한 레이아웃을 정확하게 빌드할 수 있습니다. 특정 보기에 대한 여러 가지 변형을 지정하고 SwiftUI에서 자동으로 사용 가능한 공간에 가장 알맞은 변형을 선택하도록 하는ViewThatFits가 이제 SwiftUI에 포함되어 있습니다.

macOS에 대한 개선 사항

단일, 고유 윈도우 및 윈도우 위치, 크기 및 크기 조절 가능 여부에 대한 새로운 모디파이어 등 macOS에서의 윈도우 기능에 대한 지원이 개선되었습니다. SwiftUI로 메뉴 막대 추가 항목을 빌드하여 Mac 어디에서나 앱의 기능을 사용하도록 해보십시오.

UIKit 상호 운용성 개선

SwiftUI는 다른 인터페이스 프레임워크와 호환되도록 설계되었습니다. 이제 SwiftUI의 선언적 구문을 사용하여 사용자 설정 UICollectionView 셀을 손쉽게 작성할 수 있습니다. 맞춤형 셀은 UIKit과 완벽하게 통합되므로 쓸어넘기기 동작 및 셀 배경과 같이 예상되는 모든 기능을 제공할 수 있습니다.

Swift Charts

Apple 플랫폼 어디에서나 멋지게 선보일 수 있는 맞춤화가 가능한 차트를 사용하여 데이터를 시각화해 보십시오. Swift Charts는 SwiftUI의 작문적 구문을 사용하여 선 및 막대 차트부터 스트림 그래프와 같은 고급 유형까지 다양한 가능성을 내포한 보기를 생성합니다. 또한 Swift Charts에서는 VoiceOver를 지원하여 모든 사용자에게 정보를 제공할 수 있습니다.

추가 구성요소에 대한 지원

SwiftUI는 더욱 많은 기존 UI 구성요소를 지원하기 위해 확장을 거듭하고 있습니다. 예를 들어, 사용자가 더 많은 정보를 확인하고자 할 때 메인 보기 위로 슬라이드하며 올라오는 하프 시트나, 사용자가 기기에 설치되어 있는 모든 공유 확장 프로그램을 활용하도록 해주는 공유 시트가 있습니다. 이제 Mac의 다중 열 표 API를 iPad에서도 사용할 수 있어 테이블 형식 데이터를 이전보다 더욱 쉽게 표현할 수 있습니다.

새로운 Sharing API

새로운 Transferable 프로토콜 덕분에 클립보드, 드래그 앤 드롭 및 공유 시트에서 데이터를 사용할 수 있으며, 이제 SwiftUI를 사용하여 직접 호출할 수 있습니다.

잠금 화면의 위젯

SwiftUI로 잠금 화면의 위젯을 멋지게 디자인해 보십시오. 아름다운 아이콘, 측정기 및 기타 요소를 생성하여 사용자가 정보를 한눈에 빠르게 확인할 수 있도록 해보십시오.

선언적 구문

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 다운로드하기