Все возможные систем постоянного хранения (Persistence) в iOS:
-
UserDefaults. Чаще используется, когда нужно сохранить небольшой объем данных (менее 100 КБ). Ограниченная (только Property Lists);
-
Codable / JSON. Понятный способ преобразования практически любой структуры данных в формат JSON обмена данными и наоборот;
-
UIDocument. Интегрирует приложение Files и данные, воспринимаемые пользователем как «документы” в ваше приложение. До iOS 13 являлся UIKit ориентированным, в iOS 14 в SwiftUI 2.0 появился DocumentGroup;
-
Core Data Мощная. Объектно-ориентированная. Элегантная интеграция со SwiftUI
Используется для больших моделей данных, управления каскадными обновлениями, версионирования, работы с графами объектов. Хорошей литературы мало, но пару ресурсов можно посоветовать: обзор на YouTube. Важно отметить, что CloudKit отлично работает с Core Data, так что данные, сохраненные в Core Data, могут также появиться на всех устройствах пользователя;
-
Realm
-
Cloud Kit. Запоминание данных в базе данных, расположенной в «облаке» (то есть в интернете), которая работает полностью асинхронно. Следовательно, данные появляются на любых устройствах пользователя. Это очень простая в использовании база данных, у нее есть основные операции базы данных, но не такие полноценные как у Core Data, однако она отлично работает с Core Data (так что ваши данные в Core Data могут также появиться на всех устройствах);
-
FileManager/URL/Data. Запоминание данных в Unix файловой системе в iOS;
-
Keychain - представляет собой зашифрованную базу данных, куда сохраняются небольшие объемы конфиденциальной пользовательской информации: пароли, данные платежных карт, токены авторизации и так далее. API достаточно простой, для понимания будет достаточно одной статьи.
Все эти способы хранения, за исключением Codable / JSON, имеют API ещё ДО-Swift эпохи;
4.2.3 Persistence Theme Folder | Back To iOSWiki Contents | 4.2.3.2 iOS Data Persistance