목록으로
'언젠가 읽기' 컨텐츠는 논문이나 영문 컨텐츠 등 언젠가 읽으려고 즐겨찾기 하고선 읽지 않고 계속 미룰만한 컨텐츠를 읽고 요약하거나 소개합니다.

iOS 18에서의 Swift 및 SwiftUI 활용

언젠가 읽기
2025. 2. 14. PM 4:00:24

개요

iOS 18에서는 애플이 Swift와 SwiftUI를 어떻게 활용하고 있는지를 분석했습니다. 이번 버전에서는 기존 iOS 버전보다 더 많은 바이너리가 포함되었으며, Swift와 SwiftUI의 사용이 지속적으로 증가하고 있습니다. 이 요약에서는 iOS 18의 바이너리 수, 사용된 프로그래밍 언어, Swift 사용 앱의 수, SwiftUI와 UIKit의 사용 비율 등에 대해 자세히 설명합니다.

바이너리 수

iOS 18은 이전 버전인 iOS 17의 6,030개에서 6,800개로 총 7,700개의 새로운 바이너리가 추가되었습니다. 바이너리는 애플리케이션과 시스템의 핵심 구성 요소로, 다양한 기능을 수행하는 실행 파일을 의미합니다. 바이너리 수의 증가는 새로운 기능과 애플리케이션의 추가를 반영합니다.

Swift와 SwiftUI의 사용

Swift는 애플이 개발한 프로그래밍 언어로, 간결하고 안전한 코드 작성을 가능하게 합니다. SwiftUI는 Swift로 구축된 사용자 인터페이스 프레임워크로, 보다 직관적이고 효율적인 UI 개발을 지원합니다. iOS 18에서는 Swift와 SwiftUI의 사용이 더욱 확대되었습니다.

SwiftUI를 채택한 주요 애플리케이션

  • 새로운 비밀번호 앱 : 사용자 비밀번호를 관리하기 위한 애플리케이션으로, SwiftUI를 사용하여 직관적인 인터페이스를 제공합니다.
  • Siri.app : Siri의 인터페이스가 SwiftUI로 재작성되어 사용자 경험이 향상되었습니다.
  • 계산기 앱 : 전면적인 개편을 통해 SwiftUI를 도입, 사용자 친화적인 디자인을 구현했습니다.
  • Journal 앱 : iOS 17.2에서 도입된 새로운 일기 작성 애플리케이션으로, SwiftUI를 기반으로 개발되었습니다.

새로운 기술과 프레임워크

  • Apple Intelligence : ProactiveSummarization과 SummarizationKit 프레임워크를 포함하여 Swift를 기반으로 한 지능형 기능을 제공합니다.
  • PrivateCloudCompute : Apple Intelligence를 위한 프레임워크로, 일부 오픈 소스 컴포넌트를 포함하고 있습니다.
  • MarketplaceKit : 대체 애플리케이션 마켓플레이스를 생성하기 위한 프레임워크입니다.
  • LimitedLibraryPickerViewService : 사용자의 연락처 데이터를 접근하기 위한 서비스로, Swift로 개발되었습니다.
또한, 카메라 앱과 바코드 스캐너, CoreML, CoreNFC, CoreGraphics, CoreText, LinkPresentation, DoNotDisturb와 같은 여러 프레임워크도 Swift를 사용하여 개발되었습니다. iOS 18에는 총 592개의 바이너리가 SwiftUI를 사용하고 있으며, 이는 전체 애플리케이션 중 상당한 비율을 차지합니다.

분석 방법론

이번 분석에서는 커널 위의 모든 iOS 구성 요소를 대상으로 했으며, XNU 커널과 저수준 펌웨어는 제외되었습니다. dyld 공유 캐시에 위치한 프레임워크를 기준으로 분석을 진행했습니다. 앱이 여러 프로그래밍 언어를 혼합하여 하나의 바이너리를 생성할 수 있기 때문에, Swift 코드가 단 한 줄이라도 포함된 앱은 Swift를 사용하는 것으로 간주했습니다. Objective-C++로 구성된 바이너리는 Objective-C와 C++를 사용하는 것으로 카운트되었습니다. 다만, 소스 코드에 접근할 수 없어 컴파일 아티팩트에 의존한 분석에는 한계가 있습니다.

참고 자료

  • Apple’s use of AppKit, Mac Catalyst and SwiftUI in macOS
  • Evolution of the programming languages from iPhone OS 1.0 to iOS 14
  • Apple’s use of Swift in iOS 10.1 and macOS 10.12