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

Народ подскажите как верно ли я организвал структуру ? 1)

Есть набор Fragment (тут а обрабатываю все реакции происходящие во View , всякие там OnClick)
2) Для каждого из них я создаю свою AndroidViewModel ( тут я храню все данные)
3) В качестве View используется XML с биндингом данных

——-
Вопросы :
1) Всякие onClick , по кнопкам и все события происходящие во View обрабатывает у меня сам Fragment , нужно ли создавать еще один слой абстракции и использовать для бизнес логики Serivice ?
2) Будет ли верным реализовывать бизнес логику во AndroidViewModel
3) Правельный ли подход создать набор AndroidViewModel в которых акумулирована логика работы с определённым набором данных , потом просто их довольно легко использовать добавиы к фрагменту.
4) Верно ли хранить ссылку на binding в нутри AndroidViewModel ?
5) Верно ли в нутри одной AndroidViewModel исполььзовать другие AndroidViewModel с другой логикой (или задача этих классов тольько хранение данных которые не умирают)

5 ответов

7 просмотров

Ну, а зачем тебе android viewmodel, это не самое лучшее решение, следует избегать использование связанных с жц компонентов во вьюмодели. Зачем хранить ссылку на биндинг во вьюмодели? Будет лик, при использовании фрагментов создавай инстанс биндинга в oncreateview и заналивай в ondestroyview. Все обновления стейтов только через дата-холдэры Для бизнес логики дели все на слои, можно ещё и на модули, зависит от сложности проекта и команды Первый вопрос не понял, что за сервис? Ты хочешь написать свой собственный а-ля биндер?

Andrei- Автор вопроса

1) binding за тем и храню в модели что бы не заморачиваться с сохранением состояния при уничтожении фрагмента или активности, если это не верно то скажите почему так не стоит делать 2) AndroidМiewModel - живёт на протяжении всего жизненного цикла активности, или фрагмента к которому она привязана в не зависимости от его текущего состояния потому и исполььзую

Касательно биндинга, смотри, ты его создал в фэктори, после создании ты передал его во вьюмодель, все. Активити умерла, конфиг сменился, ты что делаешь? У тебя в вм старый биндинг, не новый, ты его скорее все все делаешь мутабельным и открытым, все это не vm, а херь какая-то, те при каждом повороте надо обновлять его поле, чего вообще быть не должно

Andrei- Автор вопроса

после onDestroy умирает и ViewModel

ViewModel умирает в onCleared()

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

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

Типа вызывать GetParent и проверять на соответствие GetModuleHandle?
The Bird of Hermes
67
Do any of you guys have interesting projects one could join? I'm a Middle Full-Stack developer (JS/TS, React & Node)
Lev Shapiro
40
$res = json_decode($наша строка из респонса); $res1 = array_map(fn($o) => $o->name, $res->breadcrumbs[0]->entities); Как такое будет на Хаскеле?.. В начале весь джейсон, в ко...
Хаскель Моисеевич Гопник
27
В чем сила брат, в NASM или FASM?
Isaac Kleiner
18
Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
11
Хтось використовував Vapor на Windows?
Jaroshevskii
15
А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
Тут кста кто-нибудь NeoVim использует?
Simple Sorcerer
13
Оба варианта в целом подходят, но скорее создание конфликтной ситуации (на пустой основе). В прошлый раз он сказал мне про ESP32, я забыл про этот микроконтроллер, ошибся, я п...
КТ315
4
Карта сайта