ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • What's new in Xcode 15 (feat. WWDC 2023)
    Xcode 2023. 6. 7. 11:08

    안녕하세요. 그린입니다🍏

    이번 포스팅에서는 이제 WWDC 2023에서 쏟아져 나오는 양분을 섭취해볼까해요!

    첫번째 주제는 Xcode 15에서 무엇들이 생겨나고 달라졌는지 알아보겠습니다.

     

    우선 현재는 Xcode 15가 정식적으로 App Store에 올라오지 않았기에 Beta로 다운해줘야 합니다.

    아래 다운로드 페이지에 방문하여 Xcode 15 베타를 직접 다운 받으면 됩니다.

    https://developer.apple.com/download/all/

     

    로그인 - Apple

     

    idmsa.apple.com

    예전에는 해당 페이지에서 설치 후 플랫폼을 골랐던것 같은데 이번부터는 다운로드 페이지에서 플랫폼을 먼저 선택할수가 있군요😲

     

    그럼 어떤것들이 변경되었는지 WWDC 2023의 What's New in Xcode 15를 시청하며 알아보겠습니다🕺🏻

     

    Editing

    소스 편집기의 새로운 기능들이 소개되었습니다.

    1️⃣ Code completion

    코드를 작성할때 자동완성 기능이 더 강해졌어요!

    실제로 파일을 생성하고 해당 구조체를 만들때 네이밍을 추천해주는데 파일명과 같도록 우선 추천해줍니다.

    또한 SwiftUI의 View로 구조체를 만든다면 View 프로토콜만 채택해도 자동으로 body까지 생성해주는 똑똑함이 증가됐네요!

    그리고 모디파이어 등 필요한 메서드를 호출하여 인자가 많을때 필요한 이니셜라이저를 쉽게 보고 가져올 수 있도록 강화되었는데요.

    아래와 같이 frame의 필요한 이니셜라이저를 가져와야할때 .fr까지만 입력하고 오른쪽 화살표를 누르면 순서대로 나열되고 쉽게 선택할 수 있습니다.

     

    컨텍스트 인식을 아주아주 잘하는 모습을 보여요!

    심지어 작성중인 코드에 대해서도 인식하여 더 나은 기능을 추천합니다.

    즉, Text에 대해서는 .만 찍으면 font, bold 등의 모디파이어를 제안하고 VStack에서는 padding 등을 제안합니다.

    (그런데 이건 이전부터 있었는데..!?)

     

    2️⃣ Asset catalogs

    에셋 카탈로그에서도 코드의 자동완성이 됩니다.

    에셋에 이미지를 넣고 SwiftUI에서 뷰를 그릴때 Image(.image)로 해당 에셋에 들어있는 친구들을 불러올 수 있죠.

    아주 편리하고 좋아요!

    그럼 생각이 드는게 이제 R.Swift나 SwiftGen을 사용하는 이유중 하나였던 에셋 리소스에 대한 자동완성 기능들도 있었는데 점차 쓸 이유가 크게 없어지지 않을까 생각이 드네요..?

    즉, 런타임 시 누락되거나 하여 런타임 에러가 나는걸 방지할 수 있더 더욱 진보된 안전성을 제공해줍니다.

     

    3️⃣ Localization

    지역화에 대해서도 String Catalogs가 한곳으로 모아 중앙에서 검토 및 업데이트하게 제공해줍니다.

    Edit > Convert to string Catalog를 선택해 프로젝트를 변환할 수 있습니다.

    그럼 모든 스토리보드, .strings, .stringsdict 등 마이그레이션할 수 있는 파일을 전부 보여주는 시트가 나타납니다.

    한곳에서 단일 편집기를 이용해 쉽게 변환하거나 검토 수정할 수 있습니다.

    또한 변환이 된 진행률이나 주석 등 제공해주는 기능들이 더 많아졌습니다.

     

    4️⃣ Documentation

    코드에 대한 문서화도 더 가독성이 좋아졌으며 코드 작성중에도 Assitant에서 쉽게 확인할 수 있도록 메뉴가 생겼습니다.

    Editor > Assistant > Documentation Preview를 선택하면 아래와 같이 API 문서를 볼 수 있습니다.

    스크린샷도 넣고 더 문서 작성을 열정적으로 할 수 있겠네요!

     

    5️⃣ Swift macros

    이번 WWDC 2023에서 새로운 기능중 또 손꼽히는 강력한 기능이 바로 이 매크로입니다.

    매크로 SDK는 Swift 패키지의 일부입니다.

    실제로 이번 WWDC에서는 @Observale, #Predicate, @Model이 소개되는데 이것들 또한 매크로의 기능을 활용했다고 합니다.

    또한, 커스텀하게 매크로를 만들고 공유할 수 있는데요.

    ommand+shift+A를 통해 아래와 같이 매크로를 만들 수 있는 창을 볼 수 있습니다.

    매크로는 일반적인 Swift 언어처럼 사용됩니다.

    요 부분에 대해 더 깊게 이해하려면 Expand on Swift macros 세션을 보면 좋겠네요!

     

    6️⃣ Previews

    매크로 기능의 도움으로 이제 프리뷰 API가 더욱 간단해졌어요!

    #Preview {
      ContentView()
    }
    
    #Preview("Second View") {
      ContentView()
    }

    요렇게 프리뷰끼리도 여러개 놓을 수 있고 구분도 지어줄 수 있습니다.

    너무 편리해 너무너무ㅠㅠ..

    심지어 UIKit, AppKit에 대한 프리뷰도 동일하게 지원해줘요.

    #Preview {
      let controller = ContentController()
      // 구성
      ...
      return controller
    }

    위젯또한 마찬가지입니다.

     

    자 이렇게 Editing 부분에 대해 알아봤고 이어서 Navigation 부분에 대해 보겠습니다🕺🏻

     

    Navigating

    1️⃣ Bookmark

    파일과 코드가 많아질수록 원하는 위치를 찾아가기 힘들었는데 이제 북마크 기능이 생겼습니다.

    아주 쉽게 코드에서 원하는 위치를 우클릭하여 북마크에 등록합니다.

    그럼 요렇게 좌측 네비게이션 부분에서 북마크라는 탭에 추가됩니다.

    더군다나 설명도 입력할 수 있고 그룹화도 시킬 수 있으며 자유자재로 활용할 수 있습니다.

    또한 이런식으로 서칭한 결과를 북마크에 추가할 수도 있죠.

     

    이렇게 더 편리한 탐색이 가능해졌네요! 이제 이어서 개발의 또 다른 중요한 부분인 공유 파트를 보겠습니다.

     

    Sharing

    동료와 공유할 커밋을 만들 때 변경 사항들을 함께 가져오는것은 매우 중요합니다.

    1️⃣ Source control navigator

    Xcode 15에서는 모든 변경 사항을 검토할 수 있는 새로운 탐색기와 커밋 편집기가 도입되었어요.

    요렇게 이제는 단일 스크롤로 모든 수정 사항을 한번에 검토할 수 있어요.

    기존에는 개별적인 파일에서 일일히 확인해야 했구요!

    검토하면서 만약 편집한다면 이렇게 즉시 unstaged 단계로 표시됩니다.

    또한 파일 옆에 단계적인 상태도 표시되구요ㅎㅎ

     

    수정이되고 마무리 단계에서는 이렇게 커밋 메시지 박스에 입력하고 커밋 및 푸쉬도 할 수 있어요.

     

    이제 테스트 부분을 한번 살펴볼까요?

     

    Testing

    테스트 결과를 실시간으로 실행하거나 보고할 때 Xcode에서 45%의 속도가 향상되었습니다.

    또한 아래처럼 테스트 실행에 대해 높은 수준으로 요약을 해줍니다.

    어떤 부분에서 테스트가 깨졌는지도 Insight 탭에서 쉽게 확인할 수 있어요.

    이제는 어느 흐름으로 앱이 진행되어 유저의 관점에서 실패했는지 쉽게 타임라인을 따라가볼 수 있을 정도로 친절해졌어요.

     

    자 다음으로 디버깅 부분을 살펴보겠습니다.

     

    Debugging

    디버깅은 Xcode로의 OSLog 통합을 시작으로 몇가지 크게 개선되었어요.

    OSLog는 런타임 정보를 캡처하기 위한 아주 훌륭한 도구입니다.

    로그 출력을 체계적으로 유지하도록 구조화되고 커스텀한 로깅 메커니즘을 제공합니다.

    Xcode 15에서는 하위 시스템 범주 및 심각도와 같은 로그 데이터에 대한 복잡한 필터링을 수행하는 기능을 포함해 OSLog에 대한 전체 지원을 도입했습니다.

    특히, 로그 표시가 깔끔해지고 로그 콘텐츠에 초점을 맞춥니다.

    출력에 그치는것이 아닌 심각도에 따라 배경색을 가짐으로 더욱 파악하기가 용이합니다.

    메타 데이터는 기본적으로 숨겨져있고 보고 싶은 필드만 선택할 수 있습니다.

    이로인해 검색 범위를 줄이고 좀 더 편리하게 디버깅을 할 수 있죠.

     

    마지막으로 배포에 대해 알아보겠습니다🙋🏻

     

    Distributing

    Xcode 15에서는 배포에 대해 더 쉽고 안전한 방법으로 개선됩니다.

    1️⃣ Xcode Cloud

    앱을 배포하는 하나의 좋은 방법입니다.

    빌드 버전 관리, 앱 서명, 배포 프로필 등을 자동으로 관리해주죠.

    이번 Xcode 15부터는 여기에 두가지를 더 추가해줬습니다.

     

    첫번째로, TestFlight 테스트 세부 정보입니다.

    테스트 세부 정보를 이렇게 지정할 수 있습니다.

    즉, 앱 바로 옆에 테스터에게 표시되죠.

     

    둘째로, Mac 앱에 대한 공증을 지원해줍니다.

    워크플로우에 공증 사후 작업을 추가하기만 하면 Xcode Cloud가 알아서 나머지 작업을 수행하죠.

    빌드 완료 > 앱 자동 공증 > 스에티플 > 다운로드할 준비!

     

    앱 공증은 사용자에게 앱이 변조되지 않았음을 확인시켜주는 아주 중요한 항목입니다.

    다만 사용하는 SDK들에 대해 무결성을 신뢰할 수 있는것도 그만큼 중요해지죠.

    이러한 보증을 하기 위해 Xcode는 XCFrameworks에 대한 서명 검증을 도입합니다.

    제작자가 프레임워크의 콘텐츠에 디지털 서명을 하면 Xcode에선 서명을 바로 확인할 수 있습니다.

    프레임워크 인스펙터에 이러한 새로운 서명 조각이 존재하게 됩니다.

     

    이처럼 더 다양하게 앱 배포의 안정성을 높여줄 수 있습니다.

     

    2️⃣ Xcode distribution

    Xcode 15에서는 이제 테스트 플라이트 내부 테스트 배포 옵션을 지원해줍니다.

    내부 빌드는 팀에서만 사용하기에 실수로 사용자에게 릴리스할 수 없죠.

    간단히 TestFlight internal testing only 옵션을 선택하기만 하면 됩니다.

    아주 쉽게 테스트 옵션을 선택하고 배포를 클릭하면 끝😁

     

    마무리

    자 이렇게 Xcode 15에 대해 새로 나온 기능 및 업데이트 건에 대해 알아봤습니다.

    매년 WWDC만 하면 공부할게 너무 넘쳐나네요!

     

    참고 자료

    https://developer.apple.com/videos/play/wwdc2023/10165/

     

    What's new in Xcode 15 - WWDC23 - Videos - Apple Developer

    Discover the latest productivity and performance improvements in Xcode 15. Explore enhancements to code completion and Xcode Previews,...

    developer.apple.com

Designed by Tistory.