Apple’s employ of Swift and SwiftUI in iOS 15

84
Apple’s employ of Swift and SwiftUI in iOS 15

iOS 15 used to be released a pair of months ago in September 2021. In this article, I analyze the constructed-in apps composing iOS 15. What number of binaries are in iOS 15? Which programming languages are frail to trust these apps? What number of apps are written with Swift? Has Apple adopted SwiftUI for some constructed-in apps?

The methodology and tools to assemble this article were detailed in my outdated posts. If you happen to would possibly well well presumably even trust an interest, please discuss with:

Sooner than jumping into the crucial parts, let’s elaborate a pair of parts:

  • I fully analyzed what is ceaselessly called ‘iOS’, i.e. all the pieces above the kernel. The XNU kernel and low-stage firmwares (SecureROM, Baseband, …) are no longer included. On the varied hand, I counted the frameworks positioned contained in the dyld shared cache, a mechanism launched in iPhone OS 3.1.

  • Take into fable that a developer can combine various programming languages to assemble one binary. One example is an app I developed, Clatters, where I employ Swift, SwiftUI, Impartial-C and C, presumably the most acceptable programming language being frail to clear up every particular allege. In this article, an app containing a single line of Swift code will in all probability be counted as using Swift.

  • You can discover mentions of Impartial-C and C++ however you would possibly well presumably glimpse the absence of Impartial-C++. The map frail here can’t in actuality detect binaries constructed with Impartial-C++. Such binaries are counted as using both Impartial-C and C++.

  • Indirectly you would possibly well presumably also quiet purchase this diagnosis with a grain of salt. Whereas I mediate the total image to be upright, my map has some obstacles as a result of the easy fact that I don’t trust procure entry to to the iOS source code and relied on imprecise compilation artifacts.

Potentially one in all presumably the most attention-grabbing figure is to measure Apple’s employ of Swift and SwiftUI in iOS 15. So let’s originate up with that!

iOS 15 contains 114 binaries using SwiftUI, that’s almost thrice the amount from iOS 14. Likewise the collection of binaries containing no longer no longer up to at least one line of Swift code has doubled between iOS 14 and iOS 15:

As you would possibly well presumably presumably see, Apple continues to gradually adopt Swift for its maintain constructed-in apps. This one year is furthermore a enormous one year for the adoption of SwiftUI. Just a few broadly frail apps now seem to make employ of SwiftUI in iOS 15:

  • Books
  • Maps
  • Notes
  • Weather
  • Suggestions
  • Song
  • Podcasts
  • FaceTime? (InCallService)
  • AppSettings?

These unusual apps add up to the previously 5 apps using SwiftUI:

  • Translate
  • Shortcuts
  • Phone
  • AirPods Join Pop-up? (SharingViewService)
  • Lock Cover? (SleepLockScreen)

The varied binaries using SwiftUI are mostly widgets or unusual frameworks. Here is all the checklist of 114 binaries using SwiftUI:

/Functions/AppSettings.app/AppSettings
/Functions/AppStore.app/PlugIns/AppStoreWidgetsExtension.appex/AppStoreWidgetsExtension
/Functions/FamilyControlsAuthenticationUI.app/FamilyControlsAuthenticationUI
/Functions/FindMy.app/PlugIns/FindMyWidgetIntentsItems.appex/FindMyWidgetIntentsItems
/Functions/FindMy.app/PlugIns/FindMyWidgetIntentsPeople.appex/FindMyWidgetIntentsPeople
/Functions/FindMy.app/PlugIns/FindMyWidgetItems.appex/FindMyWidgetItems
/Functions/FindMy.app/PlugIns/FindMyWidgetPeople.appex/FindMyWidgetPeople
/Functions/FTMInternal-4.app/FTMInternal-4
/Functions/GameCenterWidgets.app/PlugIns/GCWidgets.appex/GCWidgets
/Functions/InCallService.app/InCallService
/Functions/PeopleViewService.app/PlugIns/PeopleWidget_iOSExtension.appex/PeopleWidget_iOSExtension
/Functions/SleepWidgetContainer.app/PlugIns/SleepWidgetExtension.appex/SleepWidgetExtension
/private/var/staged_system_apps/Books.app/Books
/private/var/staged_system_apps/Maps.app/Maps
/private/var/staged_system_apps/MobileMail.app/PlugIns/MailWidgetExtension.appex/MailWidgetExtension
/private/var/staged_system_apps/MobileNotes.app/MobileNotes
/private/var/staged_system_apps/MobileNotes.app/PlugIns/com.apple.mobilenotes.SharingExtension.appex/com.apple.mobilenotes.SharingExtension
/private/var/staged_system_apps/Song.app/Frameworks/MusicApplication.framework/MusicApplication
/private/var/staged_system_apps/Podcasts.app/Frameworks/PodcastsStoreUI.framework/PodcastsStoreUI
/private/var/staged_system_apps/Shortcuts.app/PlugIns/QuickLookExtension.appex/QuickLookExtension
/private/var/staged_system_apps/Suggestions.app/Suggestions
/private/var/staged_system_apps/Weather.app/Weather
/Map/Library/Assistant/UIPlugins/SiriFindMyUIPlugin.siriUIBundle/SiriFindMyUIPlugin
/Map/Library/Frameworks/_CoreLocationUI_SwiftUI.framework/_CoreLocationUI_SwiftUI
/Map/Library/Frameworks/_MusicKit_SwiftUI.framework/_MusicKit_SwiftUI
/Map/Library/Frameworks/FamilyControls.framework/FamilyControls
/Map/Library/Frameworks/FamilyControls.framework/PlugIns/ActivityPickerExtension.appex/ActivityPickerExtension
/Map/Library/Smartly being/FeedItemPlugins/Heart.healthplugin/Heart
/Map/Library/Smartly being/FeedItemPlugins/Highlights.healthplugin/Highlights
/Map/Library/Smartly being/FeedItemPlugins/MenstrualCyclesAppPlugin.healthplugin/MenstrualCyclesAppPlugin
/Map/Library/Smartly being/FeedItemPlugins/SleepHealthAppPlugin.healthplugin/SleepHealthAppPlugin
/Map/Library/Smartly being/FeedItemPlugins/Summaries.healthplugin/Summaries
/Map/Library/PreferenceBundles/BatteryUsageUI.bundle/BatteryUsageUI
/Map/Library/PreferenceBundles/CoreRoutineSettings.bundle/CoreRoutineSettings
/Map/Library/PreferenceBundles/FocusSettings.bundle/FocusSettings
/Map/Library/PrivateFrameworks/AccessibilitySharedUISupport.framework/AccessibilitySharedUISupport
/Map/Library/PrivateFrameworks/ActionKitUI.framework/ActionKitUI
/Map/Library/PrivateFrameworks/CommandAndControlUI.framework/CommandAndControlUI
/Map/Library/PrivateFrameworks/CoreChartSwift.framework/CoreChartSwift
/Map/Library/PrivateFrameworks/CoreSuggestionsUI.framework/CoreSuggestionsUI
/Map/Library/PrivateFrameworks/FocusSettingsUI.framework/FocusSettingsUI
/Map/Library/PrivateFrameworks/FocusUI.framework/FocusUI
/Map/Library/PrivateFrameworks/HealthExperienceUI.framework/HealthExperienceUI
/Map/Library/PrivateFrameworks/HealthRecordsUI.framework/HealthRecordsUI
/Map/Library/PrivateFrameworks/HealthVisualization.framework/HealthVisualization
/Map/Library/PrivateFrameworks/HearingUI.framework/HearingUI
/Map/Library/PrivateFrameworks/MediaFoundation.framework/MediaFoundation
/Map/Library/PrivateFrameworks/MessagesSupport.framework/MessagesSupport
/Map/Library/PrivateFrameworks/MLKit.framework/MLKit
/Map/Library/PrivateFrameworks/MLKit.framework/PlugIns/com.apple.MLKit.MLModelPreview.appex/com.apple.MLKit.MLModelPreview
/Map/Library/PrivateFrameworks/MLKit.framework/PlugIns/com.apple.MLKit.MLPackagePreview.appex/com.apple.MLKit.MLPackagePreview
/Map/Library/PrivateFrameworks/NotesUI.framework/NotesUI
/Map/Library/PrivateFrameworks/PaymentUI.framework/PaymentUI
/Map/Library/PrivateFrameworks/PeopleUI.framework/PeopleUI
/Map/Library/PrivateFrameworks/PreviewsInjection.framework/PreviewsInjection
/Map/Library/PrivateFrameworks/PreviewsMessaging.framework/PreviewsMessaging
/Map/Library/PrivateFrameworks/ScreenTimeUICore.framework/ScreenTimeUICore
/Map/Library/PrivateFrameworks/SleepHealthUI.framework/SleepHealthUI
/Map/Library/PrivateFrameworks/SleepWidgetUI.framework/SleepWidgetUI
/Map/Library/PrivateFrameworks/SnippetUI.framework/SnippetUI
/Map/Library/PrivateFrameworks/TipKit.framework/TipKit
/Map/Library/PrivateFrameworks/TranslationUI.framework/TranslationUI
/Map/Library/PrivateFrameworks/TranslationUIServices.framework/PlugIns/TranslationUIService.appex/TranslationUIService
/Map/Library/PrivateFrameworks/VideosUI.framework/VideosUI
/Map/Library/PrivateFrameworks/WeatherUI.framework/WeatherUI
/Map/Library/PrivateFrameworks/WorkflowUI.framework/WorkflowUI
/Map/Library/Snippets/UIPlugins/AudioUIPlugin.bundle/AudioUIPlugin
/Map/Library/Snippets/UIPlugins/SiriVideoUIPlugin.bundle/SiriVideoUIPlugin
/Map/Library/Snippets/UIPlugins/SystemPlugin.bundle/SystemPlugin
/usr/lib/swift/libswiftExtensionKit.dylib
/usr/libexec/proximitycontrold

