Keychain: что в нём хранить и как с ним работать?
Суть
Keychain — зашифрованное системное хранилище для маленьких секретов: access/refresh-токены, пароли, ключи шифрования, идентификатор, который должен пережить переустановку. Записи шифруются ключами, привязанными к устройству и коду-паролю, а доступ идёт через системный демон по IPC. Это медленнее UserDefaults, поэтому значения читают по необходимости и держат в памяти.
Не место для Keychain: большие данные и кэши (шифруйте файл, а в Keychain храните ключ), несекретные настройки, а также секреты, которых вообще не должно быть на клиенте: API-ключ, вшитый в приложение, извлекается из бинаря независимо от способа хранения.
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep