Преимущества использования Swift перед Objective-C

Опубликовано: 2021-10-05

Статья была направлена ​​на то, чтобы выделить основные достоинства языка программирования Swift .

Здесь я хотел бы начать с быстрой викторины.
Вопрос: На каком языке программирования написаны приложения для iOS?

а) C #

б) Цель-C

в) Стремительный

Видимо, если вы выбрали все вышеперечисленное - вы на 100% правы, все упомянутые языки пригодны для разработки под iOS. Хотя было бы не странно упомянуть, что все они разные из-за огромного «разрыва поколений», который их разделяет.

... Википедия утверждает, что все началось с Objective-C, когда Брэд Кокс и Том Лав запустили дедушку языков программирования в начале 1980-х годов. Сначала был приобретен NeXT, а затем, в конечном итоге, Apple, когда в 1996 году они использовали OpenStep в OS X. С тех пор огромная часть операционной системы Apple была разработана на Objective-C, и это был самый высокий рост.

Однако, как известно, все хорошее в один прекрасный день становится отличной памятью, и именно это происходит с Objective в наши дни. Я на 100% уверен, что вы слышали о таких приложениях, как игра 2048, браузер Wordpress iOS или FireFox iOS. Как ни странно, язык программирования iOS, на котором написаны эти приложения, не является объективным, но это Swift.

Быстрый. Язык программирования приложений для iOS.

(эта информация должна была появиться на момент публикации статьи - февраль 2017 г .; некоторые изменения могут быть внесены позже)

В своем стремлении удивить клиентов Apple удалось превзойти все ожидания - особенно разработчики были более чем удивлены, когда в начале июня 2014 года появился новый язык программирования приложений для ios. Спустя 3 года разработки Swift программисты еще не прекратили работать над ним - уже было несколько обновлений, с последней версией Swift 4.0, выпущенной в сентябре 2016 года. Код, написанный на этом языке с открытым исходным кодом, может быть применен для macOS , iOS, watchOS, tvOS и (!) Linux.
Спустя 2 года Swift занял прочную позицию среди всех существующих языков мобильной разработки. Результаты опроса разработчиков Stack Overflow утверждают, что Swift занимает первые места в рейтинге самых популярных и востребованных языков, а Objective-C считается одним из самых устрашающих языков в этом году (2019).

Учитывая все аспекты, есть ли какие-то преимущества, которые выделяют Swift из толпы? Есть ли шанс, что он выдержит соревнование Swift vs Objective ?

Читайте также: 6 отличий разработки под iOS и Android: мифы vs реальность

Swift против Objective-C

Лошади для курсов, как говорится, но есть несколько неоспоримых красот, которые есть в Swift-programming-language-from-Apple. Вот несколько графически представленных плюсов и минусов для изучения.

Swift против Objective-C

Даже если процесс кодирования со всеми его высокотехнологичными функциями кажется вам ракетной наукой, более простой и прогрессивный подход, предложенный Swift, не может остаться незамеченным. С другой стороны, в Swift есть несколько вещей, которые некоторые могут назвать недостатками, например, необходимость использования Xcode в качестве основной интегрированной среды разработки; некоторые разработчики жалуются, что им лучше использовать сторонние IDE, которые превосходят Xcode по стабильности и функциям.

Причины использования Swift

Несмотря на все перечисленное выше, многие компании-разработчики по всему миру предпочитают использовать язык Swift, и Mind Studios здесь не исключение. Почему мы предпочитаем Swift при сравнении Objective-C? Есть несколько факторов, которые легко учитывать.

Swift - это ...

1) ... новее.

Objective-C исполнилось 33 года, и изначально он был продолжением языка C. В отличие от Apple, Swift стал отдельным языком, потому что компании стало трудно поддерживать и развивать Objective. За 3 года существования Swift активно развивался, скоро будет выпущена новая версия 4.

2) ... чище.

Благодаря новому синтаксису, добавленному в Swift, кажется, что его легче читать, компилировать и проверять код, чем это было раньше на Objective-C.

3) ... меньше времени.

Поскольку Swift требует написания меньшего количества строк кода, то, соответственно, требуется минимальное количество времени для завершения объема работы по созданию кода.

4) ... меньшее потребление памяти.

Ранее в Objective-C, если была объектная ссылка - она ​​занимала бы часть оперативной памяти; когда был реализован Swift - Apple оставила объектно-ориентированное программирование в покое и перешла на структуры. Как следствие, количество данных ссылочного типа и классов SDK уменьшилось, теперь изменилось для типа значения. Это привело к более эффективному использованию памяти в Swift.

5) ... быстрее.

Swift быстрее Obj-C

