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

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

Ответ

Основные сложности были связаны с внедрением новых обязательных функций и изменением ключевых API.

1. Темная тема (Dark Mode) Требовала системного перехода от жестко заданных цветов к семантическим.

// Проблема: хардкод цветов
view.backgroundColor = .white

// Решение: использование системных цветов
view.backgroundColor = .systemBackground

Неадаптированные приложения могли показывать нечитаемый текст (например, белый текст на белом фоне).

2. Вход через Apple (Sign In with Apple) Стал обязательным для приложений, предлагающих сторонние способы входа (Google, Facebook). Отсутствие этой опции приводило к отклонению приложения в App Store.

3. Новый фоновый режим (BackgroundTasks) Фреймворк BackgroundTasks заменил устаревшие UIApplication методы, но в ранних версиях iOS 13 был нестабилен и сложен в отладке.

4. Diffable Data Source для UICollectionView Новый декларативный API (UICollectionViewDiffableDataSource) требовал переписывания логики обновления данных и страдал от недостатка документации и багов на старте.

5. Ужесточение политики конфиденциальности Потребовались новые ключи в Info.plist (например, NSLocationAlwaysAndWhenInUseDescription) и явные запросы разрешений для доступа к геолокации и Bluetooth, что усложнило логику инициализации.