Core Data, SwiftData, SQLite или файлы
Вопрос
Как вы выбираете способ хранения данных в iOS-приложении?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Объём и структура данных: настройки, документы, связанные сущности
Нужны ли запросы, сортировка, поиск, миграции
Core Data: зрелость, фоновые контексты, миграции, CloudKit
SwiftData: удобство в SwiftUI, но минимальная iOS 17 и меньше зрелости
SQLite через GRDB и подобные: полный контроль над SQL
Секреты отдельно в Keychain
Что могут спросить следом
- Как вы мигрируете схему базы между версиями?
- Где хранить кеш ответов API для офлайна?
Разбор
Сначала смотрю на данные. Настройки и флаги в UserDefaults, секреты в Keychain, документы пользователя файлами. Если данные связанные, их много и нужны запросы, нужна база. Core Data зрелая: фоновые контексты, легковесные миграции, синхронизация через CloudKit, но API многословный и есть правила потоков. SwiftData удобнее в SwiftUI (@Model, @Query), но требует iOS 17 и пока менее предсказуема на сложных схемах. Если команда хочет контроля и обычный SQL, беру SQLite через библиотеку вроде GRDB. В любом варианте думаю заранее о миграциях схемы и о том, что база работает не на главном потоке.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.