Что это простыми словами
Core Data — это инструмент для хранения и управления данными в iOS-приложениях. Когда вы сохраняете заметку, добавляете товар в избранное или отмечаете задачу выполненной, приложение запоминает это через Core Data.
Аналогия: представьте библиотеку с каталогом. Вы не просто складываете книги в кучу — вы регистрируете каждую в каталоге, связываете с автором и жанром, можете быстро найти нужную или показать все книги одного автора. Core Data делает то же самое с данными приложения: структурирует их, связывает между собой и помогает быстро находить.
Официальное определение
Теперь, когда суть понятна, вот как Core Data описывают в вакансиях и документации. Эту формулировку вы будете встречать у заказчика, в резюме и в речи разработчиков — теперь вы понимаете, что за ней стоит.
«Core Data — объектно-ориентированный фреймворк для управления графом объектов с поддержкой персистентности данных».
Разберём по словам. «Объектно-ориентированный» — работает с данными как с готовыми сущностями (пользователь, заметка, задача), а не с таблицами и строками. «Граф объектов» — данные связаны между собой: у пользователя есть список его заметок, у заметки — автор. «Персистентность» — данные сохраняются на устройстве и остаются после закрытия приложения. «Фреймворк» — готовый набор инструментов, встроенный в систему.
Зачем нужен и какую задачу решает
Без Core Data разработчику пришлось бы вручную писать код для сохранения каждого типа данных, следить за связями и обновлениями. Core Data берёт эту рутину на себя: вы описываете структуру данных один раз, а дальше фреймворк автоматически сохраняет изменения, отслеживает связи и позволяет делать сложные выборки.
Особенно полезен в приложениях, где много связанных данных и сложная логика: списки задач с подзадачами, заметки с тегами и категориями, приложения для учёта чего-либо. Для простых случаев (сохранить пару настроек) он избыточен.
К кому относится: язык, специальность, экосистема
Core Data — инструмент iOS-разработчика (также работает на macOS, watchOS и tvOS, но основное применение — мобильные приложения). Работает на языке Swift, раньше использовался с Objective-C.
Core Data — часть экосистемы UIKit, классического фреймворка для создания iOS-интерфейсов. Встроен в систему, дополнительно устанавливать не нужно. В резюме iOS-разработчика Core Data обычно идёт в списке технологий вместе с UIKit, Swift и другими инструментами Apple.
С чем взаимозаменяем
Основные альтернативы для хранения данных в iOS:
Realm — сторонняя база данных для мобильных приложений. Проще в освоении, чем Core Data, быстрее работает на больших объёмах.
SQLite напрямую — работа с базой данных без фреймворка-прослойки. Даёт больше контроля, но требует больше ручного кода.
SwiftData — новый инструмент от Apple (2023 год), построенный поверх Core Data, но с более современным подходом. Пока встречается реже, но постепенно набирает популярность.
Переход между ними дорогой: логика работы с данными разная, код приходится переписывать. Опыт с Core Data частично помогает понять концепции, но человек с Core Data не заменит человека с Realm без обучения.
Что не путать
Core Data ≠ база данных: это не готовое хранилище, а фреймворк для управления данными. Внутри он может использовать SQLite, но сам по себе базой не является.
Core Data ≠ CloudKit: Core Data хранит данные на устройстве, а CloudKit синхронизирует их между устройствами через облако Apple. Они могут работать вместе.
Core Data ≠ UserDefaults: UserDefaults — для простых настроек (пара ключ-значение), Core Data — для сложных связанных данных.
Core Data ≠ SwiftData: SwiftData — это новый фреймворк от Apple, построенный поверх Core Data, но с более современным синтаксисом. Опыт частично переносится, но это разные инструменты.
Насколько это важно при отборе
Короткий ответ: зависит от проекта.
Если в проекте уже используется Core Data и нужно поддерживать или расширять существующую логику — опыт с ним критичен. Переход с других решений дорогой, и человеку без опыта понадобится время на освоение. В таких случаях требование Core Data в вакансии оправданно.
Если проект новый или используется другое решение (Realm, SwiftData), то требовать именно Core Data не нужно — iOS-разработчик с опытом работы с данными освоит любой инструмент. Отсеивать кандидата только из-за отсутствия Core Data при наличии аналогичного опыта — ошибка.
Общее правило: если в вакансии указан Core Data — уточните у заказчика, используется ли он в проекте прямо сейчас. Если да — это жёсткое требование. Если это просто пожелание — опыт с Realm или другими решениями подойдёт.
Это общий ориентир. В разных компаниях требования отличаются, поэтому всегда сверяйтесь с текстом конкретной вакансии.