70

Apple’s use of Swift in iOS 12

 5 years ago
source link: https://www.tuicool.com/articles/hit/n2EBjqY
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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.

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):

ChartBinariesUsingSwift.png


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK