[iOS] - WWDC22 What's new in Xcode


What’s new in Xcode

속도 향상

Xcode 14가 30% 작아짐. 다운로드 속도 향상.

SwiftUI with live previews

image

  • 기본적으로 preview canvas는 이제 상호작용할 수 있게 설정됨.
  • 추가적인 코드 작성 없이 canvas에서 각 preview에 대한 추가적인 설정을 할 수 있다. (color scheme, text size, deivce orientation 등)
  • 다양한 사이즈 화면에서 뷰가 어떻게 보이는지 확인 가능

initializer 자동 완성

image

Xcode 14에서는 Initializer를 입력하기 시작할 때 자동완성된 이니셜라이저를 제공한다.

SF Symbol

image

라이브러리가 이제 모든 SF Symbol을 포함하고 있다.

code completion

image image

쓰고 싶은 파라미터 등을 적어서 쓰고 싶은 함수 등을 바로 찾을 수 있다.

callers

image

특정 함수를 호출하는 파일, 함수들의 목록을 보여준다.

Error dimming

image image

에러를 고치는 즉시 에러가 회색이된다. 이를 통해 Xcode가 에러를 재진단 중인 것을 알 수 있다. 잠시 기다리면 에러가 아예 화면에서 사라지고 Xcode가 모든 에러가 해결되었음을 확인한다.

show definitions containing the visible code

image

현재 보여지는 코드의 정의가 화면상 보이지 않는 위치에 있을 때 이제 이를 화면에 보여준다.

Build performance improvements

Building Framework and Application

image

Xcode가 여러 target(framework, application)을 빌드학 때 일어나는 과정은 다음과 같다.

  1. 프레임워크 소스 컴파일
  2. 모듈 생성
  3. 애플리케이션 소스를 link, compile
  4. Link

image

Xcode 14는 이런 과정을 재배치해서 병행성을 향상시킨다. 이런 향상된 병행성을 통해 linker가 2배 빨라졌고, Xcode 14는 25% 빌드 시간이 단축됐다.

image

긴 synchronous 작업을 수행할 때도 있는데, 시각화하지 않고서는 이런 작업이 일어나고 있다고 말하기 힘들다. Xcode 14에서는 빌드 로그나 결과 번들의 빌드 타임라인을 보여준다.

=> Demystify parallelization in Xcode builds, Link Fast: Improve build and launch 세션에서 더 알아볼 수 있다.

Faster test execution

image

Xcode 14는 테스트 도중에 타겟과 테스트 클래스 사이의 scheduling 의존성을 제거해서 테스트 실행시간을 30% 빠르게 만든다.

=> Author fast and reliable tests for Xcode Cloud 세션에서 더 알아볼 수 있다.

Faster notarizing

image

문서화하는 것도 Xcode 14에서 4배 빨라졌다.

Interface Builder performance improvements

  • Document loading은 50% 빨라졌다.
  • device bar에서 iPhone과 iPad간 바꾸는게 30% 빨라졌다.

Support Easy platform setting

image

하나의 target으로 어떤 플랫폼을 지원할 것인지 정의할 수 있다.

=> Use Xcode to build a multiplatform app 세션에서 더 알아볼 수 있다.

Make app smaller

image

Memory debugger : 애플리케이션에서 메모리 누수를 확인하는 툴. 객체의 모든 참조 경로를 확인할 수 있다.

Swift Package plugins

image

Xcode자체를 swift Package plugin으로 확장할 수 있다.

=> Meet Swift Package plugins 세션에서 더 확인할 수 있다.

Localize package resources

image

애플리케이션과 마찬가지로 package resouce를 localize할 수 있다.

=> Building global apps: Localization by example 세션에서 더 확인할 수 있다.

Updated run destination chooser, scheme chooser

image

  • 최신에 사용한 것을 보여준다.
  • 디바이스 이름을 검색할 수 있다.

Organizer window

Feedback

image

  • Xcode에서 TestFlight 피드백을 보여준다.
  • 테스트한 사람의 정보, 디바이스 설정을 보여준다.
  • 바로 테스터에게 이메일을 보낼 수 있다.
  • 베타 유저에게서 받는 피드백.

Hangs

image

앱이 사용자 입력을 받기 위해 잠시 쉬지 않고 메이 쓰레드를 사용할 때 앱이 hang된다고 한다. 앱이 hang되면 사용자는 앱이 반응성이 떨어진다고 생각한다.

Hangs report를 통해 앱스토어 사용자가 겪는 영향력이 큰 hang들을 보여준다. 이를 통해 코드를 재구성할 수 있다.

  • hang들의 목록
  • 문제가 되는 코드 보여줌, 코드로 바로 이동할 수 있음

=> Track down hangs with Xcode and on-deivce detection 세션에서 더 확인할 수 있다.

Single Size icon

image

Xcode가 한 이미지에서 자동으로 모든 다른 사이즈를 생성할 수 있게 할 수 있다.