Two years ago I measured Apple’s use of Swift in iOS 10.1 and last year I counted how many applications were using Swift in iOS 11.1.

This year I’m analyzing iOS 12, released by Apple this month.

  • Easily preview Mermaid diagrams
  • Live update when editing in your preferred editor
  • Capture screenshots with customizable margins
  • Create PNG from the Terminal
  • Free download on the Mac App Store
MarkChart

Methodology

The methodology and tools used for this article have been detailed in the previous posts. If you are interested, please refer to Apple’s use of Swift in iOS 10.1 and macOS 10.12.

Apple’s use of Swift in iOS 12.0

Below is the list of all binaries in iOS 12.0 that use Swift. Note that these binaries might contain a single line of Swift code and are not necessarily entirely written in Swift. I used iOS 12.0 (16A366) for iPhone X.

/Applications/ActivityMessagesApp.app/PlugIns/ActivityMessagesExtension.appex/ActivityMessagesExtension
/Applications/AppStore.app/AppStore
/Applications/AppStore.app/Frameworks/AppStoreKit.framework/AppStoreKit
/Applications/AppStore.app/Frameworks/JetEngine.framework/JetEngine
/Applications/AppStore.app/PlugIns/AppInstallExtension.appex/AppInstallExtension
/Applications/AppStore.app/PlugIns/BridgeStoreExtension.appex/BridgeStoreExtension
/Applications/AppStore.app/PlugIns/ProductPageExtension.appex/ProductPageExtension
/Applications/BusinessExtensionsWrapper.app/PlugIns/Business.appex/Business
/Applications/ContinuityCamera.app/ContinuityCamera
/Applications/Diagnostics.app/Diagnostics
/Applications/FTMInternal-4.app/FTMInternal-4
/Applications/SharingViewService.app/SharingViewService
/private/var/staged_system_apps/Books.app/Frameworks/AppAnalytics.framework/AppAnalytics
/private/var/staged_system_apps/Calculator.app/Calculator
/private/var/staged_system_apps/Files.app/Files
/private/var/staged_system_apps/Files.app/PlugIns/RecentsWidget.appex/RecentsWidget
/private/var/staged_system_apps/Measure.app/Measure
/private/var/staged_system_apps/Music.app/Music
/private/var/staged_system_apps/Music.app/PlugIns/MusicMessagesApp.appex/MusicMessagesApp
/private/var/staged_system_apps/Music.app/PlugIns/PlaybackIntent.appex/PlaybackIntent
/private/var/staged_system_apps/Music.app/PlugIns/RecentlyPlayedTodayExtension.appex/RecentlyPlayedTodayExtension
/private/var/staged_system_apps/Podcasts.app/Frameworks/AppStoreKit.framework/AppStoreKit
/private/var/staged_system_apps/Podcasts.app/Frameworks/NowPlayingUI.framework/NowPlayingUI
/private/var/staged_system_apps/Podcasts.app/Frameworks/PodcastsUI.framework/PodcastsUI
/private/var/staged_system_apps/Podcasts.app/Podcasts
/private/var/staged_system_apps/Stocks.app/PlugIns/StocksToday.appex/StocksToday
/private/var/staged_system_apps/Stocks.app/Stocks
/System/Library/Accounts/DataclassOwners/StocksDataclassOwner.bundle/StocksDataclassOwner
/System/Library/Accounts/Notification/DonationAccountWatcher.bundle/DonationAccountWatcher
/System/Library/DistributedEvaluation/Plugins/StocksDES.desPlugin/StocksDES
/System/Library/Frameworks/FileProvider.framework/PlugIns/LocalStorageFileProvider.appex/LocalStorageFileProvider
/System/Library/Frameworks/IdentityLookup.framework/XPCServices/com.apple.IdentityLookup.MessageFilter.xpc/com.apple.IdentityLookup.MessageFilter
/System/Library/Messages/iMessageBalloons/ASMessagesProvider.bundle/ASMessagesProvider
/System/Library/PrivateFrameworks/ContactsDonation.framework/Versions/A/Support/contactsdonationagent
/System/Library/PrivateFrameworks/CoreParsec.framework/parsec-fbf
/System/Library/PrivateFrameworks/CoreParsec.framework/parsecd
/System/Library/PrivateFrameworks/DocumentManagerUICore.framework/PlugIns/com.apple.DocumentManager.Service.appex/com.apple.DocumentManager.Service
/System/Library/PrivateFrameworks/DocumentManagerUICore.framework/PlugIns/RecentsAppPopover.appex/RecentsAppPopover
/System/Library/PrivateFrameworks/FMClient.framework/XPCServices/FMIPClientXPCService.xpc/FMIPClientXPCService
/System/Library/PrivateFrameworks/Swift/libswiftDemangle.dylib
/System/Library/PrivateFrameworks/Swift/libswiftXCTest.dylib
/System/Library/PrivateFrameworks/TelephonyUtilities.framework/callservicesd
/System/Library/PrivateFrameworks/TelephonyUtilities.framework/PlugIns/PhoneIntentHandler.appex/PhoneIntentHandler
/System/Library/PrivateFrameworks/UpNextWidget.framework/PlugIns/UpNext.appex/UpNext
/usr/libexec/sharingd
/usr/libexec/SidecarRelay
/usr/libexec/tzd

The shared dyld cache contains the following additional binaries - most of them being the Swift libraries:

