Site icon AppTractor

Использование компанией Apple Swift и SwiftUI в iOS 17

iOS 17 стала доступна и давайте проанализируем ее встроенные приложения, чтобы ответить на несколько вопросов. Сколько бинарных файлов содержится в iOS 17? Какие языки программирования используются для разработки этих приложений? Сколько приложений написано на Swift? Какова доля приложений, использующих SwiftUI по сравнению с UIKit?

Методология

Методология и инструменты для создания этой статьи были подробно описаны в моих предыдущих постах. Если вам интересно, пожалуйста, ознакомьтесь с ними.

Уточним несколько пунктов:

Количество бинарных файлов

Сначала ответим на простой вопрос — сколько бинарных файлов содержится в iOS 17? Количество файлов, составляющих iOS, продолжает расти: iOS 17 содержит 6030 файлов по сравнению с 5403 в iOS 16. Это 627 новых программ.

Swift и SwiftUI в iOS 17

Неудивительно, что в этом году значительно увеличилось количество приложений, использующих SwiftUI. Среди них можно отметить следующие:

В iOS 16 только 4 приложения использовали жизненный цикл приложений на основе SwiftUI. В iOS 17 эта цифра выросла до 14 приложений:

/Applications/Batteries.app/Batteries
/Applications/ClarityCamera.app/ClarityCamera
/Applications/ClarityPhotos.app/ClarityPhotos
/Applications/FinanceUIService.app/FinanceUIService
/Applications/FTMInternal-4.app/FTMInternal-4
/Applications/MusicRecognition.app/MusicRecognition
/Applications/PASViewService.app/PASViewService
/Applications/Preferences.app/Preferences
/Applications/SafetyMonitorApp.app/SafetyMonitorApp
/Applications/ShazamEventsApp.app/ShazamEventsApp
/Applications/WorkoutRemoteViewService.app/WorkoutRemoteViewService
/private/var/staged_system_apps/Weather.app/Weather
/System/Library/CoreServices/AegirProxyApp.app/AegirProxyApp
/System/Library/CoreServices/ShortcutsActions.app/ShortcutsActions

Продолжается рост принятия Swift и SwiftUI — в iOS 17 уже 385 двоичных файлов, использующих SwiftUI. Аналогичным образом, количество двоичных файлов, содержащих хотя бы одну строку Swift-кода, увеличилось на 50% по сравнению с iOS 16 и iOS 17:

Эволюция языков программирования

Анализируя все основные релизы iOS, начиная с iPhone OS 1.0 и заканчивая iOS 17, мы можем проследить эволюцию языков программирования, используемых в iOS. Еще раз отметим, что один бинарный файл может учитываться несколько раз, поэтому сумма файлов на этом графике больше, чем общее количество файлов:

Некоторые тенденции можно лучше представить с помощью процентного соотношения:

Что мы можем узнать из этих графиков?

UIKit против SwiftUI

До сих пор мы сравнивали SwiftUI со всеми двоичными файлами. Поскольку SwiftUI является фреймворком пользовательского интерфейса, было бы справедливее сравнивать его с другими двоичными файлами, отображающими некоторый пользовательский интерфейс. Нативные приложения для iOS могут быть построены с использованием двух различных UI-фреймворков: UIKit и SwiftUI (отметим, что возможно смешение обоих). Мой подход к подсчету количества двоичных файлов, содержащих пользовательский интерфейс, не идеален, но должен показать примерную тенденцию. Я просто проверяю, связываются ли исполняемые файлы с фреймворками UIKit или SwiftUI.

Впервые количество бинарных файлов, использующих исключительно UIKit, уменьшилось по сравнению с предыдущим годом:

Отображая процентное соотношение, мы можем подтвердить, что SwiftUI явно растет в собственных приложениях Apple:

Secure Enclave

Secure Enclave — это аппаратный компонент безопасности, изолированный от основного процессора и обеспечивающий дополнительный уровень защиты. Изначально он был представлен в iPhone 5S для обеспечения безопасности конфиденциальных пользовательских данных, играя важную роль в работе Touch ID, Face ID и Apple Pay.

В сессии «Что нового в Swift» на WWDC22 компания Apple заявила, что Swift теперь подходит для ограниченных сред, таких как процессор Secure Enclave.

В iOS 17 Secure Enclave содержит 19 двоичных файлов, и, к моему удивлению, ни один из них не использует Swift:

Так используется ли Swift в Secure Enclave? Да! Оказывается, двоичный файл hibernation в macOS Ventura использует Swift:

Заключение

Несмотря на отсутствие доступа к исходному коду iOS, мы можем определить языки программирования, используемые для создания встроенных приложений в iOS, и проследить эволюцию этих языков с iPhone OS 1.0 до iOS 17.

Принятие Swift и SwiftUI продолжает расти: количество двоичных файлов с использованием этих фреймворков увеличилось на 50% с iOS 16 по iOS 17. Еще одним хорошим признаком развития является более широкое использование SwiftUI в жизненном цикле приложений. Также впервые по сравнению с предыдущим годом уменьшилось количество бинарных файлов, использующих исключительно UIKit.

В ближайшие годы будет интересно понаблюдать за тем, начнет ли Swift распространяться в низкоуровневых микропрограммах, таких как Secure Enclave. В настоящее время Swift отсутствует в Secure Enclave в iOS, хотя в macOS он используется.

Как уже говорилось, такой подход имеет очевидные ограничения, и хотя я считаю общую картину точной, я не могу гарантировать, что результаты будут абсолютно точными. Если вы считаете, что я что-то упустил, пожалуйста, свяжитесь со мной на Mastodon @timac@mastodon.social.

Источник

Exit mobile version