What's New in Xcode 11

Editor

Editor Options는 아래로 내려갔습니다. editor추가도 바로바로 가능하게 되었습니다 에디터를 아래 추가 우측에 추가가 가능합니다
Editor Canvas는 SwiftUI의 프리뷰를 볼수 있습니다 일반 Swift파일에서는 프리뷰가 보이지 않습니다 Editor And Assistants는 기존과 같이 화면을 분할해서 보여줍니다 하지만 assistants를 키고 project설정으로 넘어가면 기존에는 좌측화면만 프로젝트 설정이 열렸는데 새로운 엑스코드는 전체화면으로 열리게 됩니다 이제 설정을 바꾸는 시간을 낭비 하지 않아도 됩니다
이게 현재 버전의 엑스코드인데 최신버전은 아래처럼 열리고, swift파일을 열때만 분리된 화면으로 나타납니다
새로운 에디터를 추가할경우 각각의 에디터에 show code coverage, show author, show minimap등을 설정할수 있습니다 기본동작은 우측에 새로운 에디터를 추가인데 옵션키를 누르면 하단에 추가가 가능합니다 하지만 기본적으로 네비게이션에서 파일을 선택하면 가장 마지막에 활성화된 에디터에서 열리게 됩니다 그것을 직접 지정을 하려면 옵션키와 쉬프트키를 누를 상태에서 파일을 선택하면 열리게될 에디터를 선택할수 있습니다 방향키와 마우스를 통해서 열리게 될 에디터를 선택할 수 있고, 새로운 에디터가 열리도록 할 수도 있습니다 그리고 에디터가 선택된 상황에서 단축키도 이용 가능합니다 에디터의 좌측 상단에 포커스버튼이 있습니다 클릭시 확대되며 전체화면으로 볼 수 있습니다
그리고 미니맵이 추가가 되었습니다 미니맵에 마우스를 가져다 대면 어느 코드인지 함수라면 어디서부터 시작되서 어디에서 끝나는지 표시가 됩니다 브레이크 포인트들도 보이고, 미니맵을 클릭하면 해당 위치로 바로 이동합니다 검색기능을 사용시 일치하는 내용들을 미니맵에서 표시해줍니다
//mark: - 로 작성하게 되면 미니맵에 크게 나타나서 랜드마크처럼 볼 수 있습니다 그리고 에디터에서도 라인이 나타나게 됩니다
문서기능이 강화되었습니다 함수의 새로운 파라미터가 추가 되었을때 함수를 먼저 수정한뒤 커맨드키와 함수를 누르면 나오는 메뉴들중 add documentation을 누르면 새로 추가된 파라미터만 문서에 추가가 됩니다. 새로 추가된 함수만 적어주면 됩니다 이후에 파라미터를 edit all in scope로 변경을 하면 문서도 같이 변경됩니다
코드 리뷰버튼을 누르면 포커스 모드가 되면서 변경점들을 확인할 수 있습니다 여기서 말하는 코드 리뷰는 내가 지금 작업한 코드들을 확인하는 것 같습니다

Swift Package Manager

스위프트패키지가 엑스코드11에서 엄청 강해졌습니다 더욱더 쉽게 코드를 공유하고 사용할 수 있습니다 프로젝트 설정에 프로젝트로 가면 swift package라는 탭이 생겼습니다 이 탭에서는 내가 이용하고 있는 패키지들을 관리할 수 있습니다 더하기 버튼을 누르고 깃헙연동을 하면 개인 레파지토리나, 회사 레파지토리의 package들이 보입니다 선택을 하고 다음버튼을 누르면 버전에 대한 정보를 입력할 수 있습니다 가장 최신버전을 자동으로 입력 해줍니다 다음버튼을 누르면 해당 패키지에 디펜던시 걸린 것들을 보여줍니다 그러면 적용이 끝납니다 네비게이션에서 코드들을 살펴 볼 수 있습니다 정말 쉽게 사용할 수 있습니다

Source control

stash 가 엑스코드에서도 가능해졌습니다 소스코드 히스토리에서 체리픽도 가능합니다

Design Tool

스토리보드에서 미리보기에 맥도 추가가 되었습니다 interface style도 추가가 되어서 다크모드 라이트모드 변경이 가능합니다 sfsymbol을 위한 공간도 만들어 졌습니다 에셋에서 이미지와 컬러들을 다크모드와 라이트모드에 대응할수 있습니다 코드 전혀 없이 에셋의 커스텀 심볼을 이용해서 sfsymbol처럼 사용할수 있습니다 그렇게 하면 접근성등 다양한 화면에 대해서 유연하게 대처할수 있습니다 에셋들에서 심볼 , 이미지들을 로컬라이징도 가능합니다 (한국 국기가 반갑네요 여기서 보니) 새로운 엑스코드에서는 이미지를 선택할 때 이름만이 아닌 이미지도 미리 보여줍니다
디버그 바의 환경설정을 이용해서 다양한 인터페이스 스타일, 다이나믹 타입, 손쉬운 사용설정들을 빠르게 변경할수 있습니다

Debugging

엑스코드의 기기 관리에서 온도와 네트워크 상태를 변경 할 수 있습니다

Testing

reusable across schemes define what tests to include specify multiple configurations 엑스코드서버를 이용해서 각각의 언어, 다양한 디바이스에 대해서 테스트 할 수 있습니다 맥앱과 스위프트ui에서도 테스트는 잘 동작합니다
테스트와 디버깅은 자세히 설명하지 않았고 따로 세션을 봐달라고 합니다

Simulator

애플워치시뮬레이터를 실행할때 아이폰 앱은 이제 필요 없습니다 시뮬레이터는 메탈로 만들어 졌습니다 그리서 메탈앱이 동작하고 더빠르게 동작합니다 마찬가지로 uikit들도 더욱더 빠르게 동작합니다 cpu는 90% 덜 사용하고 60프레임으로 그립니다 시뮬레이터 시작도 2배 빨라졌습니다