Комментарии 15
Странная картинка. Что за предмет одежды чинит этот мальчик?
Пугает простота, с которой Дали отрисовывает машинку, приштопывающую *заплатку* (ууу, отсылка к названию и теме статьи, ууу) не только к штанине, но и к ноге парнишки. В целом, лучше не вглядываться в обложку, потому что 'чем дольше всматриваешься в бездну, тем пристальнее она всматривается в тебя'.
А по сабжу - красивое решение, но хотелось бы ещё хотя бы один пример.
Мы у нас в проектах не смешиваем freezed с json. Для data - слоя используются json модельки, для domain-слоя - freezed. Думал, это общепринятая практика (clean architecture).
Не вижу противоречий. Локализация - сущность domain слоя, тогда как патч - json моделька. Не стоит использовать класс локализации для транспортировки, так же как не стоит использовать в domain слое класс патча.
Замечу, что формально ничего не мешает генерировать транспортировочные модельки с помощью freezed. Он отлично для этого подходит.
«Удалено автором»
Ничего не понял. Зачем весь этот огород, если в дарт есть готовая, отличная система локализации?
dart pub global activate intl
Так не судьба?
Данная статья является туториалом по написанию простейшего кодогенератора. Тема с локализацией рассматривается как пример.
Пакет intl тоже имеет кодогенератор, однако он не позволит получить, например, arb файл из интернета во время работы приложения и использовать его для локализации. Более того, в одном из текущих проектов мы инициализируем локализацию на устройстве, используя пакет intl, уже после чего можем доносить себе патчи через наш сервер и firebase remote config.
Данная статья является туториалом по написанию простейшего кодогенератора. Тема с локализацией рассматривается как пример.
Согласитесь, разумнее было бы в качестве примера взять более практически применимую задачу, чем дублирование intl.
однако он не позволит получить, например, arb файл из интернета во время работы приложения и использовать его для локализации
Не очень представляю себе такой сценарий использования. Чтобы использовать строки из .arb, код приложения должен знать, что такая строка в нём есть – добавить новую строку, не меняя код приложения не получится. Да и зачем менять строки в рантайме, я не знаю. Это же не контент, а UI. Опечатку разве что исправить – а как часто это нужно? Может, я ошибаюсь – тогда поясните.
В качестве примеров половина интернета переписала туду списки и калькуляторы. ИМХО в материалах для обучения оригинальность не главный фактор.
На второе ответ проще - бизнес хочет. Ну что тут можно поделать, менеджер сказал "хочу", пилим генератор. Лучше так, чем каждый раз писать руками.
С первой частью ответа частично согласен. Буду стараться писать статьи интереснее и обязательно попробую найти примеры получше. Нет предела совершенству) Не судите слишком строго, у меня всего пара текстов за плечами.
Патчим freezed