Вероятно, легко сказать, что какой бы конечной цели вы ни хотели достичь с помощью Objective-C, вы можете достичь ее и с помощью Swift. Есть большая вероятность, что использование Swift даст более быстрые результаты. Конечно, разработчики могут предоставлять приложения или библиотеки независимо от того, какой язык выбран — Swift или Objective-C. Однако, немного подумав, мы не можем придумать крайний случай, который заставил бы принять решение в пользу использования Objective-C для разработки мобильных приложений для iOS.

Отказ от ответственности: мы предполагаем, что вы являетесь компанией, которая нанимает не только разработчиков, обладающих знаниями Objective-C.

Мы знаем, что наши первоначальные мысли были довольно резкими по отношению к Objective-C. Мы хотели бы отметить, что нашим разработчикам в основном нравилось программировать на Objective-C, и они до сих пор любят его за его способность создавать продукты. Кроме того, Objective-C — это произведение искусства, создатели упаковывали гениальные решения и постоянно улучшали его, поэтому мы, разработчики, могли использовать его в своих интересах.

Есть много индикаторов, говорящих нам, что все еще используется тонна устаревшего кода Objective-C, как от Apple, так и от других разработчиков. Глядя на некоторые статистические данные из опроса StackOverflow 2021, мы видим, что 5,1% респондентов используют Swift, тогда как 2,8% используют Objective-C, что составляет приблизительное соотношение 2:1. Не поймите нас неправильно, возможно, если вы посмотрите достаточно внимательно, вы все равно обнаружите спрос на разработку на языке Objective-C (вероятно, здесь больше подходит слово «обслуживание»).

Давайте посмотрим на некоторые цифры.

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

Изучая количество разработчиков, владеющих Swift или Objective-C (или обоими), нам удалось найти некоторую статистику от JetBrains (2021), показывающую, что из всех разработчиков, участвовавших в их опросе, 76% разработчиков владеют Swift, 13% владеют как Swift, так и Objective-C, тогда как 11% владеют только Objective-C. Статистика вполне объяснима.

Количество тикетов StackOverflow

В StackOverflow, библиотеке знаний для всех разработчиков, Swift обогнал Objective-C как по общему количеству заданных вопросов (316 604 против 292 479), так и по количеству вопросов, задаваемых в неделю (481 против 39).

Популярность языка

Индекс популярности языков программирования PYPL создан на основе анализа того, как часто в Google ищут учебные пособия по языку. Чем чаще ищут учебник по языку, тем популярнее считается язык. И Swift, и Objective-C получают одинаковую долю поисковых запросов Google (2,09% для Swift против 2,03% для Objective-C).

На данный момент мы хотели бы отметить, что мы не должны слепо смотреть на цифры, а вместо этого пытаться понять, откуда берутся эти цифры. Создатели PYPL Popularity Index говорят: «Чем чаще ищут учебник по языку, тем популярнее считается этот язык. Это опережающий индикатор.

Необработанные данные поступают из Google Trends. Этот индекс создается путем анализа того, как часто в Google ищут учебники по языку. Но вместо «учебники по Objective-C» используется фраза «учебники по iOS». В настоящее время, можно сказать, по некоторым историческим причинам. Но ключевой вывод здесь заключается в том, что любой, кто ищет «учебники по iOS», вероятно, наткнется на учебник, основанный на Swift.

Легко увидеть, как такие цифры могут вводить в заблуждение и создавать ложное впечатление о равной популярности Swift и Objective-C для разработки нативных приложений для iOS.

Импорт фреймворков из других языков — Swift уже рассмотрел

Есть одна задача, которая еще недавно требовала использования Objective-C вместе со Swift в проекте по разработке нативного мобильного приложения. До недавнего времени, если вы хотели использовать, например. Rust или C++ в проекте Swift, вам нужно было использовать Objective-C с связующими заголовками, чтобы действовать как промежуточный язык, который служил бы соединением Swift с выбранным вами фреймворком на другом языке.

По словам Томаса Карпинца теперь с Xcode 13 и Swift 5.6 вам больше не нужен Objective-C. Когда библиотеки правильно настроены, вы можете импортировать и связать их в свой проект Swift и использовать только с Swift.

Мы упоминали, что существуют эксклюзивные функции Swift?

Эта категория сравнения может быть наиболее предвзятой или просто основываться на мнении, но единственная технология, которая приходит нам на ум, основанная исключительно на Objective-C, возможно, если вы хотите использовать слегка модифицированную версию фреймворка Objective-C. Как мы знаем, сегодня легко импортировать фреймворк Objective-C в проект Swift. Возможно, однако, вам потребуется, чтобы эта среда Objective-C вел себя немного иначе, таким образом, чтобы имело смысл просто изменить структуру, а затем импортировать ее в Swift, а не искать обходные пути в Swift для достижения того же самого. цель.

Это единственная вещь, которая считается эксклюзивной для Objective-C.

С другой стороны, есть много языковых функций, которыми вы можете воспользоваться, только используя Swift. Давайте перечислим некоторые из них: SPM, SwiftUI, WidgetKit, Combine, async/await, обёртки свойств, перечисления со связанными значениями… В сегодняшних терминах они представляют собой современное состояние разработки для iOS, которое, кстати. имеет большинство разработчиков, связанных с разработчиками, разрабатывающими продукты Apple (macOS, iPadOS, tvOS, watchOS).

SPM — менеджер пакетов Swift

Согласно swift.org, Диспетчер пакетов Swift — это инструмент для управления распространением кода Swift. Он интегрирован с системой сборки Swift для автоматизации процесса загрузки, компиляции и связывания зависимостей.

SPM включен в Swift 3.0 и выше. Хотя он был выпущен с некоторыми недостатками (например, работа с бинарными фреймворками), к настоящему времени он значительно улучшен. Можно сказать, что теперь это стандарт управления зависимостями в проектах Swift. Помогает в этом тот факт, что разработчики, которые поддерживают репозитории с открытым исходным кодом, в значительной степени добавили возможность импортировать свою структуру с помощью SPM.

Карфаген и CocoaPods

Что касается других инструментов управления зависимостями, а именно Carthage и CocoaPods, мы можем быть краткими и сказать, что оба обеспечивают одинаковые рабочие процессы для проектов на основе iOS и Objective-C. Таким образом, эти инструменты не имеют значения для языка программирования.

Заключение

Было бы лучше разместить эту главу в верхней части статьи с заявлением TLDR: легко, Swift — это путь. Если вы увидите какую-то причудливую статистику, делающую Objective-C удивительно высоким (популярность, использование в новых проектах и ​​т. д.), будьте подозрительны — Objective-C все еще среди нас только по устаревшим причинам, только. Мы в ITMAGINATION уже давно используем Swift для разработки мобильных приложений для iOS и готовы работать вместе с вашей командой над вашим следующим приключением.

Первоначально опубликовано на https://www.itmagination.com.