[iOS] - WWDC22 What's new in Xcode
속도 향상
Xcode 14가 30% 작아짐. 다운로드 속도 향상.
SwiftUI with live previews
- 기본적으로 preview canvas는 이제 상호작용할 수 있게 설정됨.
- 추가적인 코드 작성 없이 canvas에서 각 preview에 대한 추가적인 설정을 할 수 있다. (color scheme, text size, deivce orientation 등)
- 다양한 사이즈 화면에서 뷰가 어떻게 보이는지 확인 가능
initializer 자동 완성
Xcode 14에서는 Initializer를 입력하기 시작할 때 자동완성된 이니셜라이저를 제공한다.
SF Symbol
라이브러리가 이제 모든 SF Symbol을 포함하고 있다.
code completion
쓰고 싶은 파라미터 등을 적어서 쓰고 싶은 함수 등을 바로 찾을 수 있다.
callers
특정 함수를 호출하는 파일, 함수들의 목록을 보여준다.
Error dimming
에러를 고치는 즉시 에러가 회색이된다. 이를 통해 Xcode가 에러를 재진단 중인 것을 알 수 있다. 잠시 기다리면 에러가 아예 화면에서 사라지고 Xcode가 모든 에러가 해결되었음을 확인한다.
show definitions containing the visible code
현재 보여지는 코드의 정의가 화면상 보이지 않는 위치에 있을 때 이제 이를 화면에 보여준다.
Build performance improvements
Building Framework and Application
Xcode가 여러 target(framework, application)을 빌드학 때 일어나는 과정은 다음과 같다.
- 프레임워크 소스 컴파일
- 모듈 생성
- 애플리케이션 소스를 link, compile
- Link
Xcode 14는 이런 과정을 재배치해서 병행성을 향상시킨다. 이런 향상된 병행성을 통해 linker가 2배 빨라졌고, Xcode 14는 25% 빌드 시간이 단축됐다.
긴 synchronous 작업을 수행할 때도 있는데, 시각화하지 않고서는 이런 작업이 일어나고 있다고 말하기 힘들다. Xcode 14에서는 빌드 로그나 결과 번들의 빌드 타임라인을 보여준다.
=> Demystify parallelization in Xcode builds, Link Fast: Improve build and launch 세션에서 더 알아볼 수 있다.
Faster test execution
Xcode 14는 테스트 도중에 타겟과 테스트 클래스 사이의 scheduling 의존성을 제거해서 테스트 실행시간을 30% 빠르게 만든다.
=> Author fast and reliable tests for Xcode Cloud 세션에서 더 알아볼 수 있다.
Faster notarizing
문서화하는 것도 Xcode 14에서 4배 빨라졌다.
Interface Builder performance improvements
- Document loading은 50% 빨라졌다.
- device bar에서 iPhone과 iPad간 바꾸는게 30% 빨라졌다.
Support Easy platform setting
하나의 target으로 어떤 플랫폼을 지원할 것인지 정의할 수 있다.
=> Use Xcode to build a multiplatform app 세션에서 더 알아볼 수 있다.
Make app smaller
Memory debugger : 애플리케이션에서 메모리 누수를 확인하는 툴. 객체의 모든 참조 경로를 확인할 수 있다.
Swift Package plugins
Xcode자체를 swift Package plugin으로 확장할 수 있다.
=> Meet Swift Package plugins 세션에서 더 확인할 수 있다.
Localize package resources
애플리케이션과 마찬가지로 package resouce를 localize할 수 있다.
=> Building global apps: Localization by example 세션에서 더 확인할 수 있다.
Updated run destination chooser, scheme chooser
- 최신에 사용한 것을 보여준다.
- 디바이스 이름을 검색할 수 있다.
Organizer window
Feedback
- Xcode에서 TestFlight 피드백을 보여준다.
- 테스트한 사람의 정보, 디바이스 설정을 보여준다.
- 바로 테스터에게 이메일을 보낼 수 있다.
- 베타 유저에게서 받는 피드백.
Hangs
앱이 사용자 입력을 받기 위해 잠시 쉬지 않고 메이 쓰레드를 사용할 때 앱이 hang된다고 한다. 앱이 hang되면 사용자는 앱이 반응성이 떨어진다고 생각한다.
Hangs report를 통해 앱스토어 사용자가 겪는 영향력이 큰 hang들을 보여준다. 이를 통해 코드를 재구성할 수 있다.
- hang들의 목록
- 문제가 되는 코드 보여줌, 코드로 바로 이동할 수 있음
=> Track down hangs with Xcode and on-deivce detection 세션에서 더 확인할 수 있다.
Single Size icon
Xcode가 한 이미지에서 자동으로 모든 다른 사이즈를 생성할 수 있게 할 수 있다.