С какими технологиями в iOS-разработке вы предпочитаете не работать и почему?

«С какими технологиями в iOS-разработке вы предпочитаете не работать и почему?» — вопрос из категории Софт-скиллы, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый пример ответа, который можно адаптировать под свой опыт.

Ответ

Есть несколько технологий, работу с которыми я стараюсь минимизировать:

  • SwiftUI (в продакшене для сложных проектов): Несмотря на преимущества, фреймворк еще «сыроват». Часты критические изменения API между мажорными версиями iOS, что усложняет долгосрочную поддержку. Для сложных, долгоживущих проектов стабильность UIKit часто предпочтительнее.
  • Core Data: Объектно-графовая модель и привязка к контекстам создают сложности с многопоточностью и отладкой. Для новых проектов я выбираю Realm или чистый SQLite с оберткой типа GRDB.
  • Firebase (как основная бэкенд-инфраструктура): Созет сильную зависимость от Google, а оффлайн-логика может быть нетривиальной. Для полного контроля лучше кастомное решение на основе SwiftNIO или Vapor.
  • Objective-C: Язык устарел, и его поддержка Apple постепенно сокращается. Работа с ним в legacy-проектах — это часто необходимость, а не выбор.

Пример проблемы с Core Data:

// Неочевидные ошибки при сохранении из-за состояния контекста.
// Ошибка теряется, если использовать try?, что затрудняет отладку.
try? context.save() // Может завершиться молчаливым сбоем.