-
What's new in SwiftUI (feat. WWDC 2025)SwiftUI 2025. 6. 11. 18:30
안녕하세요. 그린입니다 🍏
WWDC 2025가 막 시작되었어요!
그래서, 첫번째 살펴볼 주제로 What's new in SwiftUI 입니다 🙋🏻
Overview
사실상 이번 WWDC 2025의 가장 핵심은 Liquid Glass가 아닐까 싶습니다.
모든 Apple 플랫폼에서 더 나은 디자인의 앱을 개발할 수 있도록 SwiftUI에서도 새로운 기능들이 소개되었어요.
Liquid Glass를 사용해 앱에 디자인을 입히는 방법들이 소개되죠.
더욱 향상된 프레임워크와 새로운 툴들을 이용해 성능을 향상시키고 웹 컨텐츠 및 서식 텍스트 편집과 같은 진보된 기능을 통합하는 방법도 살펴볼 수 있습니다.
또, 3차원 뷰 레이아웃을 포함해 더 많은 기능들도 다뤄볼 수 있어요.
한번 본격적으로 리캡해볼까요?
Make the new design shine
새 디자인과 함께 앱을 돋보이게 만드는 방법을 알아볼까요?
보시는것처럼 이제 Liquid Glass 디자인을 채택하여 기본 컴포넌트를 사용해도 앱 사이드바가 유리처럼 보이며 주변 컨텐츠를 반사시킵니다.
탭 바 막대도 마찬가지이며 그 외 도구 막대들도 대부분 Liquid Glass로 나타납니다.
또한 화면 전환중 이렇게 툴 바 막대가 변하는데요.
여기서 새로운 ToolbarSpacer라는 Spacer API를 사용해 조정됩니다.
이 툴 바 항목이 눈에 띄도록 Liquid Glass는 색조를 지원해줍니다.
이제 툴 바를 스크롤하면 겹쳐서 막대 뒤에 흐린 효과를 적용해줘요.
또한 이제 검색 기능이 아이폰 하단에 정렬되어 보다 사용자에게 인체공학적으로 쉽게 사용하도록 가능해집니다.
코드는 기존과 동일하게 제공하기에 검색창을 하단 정렬하기 위해서 코드 변경을 할 필요가 없습니다.
아이패드에서는 상단우측 코너에 존재하게 됩니다.
이제 검색을 좀 더 빠르게 할 수 있겠죠?
탭 바에서 해당 탭이 검색 기능을 갖게 하는 코드는 한줄이면 충분합니다.
이제 토글이나, 세그먼트 피커나 슬라이더 등이 좀 더 Liquid Glass가 적용되어 꺼지는 효과도 생겨났어요.
근데, 이전 코드나 직접 만든 컴포넌트에서 이런 Liquid Glass 효과를 어떻게 줄 수 있을까요?
glassEffect 모디파이어 한줄이면?
이렇게 바로 적용되죠. 딸깍 👍
조금 더 딥하게 알아보면서 고급 기능도 사용해보고 싶다면 Build a SwiftUI app with the new design 세션을 시청하세요!
Build a SwiftUI app with the new design - WWDC25 - Videos - Apple Developer
Explore the ways Liquid Glass transforms the look and feel of your app. Discover how this stunning new material enhances toolbars,...
developer.apple.com
iPadOS 26에선 사용자가 앱과 상호작용하는 것에 대한 재밌는 개선점들이 있습니다.
아래로 스와이프하면 이렇게 MacOS에서 메뉴 바 구축 시 사용한 명령 API로 자주 찾는 메뉴들을 구성할 수 있어요.
또한, 이제 아이패드에서 앱 사이즈를 자유롭게 줄여서 사용할 수 있습니다.
기존에 사용되던 UIRequiresFullScreen 프로퍼티 키는 이제 iPadOS 26에서 지원되지 않아요.
조금 더 이에 대해 살펴보려면 아래 세션을 참고하세요!
Elevate the design of your iPad app - WWDC25 - Videos - Apple Developer
Make your app look and feel great on iPadOS. Learn best practices for designing a responsive layout for resizable app windows. Get...
developer.apple.com
macOS에서도 컨텐츠 뷰 크기의 변경사항 때문에 크기를 재조정하는 경우, SwiftUI가 컨텐츠와 윈도우 사이 애니메이션을 동기화 시켜줍니다.
windowResizeAnchor로 컨텐츠의 여러 부분간 연속성을 유지하는데 도움을 줄 수 있죠.
Framework foundations
SwiftUI에서 진보된 성능과 사용 편의성 개선 및 새로운 컨텐츠 레이아웃까지 이제는 SwiftUI로 앱을 개발하기 아주 좋은 시점입니다.
프레임워크 성능의 향상 또한 애플 플랫폼 전반의 모든 앱에 이점을 가져다 줍니다.
SwiftUI 측면에서 여러 영역의 핵심 개선 사항들을 살펴볼까요?
보는것처럼 macOS에서 100,000 여 개의 리스트 로딩이 6배는 더 빨라졌어요.
리스트 업데이트도 최대 16배 빨라졌죠.
macOS 뿐 아니라 모든 플랫폼에서도 동일하게 개선되었어요.
사실 리스트를 사용하는데 있어 UIKit보다 많을 수록 성능이 떨어졌는데 이번부터 대폭 향상되지 않았을까 기대합니다 😃
스크롤링도 향상되었어요.
사용자가 앱에서 스크롤하면 시스템은 일정 시간 내에 SwiftUI가 다음 프레임을 렌더링할 수 있도록 합니다.
하지만 데드라인까지 모든 작업이 완료되지 않으면 프레임이 떨어지죠.
앱의 결함이나 지연으로 이어질 수 있죠.
이제는 SwiftUI 스케쥴링 성능이 아주 큰 폭으로 개선이 되었어요.
반응성을 향상시키고 SwiftUI가 다음 프레임에 대비하여 더 많은 작업을 처리하도록 해줍니다.
대체로 높은 프레임 속도로 빠르게 스크롤하는 동안 앱이 중단될 가능성을 줄여주죠 👍
LazyVStack과 같은 스크롤 뷰 내에 lazy한 컨텐츠를 넣을때 SwiftUI는 뷰가 나타나기 직전까지 로딩을 지연시킵니다.
또한 이제 중첩된 스크롤 뷰도 같은 동작을 합니다.
사진 캐러셀과 같은 뷰를 만드는데 아주 도움이 될것 같아요.
이제 성능 측정을 하려면 SwiftUI 전용 성능 툴을 사용할 수 있어요.
Instruments에서 확인하고 트래킹할 수 있죠.
조금 깊게 더 알아보려면 아래 세션을 참고하세요!
Optimize SwiftUI performance with Instruments - WWDC25 - Videos - Apple Developer
Discover the new SwiftUI instrument. We'll cover how SwiftUI updates views, how changes in your app's data affect those updates, and how...
developer.apple.com
어떠한 애니메이션을 만든다고 생각해보죠.
기존에는 이렇게 코드가 방대하고 많았어요.
전체 애니메이션 데이터 선언을 추가하는것부터 해서요.
근데 이제는, 새로운 애니메이션 매크로를 사용하면 됩니다.
사용자 지정 애니메이션 데이터 속성을 삭제하고 SwiftUI로 하여금 자동으로 합성하도록 만들 수 있어요.
AnimatableIgnored 매크로로 드로잉 방향처럼 애니메이션을 원치 않는 속성은 제외할 수 있어요.
레이아웃은 이제 3차원으로 작업합니다.
SwiftUI에서 이미 익숙한 모디파이어에 새로운 3D 기반이 추가되었어요.
VisionOS에서 아주 유용하게 사용될것 같아요 🕶️
관련된 VisionOS에서의 공간 레이아웃 활용을 보시려면 아래 세션을 참고하세요!
Meet SwiftUI spatial layout - WWDC25 - Videos - Apple Developer
Explore new tools for building spatial experiences using SwiftUI. Learn the basics of 3D SwiftUI views on visionOS, customize existing...
developer.apple.com
특히 SwiftUI에선 Volumes과 Scenes가 VisionOS와 연관되어 많은 개선 사항이 생겼어요.
이건 VisionOS 파트에서 더 다뤄보면 좋을것 같네요 😃
SwiftUI across the system
이제는 앱은 시스템 전반에 걸쳐서 SwiftUI를 활용할 수 있어요.
씬에 대한 개선사항과 위젯 및 컨트롤의 새로운 API 덕분에 앱이 플랫폼과 정말 잘 어우러집니다.
특히 SwiftUI는 다른 프레임워크와 훨씬 더 잘 작동합니다.
씬은 앱의 뷰에 대한 루트 컨테이너죠.
인터페이스이 분리된 부분을 나타내죠.
이번부터는 Scene bridging을 통해서 UIKit과 AppKit 라이프사이클 앱에서 SwiftUI Scene 요청이 가능합니다.
앱은 이를 통해서 SwiftUI 전용 Scene을 열거나 UIKit, AppKit 코드에서 바로 SwiftUI의 기능 사용이 가능하죠.
예시처럼 Mac 앱에서 새로운 Scene을 사용해 비전 프로에서 스테레오 컨텐츠를 렌더링 할 수 있어요.
또한, 맥 앱은 호버 효과와 같은 입력 이벤트를 사용할 수도 있죠.
이에 대해 관심이 있다면 아래 세션을 참고해주세요!
What’s new in Metal rendering for immersive apps - WWDC25 - Videos - Apple Developer
Discover the latest improvements in Metal rendering for immersive apps with Compositor Services. Learn how to add hover effects to...
developer.apple.com
올해 SwiftUI에선 AppKit과의 상호 작용에서 큰 개선사항들이 있습니다.
Scene bridging외에도 SwiftUI 뷰가 있는 시트도 표현할 수 있죠.
또한, NSGestureRecognizerRepresentable로 AppKit 제스쳐를 SwiftUI로 연결할 수 있어요.
그리고 Interface Builder에서 NSHostingView를 사용할 수도 있죠.
또한, SwiftUI와 RealityKit의 상호 작용에서도 더 많은 기능을 제공합니다.
RealityKit의 엔티티는 이제 Observable을 준수하여 SwiftUI 뷰의 변경사항을 더 쉽게 관찰할 수 있도록 합니다.
개선된 좌표 전환 API도 있고 RealityKit에서 프레젠테이션에 향상된 지원을 바로 제공해주죠.
새 컴포넌트를 사용하면 이처럼 SwiftUI 팝오버를 RealityKit Entity에서 바로 표시할 수가 있어요.
SwiftUI와 RealityKit의 상호 기능에 대해 더 많이 알아보고 싶다면 아래 세션을 참고하세요!
Better together: SwiftUI and RealityKit - WWDC25 - Videos - Apple Developer
Discover how to seamlessly blend SwiftUI and RealityKit in visionOS 26. We'll explore enhancements to Model3D, including animation and...
developer.apple.com
또 SwiftUI하면 위젯을 빼놓을 수 없죠.
이번부터 위젯을 VisionOS와 CarPlay에서 사용할 수 있어요.
이런 코드 한줄이면 아래와 같이 사용자 거리에 따라 다른 장면을 보여주는것이 가능합니다.
멀리 있을때 요렇게 보이다가!?
가까이가면 사진으로 전환되어 표현할 수 있죠.
위젯 관심 있으시면 아래 세션에서 더 딥하게 알아봐요!
What’s new in widgets - WWDC25 - Videos - Apple Developer
WidgetKit elevates your app with updates to widgets, Live Activities, and controls. Learn how to bring your widgets to visionOS, take...
developer.apple.com
Expand SwiftUI views
이번에 SwiftUI 뷰 기능이 확장되었습니다.
리치 텍스트 편집부터 3D 차트까지 기존 SwiftUI 기능과 디자인이 더 발전되었어요.
그리고 개인적으로 가장 큰 지원!! 😃
WebView 지원이 SwiftUI에서 직접 됩니다.
그전에는 UIKit을 사용하거나 외부 라이브러리를 이용했다면 이제 그럴 필요가 없죠.
이거 하나면 올해 SwiftUI 발전 끝이라 할정도로 느껴지네요.
사파리와 마찬가지로 WebKit으로 구성됩니다.
페이지 커스텀하고 여러가지 기능들도 사용할 수 있어요.
또한, WebKit이 SwiftUI를 지원하는 방법도 다양해졌어요.
사용자 에이전트 커스텀이나 JS 호출, 커스텀 URL 스킴 등 다양하죠.
좀 더 딥하게는 아래 세션에서 확인해보죠!
Meet WebKit for SwiftUI - WWDC25 - Videos - Apple Developer
Discover how you can use WebKit to effortlessly integrate web content into your SwiftUI apps. Learn how to load and display web content,...
developer.apple.com
3D 차트도 SwiftUI로 쉽게 구현할 수 있습니다.
Chart3D와 함께라면 쉽죠 ☺️
이에 대해서는 아래 세션에서 자세히 다룹니다.
Bring Swift Charts to the third dimension - WWDC25 - Videos - Apple Developer
Learn how to bring your 2D Swift Charts to the third dimension with Chart3D and visualize your data sets from completely new...
developer.apple.com
또한, 맥 앱에서 드래그 앤 드롭을 지원합니다.
드래그가 가능한 모디파이어의 커스텀을 사용해 여러 항목 주변으로 드래그할 수 있어요.
또한, 새로운 DragConfiguration API로 앱에서 지원되는 드래그 작업을 사용자화 할 수 있어요.
새로운 onDragSessionUpdated 모디파이어로 이벤트를 관찰합니다.
드래그 시 드래그 프리뷰가 어떻게 보이는지 커스텀화 하려면 dragPreviewsFormation을 사용하면 좋아요.
stack으로 지정했다면 아래와 같이 여러개 선택 시 보이게 됩니다.
이것들은 모두 SwiftUI에서 손쉽게 구현할 수 있죠.
그리고 또 하나 개인적으로 체감되는게 있는데요!
바로 TextView에서 이제 AttributedString도 지원됩니다.
아주 좋네요 🚀
이 모든건 SwiftUI로 아주 쉽게 가능하다는게 항상 핵심입니다 🍏
Conclusion
이번 WWDC 2025는 SwiftUI에서 엄청나게 큰 변화가 없는줄 알았는데 생각보다 가려운 부분들을 해소해줬다고 느껴져요.
물론, 지금은 간략하게 업데이트 사항들만 요약하여 본것이기에 이제 더 세부적인 세션을 보면서 정리해봐야겠습니다 ☺️
References
What’s new in SwiftUI - WWDC25 - Videos - Apple Developer
Learn what's new in SwiftUI to build great apps for any Apple platform. We'll explore how to give your app a brand new look and feel with...
developer.apple.com
'SwiftUI' 카테고리의 다른 글
Marquee (0) 2025.03.18 DynamicTypeSize로 접근성 높이기 (feat. SwiftUI) (2) 2025.01.24 SwiftUI - ScrollBounceBehavior (3) 2025.01.20 SwiftUI 스크롤 뷰의 임계값 삽질하기 (3) 2025.01.16 SwiftUI에서 UUID를 활용한 뷰 갱신 업데이트 (2) 2025.01.09