Я разрабатываю приложение, которое требует перевода на 2 языка. Переводы запрашиваются с сервера.
Я создал struct TranslationService, которая хранит все переводы и имеет функцию, которая возвращает переведенную фразу на основе кода
struct TranslationService: Codable {
var translations: [Translation]
func getTranslation(by code: String) -> String? {
let result = translations.filter { $0.string == code }
return result.first?.translation
}
То есть при запуске в AppDelegate Я делаю запрос к серверу, чтобы получить переводы, и когда запрос выполнен, я создаю TranslationService и устанавливаю массив translations равныммассив ответов сервера.
Далее мне интересно, какой из двух вариантов лучше:
Опция 1: Передайте его в rootController и распространить его повсюду в приложении с помощью внедрения зависимости конструктора
Вариант 2: Сохранить его в UserDefaults и извлечь его в каждом ViewController и использовать, если он есть