Нонконформизм в современной iOS-разработке (a.k.a. Я решил познакомиться с Objective-C)

July 10, 2020

TL;DR: Я написал простое приложение не Objective-C, чтобы узнать его поближе и лучше понимать примеры, написанные на нём. Оказалось, Swift позаимствовал много терминов, из-за чего Obj-C гораздо понятнее, чем кажется.

На недавнем WWDC было много интересных нововведений, и одна из вещей, новостей о которой я ждал, был SwiftUI. Когда его представили в 2019 году, в среде iOS разработчиков к нему относились примерно как к Swift в 2014 году - Apple здорово продекламировал свою новую технологию, но стоит ли бросать всё и переходить на неё? Единогласное "нет". И точно так же SwiftUI стал предметом бесконечных споров на тему "есть ли будущее у [название технологии]?".

Спустя уже 6 лет Apple дали понять, что будущее всё-таки за Swift, и сейчас вакансий, которые требуют в первую очередь этот относительно молодой язык, гораздо больше, чем 1-3 года назад. То же самое может быть с SwiftUI, но для того, чтобы с уверенностью говорить об этом, я ждал конференции. Мне казалось, что если Apple сделает большое обновление, они таким образом дадут понять, что настроены серьёзно. Если нет - они могли и вовсе завернуть технологию, как они делают со всем, что не приносит нужных им результатов.

Обновление вышло, но выводы делать пока что рано, и мало проектов выходят в продакшн именно на SwiftUI. А вот с выбором языка вопросов нет - все новые проекты, которые я видел, пишутся на Swift. Да, некоторые используют сторонние библиотеки, написанные на Obj-C, но сами проекты полностью на Swift. И это логично - язык несколько раз обновлялся, в результате чего становился лучше и удобнее для разработки, и сейчас ничем не уступает своему предшественнику. Однако!

Как я писал выше, сейчас можно найти много вакансий, где в первую очередь требуют Swift, т.к. проект или уже переписан, или изначально был написан на нём, а значит Obj-C не понадобится. Тем не менее, в вакансии всегда указывается, что знание Obj-C является бонусом, да и вообще, с учётом того, что много терминов из Obj-C и Cocoa перекочевали в современную разработку на Swift, умение читать старую документацию и ответы на stackoverflow в теории упрощают жизнь. Поэтому я решил написать простое приложение на Obj-C, чтобы поближе познакомиться с его синтаксисом и отличиями от Swift. Это простая таблица со списком постов с этого блога, при нажатии на ячейку переход на полный текст поста.

Думаю, что в будущем дополню этот пост показавшимися мне интересными особенностями и отличиями/сходствами со сфитом.