/System/Library/PrivateFrameworks/ConversationKit.framework/ConversationKit
/System/Library/PrivateFrameworks/CoreKnowledge.framework/CoreKnowledge
/System/Library/PrivateFrameworks/FMClient.framework/FMClient
/System/Library/PrivateFrameworks/News/Tea.framework/Tea
/System/Library/PrivateFrameworks/News/TeaActivities.framework/TeaActivities
/System/Library/PrivateFrameworks/News/TeaFoundation.framework/TeaFoundation
/System/Library/PrivateFrameworks/News/TeaSettings.framework/TeaSettings
/System/Library/PrivateFrameworks/News/TeaUI.framework/TeaUI
/System/Library/PrivateFrameworks/Stocks/AppAnalytics.framework/AppAnalytics
/System/Library/PrivateFrameworks/Stocks/NewsArticles.framework/NewsArticles
/System/Library/PrivateFrameworks/Stocks/NewsFeed.framework/NewsFeed
/System/Library/PrivateFrameworks/Stocks/StocksAnalytics.framework/StocksAnalytics
/System/Library/PrivateFrameworks/Stocks/StocksCore.framework/StocksCore
/System/Library/PrivateFrameworks/Stocks/StocksUI.framework/StocksUI
/System/Library/PrivateFrameworks/Stocks/TeaActivities.framework/TeaActivities
/System/Library/PrivateFrameworks/Stocks/TeaCharts.framework/TeaCharts
/System/Library/PrivateFrameworks/Stocks/TeaDB.framework/TeaDB
/System/Library/PrivateFrameworks/Stocks/TeaFoundation.framework/TeaFoundation
/System/Library/PrivateFrameworks/Stocks/TeaSettings.framework/TeaSettings
/System/Library/PrivateFrameworks/Stocks/TeaTemplate.framework/TeaTemplate
/System/Library/PrivateFrameworks/Stocks/TeaUI.framework/TeaUI
/System/Library/PrivateFrameworks/Swift/libswiftAccelerate.dylib
/System/Library/PrivateFrameworks/Swift/libswiftARKit.dylib
/System/Library/PrivateFrameworks/Swift/libswiftAssetsLibrary.dylib
/System/Library/PrivateFrameworks/Swift/libswiftAVFoundation.dylib
/System/Library/PrivateFrameworks/Swift/libswiftCallKit.dylib
/System/Library/PrivateFrameworks/Swift/libswiftCloudKit.dylib
/System/Library/PrivateFrameworks/Swift/libswiftContacts.dylib
/System/Library/PrivateFrameworks/Swift/libswiftCore.dylib
/System/Library/PrivateFrameworks/Swift/libswiftCoreAudio.dylib
/System/Library/PrivateFrameworks/Swift/libswiftCoreData.dylib
/System/Library/PrivateFrameworks/Swift/libswiftCoreFoundation.dylib
/System/Library/PrivateFrameworks/Swift/libswiftCoreGraphics.dylib
/System/Library/PrivateFrameworks/Swift/libswiftCoreImage.dylib
/System/Library/PrivateFrameworks/Swift/libswiftCoreLocation.dylib
/System/Library/PrivateFrameworks/Swift/libswiftCoreMedia.dylib
/System/Library/PrivateFrameworks/Swift/libswiftDarwin.dylib
/System/Library/PrivateFrameworks/Swift/libswiftDispatch.dylib
/System/Library/PrivateFrameworks/Swift/libswiftFoundation.dylib
/System/Library/PrivateFrameworks/Swift/libswiftGameplayKit.dylib
/System/Library/PrivateFrameworks/Swift/libswiftGLKit.dylib
/System/Library/PrivateFrameworks/Swift/libswiftHomeKit.dylib
/System/Library/PrivateFrameworks/Swift/libswiftIntents.dylib
/System/Library/PrivateFrameworks/Swift/libswiftMapKit.dylib
/System/Library/PrivateFrameworks/Swift/libswiftMediaPlayer.dylib
/System/Library/PrivateFrameworks/Swift/libswiftMetal.dylib
/System/Library/PrivateFrameworks/Swift/libswiftMetalKit.dylib
/System/Library/PrivateFrameworks/Swift/libswiftModelIO.dylib
/System/Library/PrivateFrameworks/Swift/libswiftNaturalLanguage.dylib
/System/Library/PrivateFrameworks/Swift/libswiftNetwork.dylib
/System/Library/PrivateFrameworks/Swift/libswiftObjectiveC.dylib
/System/Library/PrivateFrameworks/Swift/libswiftos.dylib
/System/Library/PrivateFrameworks/Swift/libswiftPhotos.dylib
/System/Library/PrivateFrameworks/Swift/libswiftQuartzCore.dylib
/System/Library/PrivateFrameworks/Swift/libswiftSceneKit.dylib
/System/Library/PrivateFrameworks/Swift/libswiftsimd.dylib
/System/Library/PrivateFrameworks/Swift/libswiftSpriteKit.dylib
/System/Library/PrivateFrameworks/Swift/libswiftSwiftOnoneSupport.dylib
/System/Library/PrivateFrameworks/Swift/libswiftUIKit.dylib
/System/Library/PrivateFrameworks/Swift/libswiftVision.dylib
/System/Library/PrivateFrameworks/Swift/libswiftWatchKit.dylib

Conclusion

Apple added some new features in iOS 12 and with no surprise the corresponding applications contain some Swift code. This is the case of the ContinuityCamera and Measure apps. Previous existing apps have been updated and some of them contain more Swift code: AppStore, Books, Music, News, SharingViewService and Stocks.

As we can see, Apple is slowly using Swift in more apps with each new iOS release, but the number of these apps is still really limited. Here is a chart showing the evolution of the number of binaries using Swift in iOS (without counting the Swift libraries):