Swift и Objective-C

Поделиться:

На вопросы из этого раздела отвечали только те, кто выбрал Swift или Objective-C в качестве одного из трех основных языков программирования.

Для каких платформ Apple вы разрабатываете приложения?

91%

iOS

34%

macOS

10%

watchOS

4%

tvOS

3%

Не веду разработку под платформы Apple

Используете ли вы Swift и Objective-C совместно в одном проекте?

62%

Да, большая часть кодовой базы написана на Swift

23%

Да, большая часть кодовой базы написана на Objective-C

16%

Нет

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

Кшиштоф Заблоцкий

Создатель Sourcery и других опенсорс-проектов, на основе которых работают более 80 000 приложений

Пишете ли вы юнит-тесты при разработке на Swift или Objective-C?

Разработчики кросс-платформенных приложений

Все

Разработчики мобильных приложений

Кросс-платформенная разработка: Swift/Objective-C-разработчики, использующие кросс-платформенные технологии. Мобильная разработка: Swift/Objective-C-разработчики, создающие приложения для мобильных платформ.

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

Кшиштоф Заблоцкий

Создатель Sourcery и других опенсорс-проектов, на основе которых работают более 80 000 приложений

Множество Swift/Objective-C-разработчиков все еще не занимаются юнит-тестированием. Те, кто подключится к этому процессу, будут иметь преимущество перед остальными.

Джон Рид

Преподаватель в Industrial Logic, автор книги «iOS Unit Testing by Example»

Какие фреймворки вы регулярно используете для юнит-тестирования?

94%

XCTest

11%

Quick + Nimble

2%

Другое

Apple значительно улучшила поддержку XCTest и Xcode для тестирования. Сейчас гораздо меньше людей используют другие фреймворки, потому что затраты на обучение и решение проблем с поддержкой обычно превышают выгоду.

Кшиштоф Заблоцкий

Создатель Sourcery и других опенсорс-проектов, на основе которых работают более 80 000 приложений

Какие mock/matcher-фреймворки вы регулярно используете?

6%

OCMock

5%

SwiftHamcrest

5%

OCMockito

3%

Cuckoo

1%

OCHamcrest

2%

Другое

81%

Никакие

Используете ли вы UI-тесты?

Разработчики кросс-платформенных приложений

Разработчики мобильных приложений

Все

UI-тесты выполняются гораздо медленнее и зачастую менее надежны. Для разработки через тестирование они не слишком полезны, и большинство компаний не запускают их на каждом пул-реквесте, оставляя для непрерывной интеграции или ночных сборок.

Кшиштоф Заблоцкий

Создатель Sourcery и других опенсорс-проектов, на основе которых работают более 80 000 приложений

Какие фреймворки вы регулярно используете для UI-тестирования?

71%

XCTest

14%

iOSSnapshotTestCase

13%

EarlGrey

8%

KIF

4%

Другое

Каким менеджером зависимостей вы пользуетесь?

61%

CocoaPods

47%

Swift Package Manager

11%

Carthage

1%

Другое

18%

Никакие

75%

CocoaPods

41%

Swift Package Manager

12%

Carthage

2%

Другое

11%

Никакие

69%

CocoaPods

47%

Swift Package Manager

12%

Carthage

2%

Другое

12%

Никакие

Планируете ли вы заменить зависимости CocoaPods пакетами SPM?

Какую комбинацию СУБД и фреймворка вы используете?

31%

Firebase

28%

CoreData

28%

SQLite с собственной оберткой

24%

Realm

1%

YAPDataBase

3%

Другое

26%

Никакие

41%

Firebase

23%

CoreData

37%

SQLite с собственной оберткой

27%

Realm

4%

Другое

20%

Никакие

35%

Firebase

29%

CoreData

29%

SQLite с собственной оберткой

28%

Realm

1%

YAPDataBase

3%

Другое

21%

Никакие

Разрабатываете ли вы с помощью Swift на Linux?

5%

Да

13%

Нет, но планирую в ближайшие 12 месяцев

83%

Нет, и не планирую в ближайшие 12 месяцев

Вы разрабатываете серверные проекты на Swift?

2021

2022

Меня совершенно не удивляет, что мало кто использует этот стек: все-таки он достаточно новый по сравнению с конкурентами. Но от нескольких разработчиков, которые работают со Swift on Server, я слышал только хвалебные отзывы.

Кшиштоф Заблоцкий

Создатель Sourcery и других опенсорс-проектов, на основе которых работают более 80 000 приложений

Swift и Objective-C:

2022

Спасибо, что уделили время!

Если результаты исследования показались вам интересными, поделитесь ими с друзьями и коллегами.

Если у вас есть вопросы или пожелания, свяжитесь с нами по адресу surveys@jetbrains.com.