Site icon AppTractor

Использование Apple Swift и SwiftUI в iOS 16

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

Методология

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

Прежде чем перейти к деталям, давайте проясним несколько моментов:

Количество бинарников

Давайте сначала ответим на простой вопрос: сколько бинарников в iOS 16? Количество двоичных файлов, составляющих iOS, продолжает расти: iOS 16 содержит 5403 двоичных файла по сравнению с 4738 в iOS 15. Это 665 новых двоичных файлов.

Swift и SwiftUI в iOS 16

Во время презентации Platforms State of the Union на WWDC 2022 Apple поделилась своим видением платформы, сделав заявление, адресованное разработчикам, создающим новое приложение: «Лучший способ создать приложение — использовать Swift и SwiftUI». Давайте сравним это заявление с собственным использованием Apple Swift и SwiftUI в iOS 16.

Неудивительно, что мы можем четко подтвердить, что некоторые из новых функций iOS 16 были созданы с использованием SwiftUI:

При выполнении этого анализа меня удивило одно число: iOS 16 содержит только 4 приложения, использующие жизненный цикл приложения на основе SwiftUI:

/Applications/Batteries.app/Batteries
/Applications/FTMInternal-4.app/FTMInternal-4
/private/var/staged_system_apps/Weather.app/Weather
/System/Library/CoreServices/AegirProxyApp.app/AegirProxyApp

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

Некоторые существующие приложения и фреймворки начали внедрять SwiftUI и они заслуживают упоминания:

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

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

Некоторые тенденции можно лучше визуализировать, отображая проценты:

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

UIKit против SwiftUI

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

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

Вывод

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

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

Как упоминалось ранее, этот подход, очевидно, имеет некоторые ограничения, и, хотя я считаю, что общая картина является точной, я не могу гарантировать, что результаты будут абсолютно точными. Если вы считаете, что я что-то упустил, напишите мне в Twitter.

Источник

 

Exit mobile version