214 похожих чатов

Артур, с интересом посмотрел твой доклад. Ты сказал что скрещивать

Android Data Bindings с ViewModel идея так себе. Если я тебя правильно понял, ты считаешь что если и использовать это, то только по схеме когда мы во view подписываемся на изменения LiveData во ViewModel. А как тебе идея когда мы всю (по возможности) логику представления нашей бизнес-модели запихаем в BindingsAdapters? Грубо говоря оборачиваем модель в ObservableField<>, во view через кастомный атрибут передаем в адаптер это поле и view в которой должно отобразится ее представление, а внутри адаптера уже делаем все что нам нужно (видимость, форматирование текста). Такие адапторы относительно просто тестировать при помощи инструментальных тестов. Таким же образом можно решить проблему с анимациями, можно держать во ViewModel ObservableBoolean isAnimationStarted и анимацию стартовать в BindingAdaptor (чтобы при повороте не повторилось делать ее сразу после true в false). В некторых кейсах очень удобно использовать двусторонний DataBinding. P.S. Кейсы которые пока незнаю как решить при помощи BindingAdapter есть, например AlertDialog с подтверждением действия пользователя. Как ты сказал в докладе это можно костылить при помощи SingleEventLiveData (но возможно гугл действительно что-то придумает для решения этой проблемы).

1 ответов

7 просмотров

Спасибо) Честно - пока это звучит очень сложно и напоминает какой-то изврат и не очень понятно, во имя чего. Я вообще против пихания чего-то серьезного в BindingAdapter-ы, которые по сути статик методы сами в себе. И вообще, конечно, можно, но тогда от архитектурных компонент остается только ViewModel, которая используется как штука, переживающая изменения конфигурации. Таких штук не счесть :)

Похожие вопросы

Обсуждают сегодня

коллеги привет. уже второй день бьемся об заклад с одной ошибкой, может вы сталкивались с таки странным поведением? есть тестовый сервер, на который паблишим релизную версию W...
Magzhan
11
Комрады, посоветуйте, куда копать? Стал прикручивать кастомизацию тем. В OnShow главной главной формы пытаюсь загрузить из файла настроек и применить тему (на скрине, как долж...
Ed Doc
13
Такс, блин, таки кто-то знает, каким образом работают макросы stdin/stdout/stderr? Я влез в stdio.h, там определения нет, отладил через асмокод - вызывается функция со странны...
The Bird of Hermes
18
OnShow один раз вызывается? или возможен Hide?
Iluha Companets
14
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Всем привет, на линуксе лучше на fasm или nasm учиться писать для начала ?
meszjol
14
Если у меня есть такой класс: Object = {} function Object:new(a_name, a_transform, a_color, a_mesh, a_material, a_shader, a_textures) local private = {} private.n...
Cuarno Vile
4
Гайз, кто-нибудь пробовал запустить probe-rs под камень, которого нет в probe-rs? Мб есть какой-нибудь пример у кого... Через target-gen попробовал сгенерировать chip-descript...
Максим Смирнов
2
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
Карта сайта