기사 목록
119개의 글이 있습니다
SwiftUI 툴바 항목의 표시와 동작 제어하기
Taking control of toolbar items in SwiftUI
- visibilityPriority로 툴바 항목의 우선순위를 지정하면 공간이 부족할 때 SwiftUI가 낮은 우선순위 항목을 먼저 접도록 할 수 있다.
- ToolbarOverflowMenu는 항목 그룹을 모든 플랫폼에서 기본적으로 접힌 상태로 표시하며, topBarPinnedTrailing은 항목을 상단 바 오른쪽에 고정한다.
- toolbarMinimizeBehavior를 사용하면 스크롤에 따라 내비게이션 바, 탭 바, 하단 바, 윈도 바의 최소화 동작을 지정할 수 있다.
Apple 커널의 Swift 도입 분석: KernelKit과 Embedded Swift의 등장
Apple Internals: Swift in the Kernel - by Josh Maine
- Apple이 메모리 안전한 커널 구축을 위해 'KernelKit'이라는 명칭으로 Swift를 운영체제 커널 계층에 도입하기 시작했다.
- macOS 27 및 iOS 27 커널 캐시 분석 결과, Embedded Swift 런타임이 포함된 새로운 Mach-O 플랫폼 ID(25~30)가 확인되었다.
- 현재 Swift 런타임은 커널 내에 로드되어 있으나, 기존 C/C++ 기반 XNU 코어와 직접적인 연결 없이 유휴 상태로 존재한다.
List 밖에서도 SwiftUI 스와이프 액션 사용하기
Swipe actions outside of List in SwiftUI
- swipeActionsContainer()를 스와이프 액션을 적용할 항목이 속한 컨테이너에 붙이면 List가 아닌 ScrollView와 LazyVStack에서도 swipeActions를 사용할 수 있다.
- 이 컨테이너 modifier는 한 번에 한 행의 액션만 열리게 하고, 스크롤하거나 활성 행 바깥을 탭하면 열린 액션을 닫는다.
- List는 이 동작을 자동으로 제공하므로 별도 modifier가 필요하지 않으며, FlowLayout 같은 사용자 정의 레이아웃에는 직접 추가해야 한다.
Apple, TrueType 힌팅 인터프리터를 Swift로 재작성
Swift at Apple: Migrating the TrueType Hinting Interpreter
- Apple은 신뢰할 수 없는 폰트 입력을 처리하는 TrueType 힌팅 인터프리터를 C에서 메모리 안전한 Swift로 옮기고, C 구현과 픽셀 단위로 같은 렌더링 결과를 유지했다.
- Swift 구현은 평균적으로 기존 C 구현보다 13% 빠르며, 단위 테스트에서 두 구현 모두 99.7% 코드 커버리지를 달성하고 대규모 PDF 코퍼스로 렌더링 호환성을 확인했다.
- 성능 개선에는 비복사 타입과 Span 사용, C 구조체를 복사하지 않는 projection type, 불필요한 할당 제거, 제네릭 특수화와 인라이닝이 활용됐다.
명령줄에서 Xcode 시뮬레이터 런타임 설치하기
Installing simulator runtimes from the command line
- Xcode에서 iOS 런타임 다운로드가 멈추면 `xcodebuild -downloadPlatform iOS -architectureVariant arm64`로 arm64 런타임을 지정해 설치할 수 있다.
- `xcodebuild`는 명령줄에서 선택된 Xcode 버전을 사용하므로, `xcode-select -p`로 현재 경로를 확인하고 필요하면 `xcode-select -s <path>`로 변경해야 한다.
- 여러 플랫폼 런타임을 한 번에 내려받으려면 `xcodebuild -downloadAllPlatforms -architectureVariant arm64`를 사용할 수 있으며, 원문은 명령을 sudo로 실행하라고 안내한다.
WWDC26 이후 SwiftUI의 주요 변경 사항
What is new in SwiftUI after WWDC26
- SwiftUI는 swipeActions와 드래그 재정렬을 List에 한정하지 않고 ScrollView, lazy stack, 사용자 정의 레이아웃에서도 지원하도록 컨테이너 API를 확장했다.
- AsyncImage 캐싱과 세밀해진 툴바 표시 제어, cross-fade 내비게이션 전환이 추가돼 화면 구성과 콘텐츠 표시를 조정할 수 있는 선택지가 늘었다.
- Liquid Glass 변경 사항은 SwiftUI가 자동 적용하며, 문서 기반 앱의 외관과 성능도 개선됐다. Xcode에는 SwiftUI 에이전트 코딩용 skill이 추가됐다.
Swift 네트워킹 워킹그룹 출범
Announcing the Networking Workgroup
- Swift 네트워킹 워킹그룹은 네트워킹 라이브러리와 프로토콜, API의 발전 방향을 조율하고 생태계 전반의 공통 기반을 마련한다.
- 공유 I/O부터 프로토콜 구현, 클라이언트·서버 API까지 이어지는 계층형 구조와 구현체에 종속되지 않는 공통 타입을 정의하는 것이 주요 과제다.
- HTTP API를 구조적 동시성 기반으로 통합하고 TLS, HTTP, QUIC, WebSockets 등의 공통 구현 발전을 이끌며, 참여와 회의는 공개된다.
Swift와 WebAssembly로 브라우저에 확장된 Goodnotes
What's new in Swift: May 2026 Edition
- Goodnotes는 iOS 앱을 구동하는 것과 동일한 Swift 코드를 WebAssembly를 통해 웹 브라우저에서도 실행한다고 밝혔다.
- 브라우저에서도 iOS 앱과 동일한 잉크 렌더링과 필기 경험을 제공하는 것이 이번 사례의 핵심이다.
- Goodnotes는 10년 넘게 iPad 필기 앱을 제공해 왔으며, 2022년 Apple 올해의 iPad 앱으로 선정된 이력이 있다.
WWDC26에서 바라는 Foundation Models와 SwiftUI의 변화
WWDC26 wishes
- Foundation Models에 이미지 입력을 추가하면 기기 내 이미지 분석으로 음식의 영양 정보 추정이나 청구서 처리 같은 기능을 만들 수 있다고 제안한다.
- 사용자 정의 Layout을 LazyVStack처럼 지연 처리할 수 있는 API가 필요하며, 구현 방식을 개발자가 제어하거나 프레임워크가 자동 처리하는 두 방향을 제시한다.
- SwiftUI에 UITableView·UICollectionView와 같은 뷰 재사용 기능이 없다는 점을 지적하며, 대규모 컬렉션을 위해 UIKit으로 내려가지 않고 재활용할 방법을 희망한다.
Swift와 WebAssembly로 Goodnotes를 웹에 구현한 방법
Bringing Goodnotes to the web with Swift and WebAssembly
- Goodnotes는 iOS 앱에 쓰던 Swift 코드의 상당 부분을 WebAssembly 웹 앱과 공유해 필기 렌더링과 문서 처리 동작을 플랫폼 간 일관되게 유지했다.
- WASI Threads, Web Workers, SharedArrayBuffer를 이용한 병렬 처리로 필기 인식과 문서 색인 작업을 백그라운드로 옮겼으며, 복잡한 작업 중 INP가 2배 이상 개선됐다.
- WebAssembly에서는 libdispatch 사용이 불가능하고 wasm32의 Int가 32비트인 점을 고려해야 하며, 멀티스레딩에는 브라우저의 Cross-Origin Isolation 요구사항이 따른다.