What number of binaries can we enumerate in iOS 15? iOS 15 is mute of 4738 binaries, up from 4173 in iOS 14. That’s 565 unusual binaries.

By analyzing all most fundamental releases of iOS from iPhone OS 1.0 to iOS 15, we are in a position to see the evolution of the programming languages frail by iOS. Again please trace that a single binary will also be counted multiple times, so the sum of the binaries in this graph is higher than the total collection of binaries:

Out of all the binaries in iOS 15:

  • 89% are using Impartial-C
  • 17% are using C++
  • 13% are using Swift
  • 8% are totally written in C
  • 2% are using SwiftUI

What can we learn here?

  • Impartial-C is quiet at the core of iOS and is never going away anytime soon.
  • Apple’s employ of Swift is progressing sooner than ever. Closing one year Swift surpassed C. This one year Swift is getting closer to C++.
  • SwiftUI used to be barely noticeable ideal one year however this one year Apple appears to be like to trust adopted it more broadly, even in flagship apps.
  • C++ and C quiet play a truly crucial feature. These languages are in total frail by binaries connected to audio, video, telephony, web, and various low-stage frameworks.

Here is yet any other illustration of the evolution of every programming language:

When it’s good to to assemble a deeper diagnosis, you would possibly well presumably presumably download beneath the raw data I generated for all most fundamental releases of iOS from iPhone OS 1.0 to iOS 15.0.

Even supposing we don’t trust procure entry to to the iOS source code, we are in a position to resolve the programming languages frail to assemble the constructed-in apps in iOS and we are in a position to measure the evolution of these languages from iPhone OS 1.0 to iOS 15.

As we noticed, Apple continues to adopt Swift for its maintain apps: the collection of binaries using Swift has doubled between iOS 14 and iOS 15. Approximatively 13% of the binaries for the time being are using Swift. Furthermore, the adoption of SwiftUI in actuality started this one year with quite loads of flagship apps now using SwiftUI.

As previously mentioned, this map has obviously some limits and whereas I mediate the total image to be upright, I will’t convey that the results are perfectly right. If you happen to evaluate that I missed one thing, please reach out to me on Twitter.

Join the pack! Join 8000+ others registered customers, and procure chat, fabricate teams, post updates and fabricate company across the arena!
www.knowasiak.com/register/

Vanic
WRITTEN BY

Vanic

“Simplicity, patience, compassion.
These three are your greatest treasures.
Simple in actions and thoughts, you return to the source of being.
Patient with both friends and enemies,
you accord with the way things are.
Compassionate toward yourself,
you reconcile all beings in the world.”
― Lao Tzu, Tao Te Ching