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 기반의 화면 크기 네이티브 처리로 미래 호환성 확보