UserDefaults & Keychain
UserDefaults, Keychain Services, безпечне зберігання, конфіденційні дані, найкращі практики
1Що таке UserDefaults в iOS?
Що таке UserDefaults в iOS?
Відповідь
UserDefaults — це проста система зберігання для збереження неконфіденційних даних, таких як налаштування користувача. Дані зберігаються у форматі plist на диску та легко доступні. Проте дані не зашифровані, тому конфіденційну інформацію, як-от паролі чи токени автентифікації, ніколи не слід там зберігати.
2Що таке Keychain Services в iOS?
Що таке Keychain Services в iOS?
Відповідь
Keychain Services — це API безпеки, що дозволяє зберігати конфіденційні дані в зашифрованому та безпечному вигляді. На сучасних пристроях він використовує Secure Enclave для захисту даних. Keychain є рекомендованим підходом для зберігання паролів, токенів, сертифікатів та іншої критично важливої для безпеки інформації застосунку.
3Як отримати доступ до стандартного екземпляра UserDefaults?
Як отримати доступ до стандартного екземпляра UserDefaults?
Відповідь
UserDefaults.standard — це стандартний спосіб доступу до спільного екземпляра за замовчуванням у всьому застосунку. Цей екземпляр автоматично зберігає дані на диск. За допомогою init(suiteName:) можна створювати іменовані екземпляри для спільного використання даних між застосунком та його розширеннями через App Groups, але UserDefaults.standard охоплює більшість простих сценаріїв використання. Уникайте створення кількох стандартних екземплярів, оскільки це може спричинити неузгодженість даних.
Які типи даних UserDefaults може зберігати безпосередньо?
Коли доречно використовувати UserDefaults замість Keychain?
+17 питань зі співбесід
Інші теми співбесід iOS
Основи Swift
Основи мови Swift
Основи UIKit
Життєвий цикл UIViewController
Життєвий цикл застосунку
Auto Layout & Constraints
UITableView & UICollectionView
Основи SwiftUI
Керування станом у SwiftUI
Навігація SwiftUI
Networking & URLSession
Codable та парсинг JSON
Core Data
Протоколо-орієнтоване програмування
Архітектура MVVM
Push-сповіщення
Модульне тестування та XCTest
Тестування інтерфейсу користувача
Xcode і система збірки
Swift Package Manager
Memory Management & ARC
Combine Framework
Concurrency & async/await
iOS Design Patterns
Оптимізація продуктивності
Безпека та шифрування
SwiftUI Advanced
Архітектура застосунків iOS
Опануй iOS для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно