WWDC/iOS

[iOS] WWDC23 - What's new in Xcode 15

유정주 2023. 6. 8. 13:10
반응형

서론

WWDC23에서는 한글 자막을 지원하지 않아 파파고와 함께 정리했습니다.

얼른 한글 자막이 추가되기를 기원합니다🙏

 

What's new in 시리즈 중 SF 심볼을 먼저 볼까 Xcode 15를 먼저 볼까 고민했습니다.

 

고민 중에 이걸 봤는데 너무 흥미로운거에요.

바로 Xcode 15 영상부터 보기로 결정했습니다. ㅋㅋ (근데 다 보고 나니까 막상 저 내용은 안 나옴;;)

금쪽이같은 Xcode가 15에는 좀 성장했을지 기대됩니다.

 

WWDC23부터는 영상 챕터를 지원합니다.

따라서 포스팅도 챕터 별로 나눠 작성했습니다.

(Xcode 다운로드 챕터는 생략했습니다.)

 

 

Code completion updates

Code completion을 통해 원하는 코드를 더 빠르고 실수 없이 작성할 수 있습니다.

Xcode에서는 이 기능이 더 발전했습니다.

 

 

Code completion은 파일 이름 등 새로운 정보를 통해 코드를 제안합니다.

위 예시는 구조체 이름을 파일 이름으로 제안하는 모습입니다.

 

 

메서드 파라미터 리스트를 전부 확인할 수 있도록 바뀌었습니다.

키보드의 오른쪽 화살표를 누르면 모든 매개변수 조합을 볼 수 있습니다.

 

 

코드 제안도 개선되었습니다.

위 예시는 font가 이미 적용되어있을 때 font 대신 bold가 제안되는 모습입니다.

주변 코드를 고려하여 더 적합한 코드를 제안한다고 합니다.

 

또다른 예시로, 위도와 경도는 쌍으로 사용되는 경우가 많기 때문에 함께 제안되는 모습입니다.

 

 

What's new in asset catalogs

Xcode 15부터는 코드에서 Asset 이름을 참조하여 사용할 수 있습니다.

Asset 이름이 변경되면 코드에서 에러가 발생하기 때문에 더 안전해집니다.

 

 

위 예시는 이미지 Asset 이름을 변경한 뒤 컴파일 에러가 발생하는 모습입니다.

기존에는 컴파일 에러 없이 빌드가 되어서 런타임에 문제가 발생했는데 이제는 컴파일 단계에서 알 수 있어 더 안전해졌습니다.

 

 

Meet string catalogs

Xcode 15에서는 localization에서도 catalogs를 사용할 수 있습니다.

문자열 카탈로그는 localization을 한 곳에 모아 중앙 집중식으로 검토하고 업데이트하 수 있습니다.

 

 

Edit > Convert to string catalog 메뉴로 사용할 수 있습니다.

마이그레이션할 수 있는 모든 스토리보드, .strings, .stringsdict 파일이 나옵니다.

마이그레이션이 완료되면 모든 번역이 단일 편집기로 표시됩니다.

 

 

왼쪽 사이드바에서 번역 진행률도 확인할 수 있습니다.

 

 

더 자세한 내용은 WWDC23 - Discover String Catalogs에서 다룹니다.

 

 

What's new in Swift-DocC

Xcode 15에서는 문서 기능을 개선하여 문서화를 통한 더 깔끔한 코드 작성을 지원합니다.

 

Xcode 15에서는 문서가 더 읽기 쉽게 표시됩니다.

 

 

Xcode 15에서는 문서의 실시간 프리뷰를 지원합니다.

Editor > Assistant를 선택하면 문서가 어떻게 작성되는지 실시간으로 볼 수 있습니다.

 

 

더 자세한 내용은 WWDC23 - Create rich documentation with Swift-DocC에서 다룹니다.

 

 

Meet Swift macros

Swift 매크로를 통해 더 간결한 코드를 지원합니다.

매크로는 더 표현력 있는는 API를 만들고, 반복되는 코드를 제거합니다.

 

 

Swift standard library, Foundation, SwiftData에서 매크로를 지원합니다.

 

 

다른 사람에게 공유할 매크로를 직접 만들 수도 있고, 매크로가 생성하는 코드에 breakpoint를 걸어 디버깅할 수도 있습니다.

 

 

Swift macros와 관련된 자세한 내용은 WWDC23 - Expand on Swift macros에서 다루며,

매크로 실습은 WWDC23 - Write Swift macros 에서 다룹니다.

 

 

What's new in Previews

매크로를 이용하는 Preview도 추가되었습니다.

 

 

#Preview를 이용해 프리뷰를 추가할 수 있습니다.

 

 

여러 프리뷰를 사용할 수 있고, 각 프리뷰에 이름을 지정할 수도 있습니다.

 

 

또한, 이제는 UIKit과 AppKit을 프리뷰로 볼 수 있습니다.

 

 

time-based 위젯을 확인할 수도 있습니다.

위 예제는 시간에 따라 바뀌는 위젯 모양을 확인하는 모습입니다.

 

 

더 자세한 내용은 WWDC23 - Build programmatic UI with Xcode Previews에서 다룹니다.

 

 

The bookmark navigator

XCode 15에서는 북마크 탐색기가 추가되었습니다.

 

 

코드의 위치에 책갈피를 추가하고, 왼쪽 네비게이터에서 쉽게 찾을 수 있습니다.

위 예시는 추가한 북마크를 왼쪽 네비게이터에서 확인하는 모습입니다.

 

 

북마크에는 설명을 추가할 수 있으며, 코드에서 북마크 설명이 표시됩니다.

당연히 북마크들을 그룹으로 관리할 수도 있습니다.

 

 

코드 뿐만 아니라 Find 명령어를 즐겨찾기 할 수도 있습니다.

 

 

What's new in source control

Xcode 15에서는 협업을 위해 source control 네비게이터에서 변경 사항을 검토할 수 있습니다.

 

 

각 파일의 상태와 변경 사항을 확인할 수 있습니다.

코드 파일 창을 드래그하면 확대가 되어 다음 내용을 확인할 수 있습니다.

 

 

오류가 발생했을 때 내용을 수정할 수도 있습니다.

수정을 하면 unstage로 상태가 표시됩니다. (두 번째 사진에서 왼쪽 네비게이터에서 표시 하나가 생기고, 코드 옆에 흰색 바가 생김)

 

 

 

상단에서 커밋 메시지를 작성하고 바로 커밋, 푸시할 수 있습니다.

 

 

What's new in testing

테스트 네비게이터를 Swift로 다시 작성하여 효율성을 높였습니다.

Xcode 15는 45% 더 빠르게 테스트 결과를 실시간으로 실행, 레포트할 수 있으며, 필터를 사용해 예상 failure를 찾을 수도 있습니다.

 

 

테스트 보고서는 전체 테스트 실행 결과를 확인할 수 있고, 통과 및 실패한 테스트 수를 쉽게 파악할 수 있습니다.

이외에도  잠재적 failure를 확인하고, 오래 걸리는 테스트 케이스를 경고로 알려줍니다.

 

 

새로운 자동화 탐색기로 UI test를 더 재밌고 쉽게 진행할 수 있습니다.

각 테스트 케이스를 클릭하면 오른쪽에서 실시간으로 진행을 보여줍니다.

테스트 실패를 하면 실패한 시점에서 앱의 UI 계층을 확인할 수 있습니다.

 

 

더 자세한 내용은 WWDC23 - Fix failures faster with Xcode test reports에서 확인할 수 있습니다.

 

 

Updates in the debug console

OSLog를 Xcode로 통합하여 개선했습니다.

 

 

Xcode 15의 콘솔에서는 OSLog를 완벽히 지원합니다. (원래는 콘솔 앱을 사용해야했음)

로그 컨텐츠에 집중하기 위해 추가 데이터를 숨길 수 있습니다.

각 로그 항목의 배경색은 심각도에 따라 달라지므로 쉽게 분류할 수 있습니다.

 

 

메타데이터 필드는 기본적으로 숨겨져 있지만 클릭 몇 번으로 다시 표시할 수 있습니다.

 

 

로그 타입으로 필터링할 수도 있으며,

 

로그에서 바로 코드로 이동할 수도 있습니다.

 

 

더 자세한 내용은 WWDC23 - Debug with structured logging 에서 다룬다고 합니다.

 

 

Updates in Xcode Cloud distribution

Xcode 15는 앱 배포 과정을 더 쉽고 안전하게 개선했습니다.

Xcode Cloud는 두 가지 개선사항이 있는데 TestFlight 테스트 세부사항과 맥 앱의 공증(notarization)을 지원합니다.

 

TestFlight의 테스트 노트를 추가할 수 있습니다.

TestFlight 빌드에 자동으로 첨부되므로 테스트 담당자도 쉽게 볼 수 있습니다.

 

 

맥 앱의 Notarize를 지원하기 때문에 빌드가 완료되면 자동으로 공증되고 다운로드 할 수 있습니다.

 

 

Signature verification and privacy manifests

Xcode는 XCFrameworks를 이용한 의존 SDK와 프레임워크 무결성 검사를 도입했습니다.

 

 

누가 제작했고 누가 서명을 했는지 보여줍니다.

만약 문제가 발생한다면 명확한 경고를 표시해줍니다.

 

 

또한, 프레임워크에 개인 정보 보호 manifest를 추가할 수 있습니다.

 

프레임워크가 사용하는 민감 데이터를 알려줍니다.

 

 

사용자에게 정확한 정보를 제공할 수 있도록 앱스토어 커넥트의 개인정보보호 라벨을 쉽게 작성할 수 있도록 설계되었습니다.

또한, Apple은 개인 정보 보호에 영향을 미치는 SDK와 협력하여 모든 중요한 종속성이 귀중한 정보를 제공하도록 보장합니다.

이와 관련하여 더 자세한 내용은 WWDC23 - Verify app dependencies with digital signatures 세션과 WWDC23 - Get started with privacy manifests에서 다룹니다.

 

 

What's new in Xcode distribution

Xcode 15에서는 TestFlight Internal testing 옵션을 지우너합니다.

팀에서만 사용할 수 있으므로 실수로 고객에게 배포할 수 없습니다.

 

 

앱스토어 커넥트를 통해 앱을 배포할 때 TestFlight 내부 테스트 옵션을 선택하기만 하면 됩니다. (세 번째 옵션)

 

 

Xcode에서 지원하는 새로운 배포 기능으로 쉽게 배포할 수도 있다고 합니다.

이에 대해서는 WWDC23 - Simplify distribution with Xcode and Xcode Cloud 에서 다룹니다.

 

감사합니다.


아직은 초보 개발자입니다.

더 효율적인 코드 훈수 환영합니다!

공감 댓글 부탁드립니다.

 

 

 

반응형