GGURUPiOS

[WWDC2023] What’s new in XCODE15 (Xcode15 에서 달라진 점, 신기능) 본문

WWDC

[WWDC2023] What’s new in XCODE15 (Xcode15 에서 달라진 점, 신기능)

꾸럽 2023. 6. 29. 23:06

What’s new in XCODE15 

공식영상에서는 Editing, Navigating, Sharing, Testing, Debugging, Distributing으로 크게 6가지 목차로 나눠서 설명함
세부 항목은 제가 임의로 나눈거라 참고해서 봐주시면 감사하겠습니다

 

Editing

Introduction

  • 이제 Xcode를 받으면 크기가 작아져서 모든 시뮬레이터를 받기전에도 코드를 쉽게 작성할 수 있음
  • 그리고 베타버전을 웹사이트에서 받을 때도 포함할 시뮬레이터를 미리 선택할 수 있음

  • 코드 완성 기능(Code completion)이 더 스마트해짐

예를들어, 아래와 같이 파일을 만들면 자동으로 파일 이름을 따라서 추천해줌 


완성 표시 방식도 개선됨 (파라미터가 있는 함수를 호출할 때, 오른쪽 방향키로 가능한 모든 순열을 확인할 수 있음)

컨텍스트 인식 기능이 추가되어서 작성중인 코드에 대한 더 나은 제안이 맨 위로 올라옴
VStack이 패딩이 가장 자주 사용되는 modifier중 하나이기 때문에 추천해줌
Text의 경우에는 글꼴 (심지어 주변 코드도 고려해 준다고함..ㄷ)

아래의 예제에서는 원래 Text의 경우 font가 먼저 추천되지만, font라는 수정자가 있기때문에 bold가 최상위에 표시됨

Asset 카탈로그에도 컴플리션 기능이 도입됨 (에셋에 추가한 이미지를 이제 String이 아닌 심볼로 지원 →
.문법으로 접근 가능) 심볼로 참조되기 때문에, Asset에서 이름을 바꿔도 타입 안정성을 제공하므로
빌드시에 오류발생 (런타임에 이미지나 색상이 누락 안되게 함)

로컬라이제이션 환경에도 카탈로그의 강력한 기능 제공
→ 마이그레이션이 더 쉬워짐 (자세한 방법은 영상참고)

Documentation

명확하고 간결한 코드는 문서화를 통해 더욱 향상됨 → 훌륭한 문서를 작성하는 것이 핵심 Xcode 15에서는 새로운 스타일과 간격이 적용되어 문서를 더 읽기 쉽게 만듬

  • 가장 큰 변화는 실시간 미리보기를 보여주는 새로운 Assistant의 기능임 아래와 같이 나만의 문서화가 가능해 짐 (나중에 보거나 다른사람들이 볼 때 유용할 듯) 문서 카탈로그에 이미지가 있다면, 이미지를 참조해서 문서화 할 수도 있음

  • Swift macros Swift macros는 새로운 강력한 기능, API를 더욱 표현력 있게 만들고 반복되는 코드를 제거하는데 도움이 됨 나만의 매크로 패키지를 만들어 다른 사람들과 공유도 가능
    • macros는 코드를 깔끔하게 마무리하고, 깔끔하게 숨겨줌 EnumHelper내부에 CaseDetection을 매크로로 구현한 모습
      → 아직 macros를 잘 안살펴봐서 자세히는 모르겠지만 뭔가 상속받은 것 처럼 코드가 숨겨짐 (개인적 생각)
      → 그러나, macros가 수행하는 작업이나 디버깅 하고 싶을 때는 코드를 펼쳐서 브레이킹포인트를 잡을 수 도 있다고 함

  • Preview API가 더욱 간단해짐 (매크로를 활용한 기술이라 함)
  • UIKit과 AppKit에도 미리보기가 추가 됨

Navigating + Sharing

Source Control 개선

  • 파일의 상태에 대한 프레젠테이션이 개선 + 스크롤로 모든 수정사항을 검토할 수 있음
    드래그를 통해 수정된 사항 뿐만아니라 다른코드들도 펼쳐볼 수 있음
    또한 해당 화면에서 (그 파일로 갈 필요 없이) 수정이 가능함

(이젠 커밋만큼은 터미널이나 GUI를 통해서가 아니라 무조건 엑코에서 해야하려나?)

(Sharing은 뭔가 했더니.. 그냥 커밋된 내용을 Push를 통해 팀원들과 공유할 수 있다는 거였음 ;;;;)


Testing

  • Test 결과를 실시간 실행하거나 리포팅할 때 Xcode의 속도가 45% 빨라짐
  • 테스트 내비게이터는 테스트 계획을 중심으로 구성되므로 테스트를 더 쉽게 찾을 수 있음

  • 테스트 보고서를 통해 인사이트를 포함해 테스트 결과를 자세히, 쉽게 파악 가능 함테스트가 어떻게, 디바이스 및 구성에서 얼마나 많은 테스트가 통과-실패했는지, 인사이트 에서는 잠재적인 테스트 실패를 식별

  • 테스트 디테일에서 데이터를 탐색하는 다양한 방법을 위한 탭이 포함되어 있고,
    새로운 자동화 탐색기로 디버깅 하는 것이 쉬워짐 (탐색기는 테스트 재생을 보거나 타임라인을 스크러빙 할 수 있음)
    또한 터치, 마우스 이벤트가 비디오에 오버레이 됨

Debugging

  • OSLog가 등장 (OSLog는 런타임 정보를 캡처하기 위한 도구로, 구조화 되고 사용자 지정 가능한 로깅 메커니즘을 제공하여 로그 출력을 체계적으로 관리 가능)
  • 콘솔창은 OSLog를 완벽하게 지원하고, 로그창이 깔끔해짐 필터로 검색범위를 좁힐 수 있음


Distributing

배포를 더 쉽고 안전하게 만들기 위한 몇 가지 개선사항이 있음

  • Xcode Cloud는 두 가지 세부 사항을 더 처리 함
    • Test Flight 테스트 세부 정보(노트) → 테스터에게 앱과 함께 테스트 노트가 제공됨
    • Mac apps 에 notariztion 을 제공 (앱 공증 을 제공함) 공증을 통해 앱이 변조되지 않았음을 알릴 수 있음
      또한 개발자가 의존하는 SDK와 프레임워크의 무결성을 신뢰 할 수 있도록 디지털 서명을 도입
  • 또한 프레임워크에 개인정보 manifests를 작성해서, 민감한 데이터를 사용하고 보호하는 방법을 정확하게 섬령 할 수 있음
  • 그외에 뭐 일반적인 배포 방법과 권장 설정이 번들로 제공된다, App Store Connect를 사용해 배포할 경우 빌드 상태에 대한 것들을 데스크톱 알림도 받을 수 있다. 등등 의 내용

💡 많이 적은 것 같은데 얼마 안되는군요.

전반적으로 코드를 작성하거나 협업할 때 가독성, 편의성적인 측면이 많이 향상된 것 같아요 (코드 컴플리션, 문서화) 코드 컴플리션 덕분에 여러모로 편리해지겠네요.

테스팅이나 디버깅 측면에서도 편리해졌구요.

특히 소스컨트롤 부분은 뭔가 터미널이나 다른 GUI툴 보다 Xcode에서 메인으로 해야하나 이런 생각도 들구요. 차차 생각해 보겠습니다.

다른 부분들도 변경점이 많지만 결국 메인기능은 macros 기능인 것 같네요(공부할 게 늘었다) 아직은 잘 모르겠지만 macros 관련 영상 보면서 다음에 정리해보겠습니다.