Swift справляется с данными быстрее, чем Obj-C; так же, как Objective-C, он использует компилятор LLVM для генерации оптимизированного собственного кода для платформы, на которой он работает. В Swift многие массивы переписываются как структуры; несколько классов раньше были объектами в Objective-C, что приводило к замедлению рабочего процесса кода; хотя для компиляции кода в Xcode IDE требуется больше времени, в конце концов, код работает быстрее на Swift.

6) ... не только для iOS.

Как уже упоминалось ранее, Swift уже адаптирован для Linux , и некоторые программисты уже попробовали его и на Android. По нашему опыту, серверная часть тоже может быть написана на Swift.

7) ... язык с открытым исходным кодом.

Очевидно, всю техническую документацию можно было прочитать - что в основном означает, что ее можно использовать в интересах ваших будущих прикладных продуктов. И даже более того - все желающие разработчики могут предложить свои решения, поскольку Apple создала Jira для отслеживания ошибок в Swift.

8)… типобезопасный язык.

В отличие от Objective-C, которого никогда не было. Согласно данным Stack Overflow, безопасность типов полезна не только во время выполнения, но и во время компиляции. Swift по-прежнему не проверяет типы во время выполнения, но выполняет проверку во время компиляции, что уже помогает устранить множество ошибок.

9) ... язык с перечислениями, дополнительными типами и удобными переключателями.

... что в основном означает, что его использование немного безопаснее. Objective-C всегда был объектно-ориентированным языком, но с некоторыми структурами, написанными для Swift, это в конечном итоге привело к меньшему количеству сбоев и повышению безопасности. Опять же, Apple сначала добавила необязательные типы, а затем, во-вторых, перечисления вместо целочисленных значений. Необязательные типы помогают проверить наличие объекта в коде, что позволяет избежать дополнительных сбоев. С помощью перечислений и переключателей для объектов Apple надеется сделать процесс программирования еще более захватывающим.
Пример перечислений Swift:

Пример перечислений:
Пример перечислений Swift Однако в Obj-C это было бы
 enum CompassPoint { case north case south case east case west }
 typedef NS_ENUM(NSInteger, CompassPoint) { north, south, east, west };

Переключатели:
в коде Swift они выглядят как Напротив, вот переключатели Obj-C
 switch character { case "a", "A": print("The letter A") case "b": print("The letter B”) default: print("Other letter") }
 switch (compassPoint) {
 case north: NSLog(@"North"); break; case south: NSLog(@"South"); break; case east: NSLog(@"East"); break; case west: NSLog(@"West"); break; default: break; }

Пример необязательного типа, присутствующего только в Swift
развернуть необязательно:
 var test: String? if let test = test { print(“\(test) is unwrapped now ??”) } guard let test = test else { print(“test is nil ??”) return } print(“\(test) is unwrapped!”)
#### 9) ... непрекращающееся обновление. Как уже упоминалось, 4 версии свежего Swift уже увидели свет, и в эти дни мы ждем, что Swift 3.1 будет выпущен как можно скорее. Кроме того, ходят слухи, что грядущий [Swift 4.0] (https://themindstudios.com/blog/swift-4-vs-swift-3-differences/) будет иметь обратную совместимость, то есть интеграцию из более старых языковых версий версий 3.1, 3.0 и т. д. в будущем станет проще.

Читайте также: Шаблоны архитектуры для разработки под iOS

Это все быстро и хорошо.

Плюсы использования Swift вместо Objective-C

Было бы необоснованным утверждением, если бы кто-то попытался поговорить о технологиях, прежде чем фактически дать им шанс. Итак, судя по опыту, который у нас уже есть в Mind Studios, с Swift довольно удобно работать.
Некоторые из наших последних приложений написаны на Swift, в том числе:

  • Gadh iOS - приложение для онлайн-консультаций по телефону и видео с вашим юристом
  • Stern Fit - социальная сеть для увлеченных спортсменов
  • TapToTrip - удобный планировщик маршрутов и путешествий
  • LIT - электронная книга премиум-класса в формате EPUB
  • Unagrande YogaClub - видео-уроки йоги для увлеченных людей
    Все ранее упомянутые приложения включают в себя различные технологии, которые можно легко реализовать на Swift.

Хотите узнать больше о наборе для разработки дополненной реальности?

Подводя итог - какого языка вам следует придерживаться?

Сам этот вопрос не имеет универсального ответа. С одной стороны, как это часто бывает в IT - зачастую самые свежие технологии - это решение; с другой стороны, смена лошадей на полпути может быть не самой эффективной политикой, поскольку каждый проект индивидуален. Поэтому, что бы вы ни выбрали, просто убедитесь, что это хорошо подходит для бизнес-модели для этой конкретной рыночной отрасли и функций, которые вы выбрали для своего будущего продукта.

Авторы Макс Машков, Юрий Смирнов и Элина Бессарабова.

Требуется консультация, какую технологию использовать для вашего проекта? Напишите нам!