WWDC 2025 - UIKit 앱의 유연성 확보 전략
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
앱 개발
대상자
iOS 앱 개발자 (중급~고급), UIKit 기반 앱 설계자
핵심 요약
- UIScene 생명주기 강제 적용 - iOS 26 SDK 이후
UIScene
생명주기 사용이 필수 - UISplitViewController 업데이트 - 상호작용형 컬럼 리사이징, 적응형 레이아웃, 인스펙터 컬럼 지원
- 적응형 UI 패턴 -
layout guides
,safe area
준수,window controls
처리 - 성능 최적화 -
isInteractivelyResizing
활용, 비용이 높은 UI 업데이트 지연
섹션별 세부 요약
1. Scenes: 유연한 앱의 핵심
- 독립 상태 관리 - 각 Scene이 UI 상태를 별도로 저장 및 복원
- 외부 데이터 처리 - 딥링크 및 URL 처리 내장 지원
- 맥락 인식 - 화면/윈도우 기하학 정보 제공
- 다중 Scene 지원 - 메시징 앱의 "작성 Scene"과 같은 별도 경험 구현
2. UISplitViewController 업데이트
- 상호작용형 컬럼 리사이징 - 분리자 드래그 가능, 포인터 모양 리사이징 방향 표시
- 적응형 레이아웃 인식 -
splitViewControllerLayoutEnvironment
trait으로 확장/수축 상태 판단 - 인스펙터 컬럼 지원 - 추가 정보 표시, 확장 시 끝부분에, 수축 시 시트 형태로 자동 조정
3. UITabBarController의 플랫폼 적응
- iPhone - 하단 탭바
- Mac - 툴바 내부 또는 사이드바
- Apple Vision Pro - 앞쪽 가장자리에 장식 요소로 표시
- iPad - 상단에 네비게이션 제어와 함께, 사이드바로 전환 가능
4. Safe Area 및 레이아웃 가이드
- Safe Area 존중 - 네비게이션 바, 동적 섬 등 시스템 UI 피하는 영역
- 레이아웃 가이드 활용 - 표준 마진 적용,
safe area
에서 자동 내부 마진 제공 - 배경 확장 -
safe area
외부로 확장 가능, 콘텐츠는 내부에 유지
5. 윈도우 제어 및 인터페이스 방향 관리
- 윈도우 제어 - macOS 스타일의 닫기, 최소화, 배열 제어 추가
- 인터페이스 방향 제어 - 게임 등에 유리한 고정 방향 설정 (
prefersInterfaceOrientationLocked
활용) - 성능 최적화 -
isInteractivelyResizing
로 리사이징 중 불필요한 재렌더링 방지
6. 사용되지 않는 기능 및 SDK 변경
UIRequiresFullscreen
키 - 향후 무시됨, 앱에서 제거 권장- iOS 26 SDK - 자동 스케일링/레터박싱 비활성화, 새로운 화면 크기 네이티브 지원 필요
결론
- UIScene 생명주기 강제 적용 및 UISplitViewController/UITabBarController 활용을 통해 플랫폼 간 유연성 확보
safe area
관리와isInteractivelyResizing
을 통해 성능 최적화- 기존
UIRequiresFullscreen
제거 및 iOS 26 SDK 기반의 화면 크기 네이티브 처리로 미래 호환성 확보