Содержание
Использование Apple Swift и SwiftUI в iOS 16
iOS 16 только что вышла, поэтому давайте проанализируем ее встроенные приложения. Как и в прошлые годы, я постараюсь ответить на несколько вопросов. Сколько бинарников в iOS 16? Какие языки программирования используются для разработки этих приложений? Сколько приложений написано на Swift? Каков процент приложений, использующих SwiftUI, по сравнению с UIKit?
Содержание
Методология
Методология и инструменты для создания этой статьи были подробно описаны в предыдущих постах. Если вы заинтересованы, пожалуйста, обратитесь к:
- Использование Apple AppKit, Mac Catalyst и SwiftUI в macOS
- Эволюция языков программирования от iPhone OS 1.0 до iOS 14
- Apple использует Swift в iOS 10.1 и macOS 10.12
Прежде чем перейти к деталям, давайте проясним несколько моментов:
- Я анализировал только то, что обычно называют «iOS», то есть все, что выше ядра. Ядро XNU и низкоуровневое firmware (SecureROM, Baseband, …) не включены, даже если Secure Enclave теперь содержит код Swift. С другой стороны, я посчитал фреймворки, расположенные внутри общего кэша dyld — механизма, представленного в iPhone OS 3.1.
- Имейте в виду, что разработчик может смешивать разные языки программирования для создания одного двоичного файла. Одним из примеров является разработанное мной приложение Clatters, в котором я использую Swift, SwiftUI, Objective-C и C, наиболее подходящий язык программирования, используемый для решения каждой конкретной проблемы. В этой статье приложение, содержащее одну строку кода Swift, будет считаться использующим Swift.
- Вы увидите упоминания о Objective-C и C++, но можете заметить отсутствие Objective-C++. Используемый здесь подход не может действительно обнаруживать двоичные файлы, созданные с помощью Objective-C++. Такие двоичные файлы считаются использующими как Objective-C, так и C++.
- Наконец, вы должны принять этот анализ с определенным недоверием. Хотя я считаю, что общая картина верна, мой подход имеет некоторые ограничения из-за того простого факта, что у меня нет доступа к исходному коду iOS и я полагался на неточные артефакты компиляции.
Количество бинарников
Давайте сначала ответим на простой вопрос: сколько бинарников в 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:
- Live Activities (с фреймворком SportsKit)
- Live Captions (с LiveTranscriptionUI)
- Shared with You (фреймворк SharedWithYou и, возможно, CloudSharingUI, GroupActivities, PeopleViewService)
- Фреймворк Swift Charts
При выполнении этого анализа меня удивило одно число: 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 и они заслуживают упоминания:
- AirDropUI
- AirPlayReceiver
- Batteries
- Фреймворк ContactsUI
- FaceTime
- Фитнес (и связанный с ним фреймворк WorkoutCore)
- Здоровье
- Фреймворк HomeUI, на котором работает Home.app
- Подкасты (и связанная с ними платформа PodcastsUI)
- Фреймворк ProximityAppleIDSetupUI
- Некоторые двоичные файлы, связанные с Apple Pay (ContactlessReaderUI, CoreIDVUI, FinanceKitUI, PaymentUIBase, …)
- Некоторые двоичные файлы, связанные с музыкой (AppleMediaServicesUI, _MusicKitInternal_SwiftUI, ClarityBoard, …)
- Некоторые двоичные файлы, связанные с Shazam (ShazamKitUI, ShazamViewService)
- Ассистент обратной связи iOS
Эволюция языков программирования
Анализируя все основные выпуски iOS от iPhone OS 1. 0 до iOS 16, мы можем увидеть эволюцию языков программирования, используемых в iOS. Еще раз обратите внимание, что один двоичный файл может быть подсчитан несколько раз, поэтому сумма двоичных файлов на этом графике больше, чем общее количество двоичных файлов:
Некоторые тенденции можно лучше визуализировать, отображая проценты:
Что мы можем узнать из этих графиков?
- Objective-C лежит в основе iOS и прямо или косвенно используется большинством приложений.
- Использование Swift быстро увеличивается по сравнению с прошлыми версиями iOS. В этом году Swift наконец превзошел C++.
- Использование C++ стабильно на протяжении многих лет.
- SwiftUI становится заметным, что является отличным признаком: Apple занимается экспериментальной проверкой собственного фреймворка.
- C медленно, но верно угасает
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.
Источник
Если вы нашли опечатку — выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать [email protected].
Apple Releases Swift as Open Source
-
АРМЕНИЯ -
АЗЕРБАЙДЖАН -
БЕЛАРУСЬ -
ГРУЗИЯ -
КАЗАХСТАН -
КЫРГЫЗСТАН -
МОЛДОВА -
ТАДЖИКИСТАН -
ТУРКМЕНИСТАН -
УЗБЕКИСТАН -
УКРАИНА
Забыли пароль?
Станьте нашим клиентом
Где купить
Компания ASBIS авторизована корпорацией Apple как дистрибьютор в 11 странах. Найдите ритейл партнера в вашей стране.
Архив
Новости
Декабрь 09, 2020
Apple представляет AirPods Max
Компания Apple представила AirPods Max, инновационные беспроводные наушники …
Декабрь 04, 2020
ASBIS начинает поставки новых Mac с чипом M1
Новые MacBook Air, MacBook Pro 13 дюймов и Mac mini с передовым чипом M1 уже …
Сентябрь 23, 2020
ASBIS начинает поставки новых моделей Apple Watch
Новые модели Apple Watch, представленные на презентации Apple 15 сентября 2020 …
Сентябрь 23, 2020
ASBIS начинает поставки iPad 8‑го поколения
Новое поколение самой популярной модели iPad, представленной на сентябрьской …
Май 06, 2020
ASBIS начинает поставки нового iPhone SE
Одна из самых ожидаемых новинок этой весны — iPhone SE второго поколения станет …
Декабрь 07, 2015
Apple today announced that its Swift programming language is now open source. As an open source language, the broad community of talented developers — from app developers to educational institutions to enterprises — can contribute to new Swift features and optimisations and help bring Swift to new computing platforms.
Introduced in 2014, Swift is the fastest growing programming language in history and combines the performance and efficiency of compiled languages with the simplicity and interactivity of popular scripting languages. Apple today also launched the Swift.org website with detailed information about Swift open source, including technical documentation, community resources and links to download the Swift source code.
Swift is a powerful and intuitive programming language that gives developers the freedom and capabilities they need to create the next generation of cutting-edge software. Swift is easy to learn and use, even if you’ve never coded before, and it’s the first systems programming language that is as expressive and enjoyable as a scripting language. Designed for safety, Swift also eliminates entire categories of common programming errors.
The Swift open source code is available via GitHub and includes support for all Apple software platforms — iOS, OS X, watchOS and tvOS — as well as for Linux. Components available include the Swift compiler, debugger, standard library, foundation libraries, package manager and REPL. Swift is licensed under the popular Apache 2.0 open source license with a runtime library exception, enabling users to easily incorporate Swift into their own software and port the language to new platforms. For more information about Swift, and access to community resources visit the new Swift.org.
Disclaimer: The information contained in each press release posted on this site was factually accurate on the date it was issued. While these press releases and other materials remain on the Company’s website, the Company assumes no duty to update the information to reflect subsequent developments. Consequently, readers of the press releases and other materials should not rely upon the information as current or accurate after their issuance dates.
Apple объявляет о полной быстрой переработке Foundation Framework
Домашняя страница InfoQ
Новости
Apple объявляет о полной быстрой переработке Foundation Framework
Мобильный
QCon London (27–29 марта 2023 г. ): используйте правильные новые тенденции для решения своих инженерных задач.
Закладки
14 декабря 2022 г.
2
мин читать
по
Серхио Де Симоне
Напишите для InfoQ
Присоединяйтесь к сообществу экспертов. Увеличьте свою видимость.
Развивайте свою карьеру.Подробнее
Команда Swift начала работу над новой реализацией платформы Foundation с открытым исходным кодом. Новый Foundation, полностью написанный на Swift, направлен на повышение производительности за счет избавления от затрат на преобразование между Objective-C и Swift, а также на предоставление возможности модульности и очистки.
С собственной реализацией Swift Foundation платформа больше не оплачивает затраты на преобразование между C и Swift, что приводит к более высокой производительности.
Как объяснил инженер Apple Тони Паркер на форуме Swift, выигрыш в производительности может быть значительным:
Повторная реализация Calendar в Swift в 1,5-18 раз быстрее, чем C (вызов из Swift в различных синтетических тестах, таких как создание, вычисление даты).
Платформа Foundation является краеугольным камнем большинства приложений macOS и iOS, предоставляя большое количество вездесущих абстракций, включая NSObject
, NSString
, NSArray
и NSDictionary
и многие другие.
Первоначально написанный на Objective-C и в значительной степени основанный на его динамических свойствах, Foundation в настоящее время может использоваться в приложениях Swift, работающих в операционных системах Apple, благодаря совместимости Swift со средой выполнения Objective-C. Однако это не вариант для других платформ, где поддерживается Swift, но доступна только исходная среда выполнения GNUstep Objective-C, например Linux. Чтобы обойти это ограничение, когда Apple открыла исходный код Swift, они построили swift-corelibs-foundation
, оболочка Swift вокруг Core Foundation, низкоуровневый API-интерфейс C, лежащий в основе Foundation и предоставляющий «бесплатные мостовые» сопоставления абстракций с Foundation, включая CFString
, CFDictionary
и так далее. на.
Как уже упоминалось, переписывание Swift послужит поводом для изменения архитектуры фреймворка Foundation. На данный момент разработано пять отдельных пакетов, в том числе FoundationEssentials
, FoundationInternationalization 9.0043 ,
FoundationNetworking
, FoundationXML
и FoundationObjCCompatibility
. Это позволит разработчикам вводить только те зависимости, которые им действительно нужны для конкретного приложения. Например, разработчик, начинающий с нуля и желающий разорвать все связи со слоем Darwin Foundation, может вообще пропустить уровень совместимости Obj-C.
Приняв решение переписать Foundation, Apple меняет порядок между слоями C, Objective-C и Swift и делает слой Swift основой для Foundation на всех платформах. Это даст возможность удалить ряд функций, которые в настоящее время предоставляются непосредственно из языка Swift и стандартной библиотеки, таких как 9.0042 NSCoding и NSKeyedArchiver
заменены на Codable
или Lock
, OperationQueue
и другие примитивы параллелизма, которые заменены структурированным параллелизмом Swift. Однако эти функции будут предоставлены отдельным пакетом, доступным на платформе Darwin, чтобы обеспечить совместимость с существующим кодом.
Объявление вызвало много комментариев на форумах Swift, большинство из которых намекают на удобство переосмысления нескольких существующих API, а также на обеспечение типов Swift, таких как Codable
или структурированный параллелизм стали достаточно мощными, чтобы полностью заменить типы Obj-C, которые планируется удалить из базового уровня Foundation.
Переписывание Foundation, как ожидается, является среднесрочной задачей, график которой еще не объявлен, и Apple приглашает сообщество Swift присоединиться к обсуждению, чтобы определить его будущее.
Об авторе
Sergio De Simone
Показать ещеПоказать меньше
Оцените эту статью
Принятие
Автор связался с
Информационный бюллетень InfoQ
Обзор контента прошлой недели на InfoQ, который рассылается каждый вторник. Присоединяйтесь к сообществу из более чем 250 000 старших разработчиков.
Посмотреть пример
Мы защищаем вашу конфиденциальность.
Стриж | Функции и обновления
AppleInsider может получать партнерскую комиссию за покупки, сделанные по ссылкам на нашем сайте.
Крис Латтнер, бывший старший директор Apple по инструментам для разработчиков, начал разработку Swift в июле 2010 года. Латтнер и команда разработчиков создали его на основе Objective-C, Ruby, Python и многих других языков кодирования.
Swift с открытым исходным кодом используется во всей экосистеме Apple
В июне 2014 года Apple выпустила бета-версию для зарегистрированных разработчиков Apple, а в октябре 2014 года вместе с запуском Xcode 6.1 был выпущен Swift 1.1.
В конце декабря 2015 года Apple выпустила Swift и его библиотеки, диспетчер пакетов и отладчик для публичного использования в качестве программного обеспечения с открытым исходным кодом. С тех пор он стал общедоступным, и каждый, кто желает внести свой вклад в разработку, может сделать это.
В 2019 году Apple анонсировала SwiftUI, функцию Xcode, которая предоставляет пользователям основу для декларативного проектирования пользовательского интерфейса на всех платформах Apple.
Примечательные особенности Swift
Наиболее примечательной особенностью Swift является его сходство с Objective-C. Он использует библиотеку времени выполнения Objective-C, которая позволяет запускать код C, Objective-C, C++ и Swift в рамках одной программы.
Пример простого кода
На языке можно писать программы для macOS, iOS, iPadOS, watchOS, tvOS, а также Linux. Поскольку Swift имеет открытый исходный код, вполне вероятно, что он может быть включен и в другие платформы, включая веб-дизайн.
Swift предназначен для работы с платформами Apple Cocoa и Cocoa Touch — API, необходимым для работы приложений с macOS и мобильными платформами Apple, такими как iPhone.
Как и Objective-C, Swift поддерживает динамическую диспетчеризацию, широко распространенное позднее связывание, расширяемое программирование и многое другое.
Безопасность и отлов насекомых
Одним из приоритетов Apple при разработке языка было создание «более безопасного» кода. Он оснащен функциями и инструментами для устранения распространенных ошибок программирования.
В отличие от Objective-C, он не предоставляет указатели или какие-либо методы доступа, которые впоследствии могут привести к уязвимостям программного обеспечения или возможным ошибкам.
Swift инициализирует переменные перед использованием, проверяет целые числа и массивы на переполнение и автоматически управляет памятью. Он также обеспечивает эксклюзивный доступ к памяти, защищая от множества распространенных ошибок программирования.
Использование Swift необязательных значений позволяет пользователям избежать сбоев во время выполнения
Swift написан так, чтобы его можно было прочитать и понять с первого взгляда, что помогает пользователям легко обнаруживать проблемы, если они возникают. Кроме того, это ограничивает потребность во вложенных отступах, которые могут привести к трудностям при чтении кода — распространенная проблема, которую часто называют пирамидой гибели.
Он также поддерживает расширяемость протокола, систему, которую можно применять к типам, структурам и классам. Это протокольно-ориентированное программирование позволяет более безопасно и разумно реализовать возможности и функции кода.
Простота использования
Несмотря на то, что Swift основан на Objective-C, его проще использовать. Он использует современную теорию языков программирования и более простой синтаксис, что упрощает его как написание, так и чтение.
Он также требует меньше кода для выполнения той же задачи, что и Objective-C, и его часто хвалят за то, что он удобен для начинающих.
Скорость
Отсюда и название, Swift разработан, чтобы быть легким и быстрым. Он сопоставляет данные намного быстрее, чем Objective-C. В Objective-C классы рассматриваются как объекты, что приводит к более медленному коду. Он переписывает массивы как структуры, что позволяет коду работать намного быстрее, чем его аналог в Objective-C.
Аналогичным образом, язык Apple также потребляет меньше памяти, чем Objective-C. Objective-C требует оперативной памяти, если в коде есть ссылка на объект. С другой стороны, Swift использует структуры. Это уменьшило количество данных ссылочного типа и классов SDK, что, в свою очередь, привело к более эффективному использованию памяти.
Согласно Apple, обычный алгоритм поиска работает в 2,6 раза быстрее, чем Objective-C, и до 8,4 раза быстрее, чем Python 2.7.
Открытый код
С декабря 2015 года исходный код Swift является открытым и доступным для всех желающих. Он распространяется под лицензией Apache 2.0 с открытым исходным кодом и обычно предназначен для разработчиков, преподавателей и студентов. Apple заявила, что, создав язык с открытым исходным кодом, они надеются, что он станет одним из основных языков программирования в ближайшие 20 лет.
Вы можете внести свой вклад в открытый исходный код
«Сделав Swift открытым исходным кодом, все сообщество разработчиков может внести свой вклад в язык программирования и помочь вывести его на еще большее количество платформ», — сказал Крейг Федериги, старший вице-президент Apple по разработке программного обеспечения, в пресс-релиз. «Мощь и простота использования Swift вдохновят новое поколение заняться кодированием, и с сегодняшним объявлением они смогут воплощать свои идеи где угодно, от мобильных устройств до облака».
Apple призывает всех, кто хочет узнать о Swift или внести свой вклад в его развитие, посетить веб-сайт. Это отправная точка Apple для тех, кто заинтересован в изучении Swift, а также центр сообщества, где пользователи могут задавать вопросы и вносить свой вклад в активное развитие языка.
Те, кто перейдет на страницу GitHub, смогут найти компилятор Swift, отладчик, стандартную библиотеку, базовые библиотеки, диспетчер пакетов и REPL.
Обучение Свифту
Язык программирования Swift
Одновременно с запуском бета-версии в 2014 году Apple выпустила Язык программирования Swift, 500-страничное руководство, которое можно бесплатно загрузить из Apple Books.
Язык программирования Swift служит как руководством, так и справочным материалом, к которому кодеры и программисты могут обращаться по мере необходимости.
Книга начинается с двадцатистраничного введения, в котором излагаются основы языка, чего часто бывает достаточно для опытных программистов, перешедших с другого кода, такого как Ruby или C++.
В оставшейся части книги показано, как можно активно разрабатывать приложение, начиная с простого печатного сценария «Hello World» и заканчивая более сложными темами по мере введения новых точек.
Игровые площадки Свифт
Swift Playgrounds — это приложение для iPad, разработанное Apple, которое призвано облегчить обучение кодированию для всех. Apple предполагает, что приложение может быть полезно всем восьми и старше, а интерактивная среда поощряет эксперименты.
Swift Playgrounds на iPad, демонстрирующий пользователю, как кодировать «цикл for».
Кроме того, Apple выпустила версию приложения для Mac Catalyst.