Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 30
×
Senior Software Engineer в EPAM
  • Логіка відображення стану View в Android: проектуємо і тестуємо

    Функции тоже очень хорошо прибиваются прямо к графическому интерфейсу.

    Ну как раз это и проблема. Реактивность и много функций вызываемых асинхронно приводят иногда к интересным состояниям Вью

  • Логіка відображення стану View в Android: проектуємо і тестуємо

    «Африкан Свиридович. Та не кажи, ці коти вже з@#али, я їх усіх віддав би на мило!
    Баба Химка. Він, клятий, мишей зовсім не чіпа. Каже, шо з мишами треба
    поводитись так, як хочеш, шоб миші поводились з тобою...
    Саломон Самсонович. Ти диви, Толстого читав!
    Свирид Опанасович. Топити треба.
    Голос з сіней. Не треба.
    Входять мишки — Вєра і Надєжда. При першому ж погляді на их становиться ясно,
    чому Мурзік увльокся Толстим.»
    Лесь Подерв’янський.Казка про рєпку

    Що таке MVI паттерн?

    Як написав автор, MVI це спроба переосмислення і повернення до витоків, до істинного MVC. cycle.js.org/...​-what-mvc-is-really-about

    MVI — представлений в 2015 році. Додано та змінено в порівнянні з MVVM:

    Intent — функція, яка приймає вхідні дані від користувача (наприклад, події призначеного для користувача інтерфейсу, такі як події click) і переводить в те, що буде передано як параметр функції model (). Це може бути проста рядок для установки значення моделі або більш складна структура даних, наприклад, об’єкт.

    Model — Функція, яка використовує вихідні дані з функції intent () в якості вхідних даних для роботи з моделлю. Результат роботи цієї функції — нова модель (зі зміненим станом). При цьому потрібно, щоб дані були незмінними. По суті, Модель здійснює виклик бізнес-логіки додатка (будь-то Interactor, UseCase, Repository) і в результаті повертає новий об’єкт моделі.

    View — Функція, яка отримує на вході модель і просто відображає її. Зазвичай ця функція виглядає як view.render (model).

    Детальніше про групу архітектур об’єднану ідеєю «односпрямованого потоку даних» см. Тут докладно і з картинками, див. Тут

    Основна проблема, яку це диво вирішує— що в MVP і MVVM станом управляє Presenter або ViewModel. До чого це призводить:

    1. У бізнес-логіки є власний стан, так само, як у Presenter або ViewModel. Ви намагаєтеся синхронізувати стан бізнес-логіки й Presenter, щоб вони були однаковими. Встановлюєте видимість якогось віджета прямо з View, або Android сам відновлює стан з bundle під час перевтілення.

    2. Presenter і ViewModel мають довільну кількість вхідних точок. View запускає подію, яка обробляє Presenter. Але і Presenter має багато каналів виведення — як view.showLoading () або view.showError () в MVP. А ViewModel пропонує множинні Observables. Це призводить до конфліктуючих станів View, Presenter і бізнес-логіки, особливо при роботі з декількома потоками.

    Говорячи по іншому у нас одночасно може з’явитися відображення помилки та лоадер з процентом )

  • Логіка відображення стану View в Android: проектуємо і тестуємо

    Звичайно, то що вийшло після доповнення «канонічного» MVVM більш нагадує інше трибуквенне слово MVI (Model-View-Intent). Загалом то схоже, різниця в загальному то термінологічна, ідеологічно це те ж потрапляє в тренд «односпрямованого потоку даних». Детальніше ми це розглянемо у другій частині, коли будемо розглядати реалізацію ViewModel.

  • Логіка відображення стану View в Android: проектуємо і тестуємо

    Глобальные события — события системы. Например изменение состояния интернета. Ну а равноправность стейтов —это ближе к конкретным бизнес правилам. В общем случае это предсталяется в виде нескольких FSM, упростить к конкретным правилам всегда можно.

    Это комбинации значений полей вьюмодела, которые прибиты к XML форме вьюхи.

    А тогда набор настроек данных полей

    которые прибиты к XML форме вьюхи.

    можно ли назвать состоянием вью?

  • Логіка відображення стану View в Android: проектуємо і тестуємо

    . Databinding.
    Он уже включает в себя всю логику контракта путём привязывания значений состояния вьюмодела к атрибутам вьюхи.

    Тут можно ли пояснить, что имеется ввиду под «состояния вьюмодела». Так как, по моему, логика поведения != логика отображения. У вьюмодел этих самых состояний может быть гораздо больше чем у вью. Например добавочная логика состояний и переходов вьюмодел (fsm) по реакции на действия пользователя, ну и на состояние даных своя логика, и на глобальные события еще одна.

  • Логіка відображення стану View в Android: проектуємо і тестуємо

    Про цей MVI — те що в статті описане, як раз і реалізує його плюси, та оминає мінуси, якщо ми базуємось на визначеннях, аналогічних з blog.mindorks.com/...​inners-step-by-step-guide або proandroiddev.com/...​and-channels-d36820b2028d В статтю звичайно, додам, спасибі за зауваження, просто планувалось у спін-оффі разом з розповіддю про додаткові FSM на користувацькі дії та внутрішні стани.
    Про BLoC добра вказівка, „If you know about the MVVM (Model-View-ViewModel) pattern, the BLoC is the replacement for ViewModel. The BLoC is responsible for managing the state for View, and the Model (or Repository) helps the BLoC to access data no matter local or remote. In Flutter, there is no data binding” це звідси medium.com/...​ there is no data binding.
    Про BLoC та MVI також гарне зауваження, що треба розглянути оці базворди в одній системі вимірів.

    Підтримав: Stanyslav Semukhyn
  • Логіка відображення стану View в Android: проектуємо і тестуємо

    Хм. Спасибі за нагадування за забутий домен. На ньому й розкладу приклади для статті по флаттеру.

  • Логіка відображення стану View в Android: проектуємо і тестуємо

    О, хоть хтось по суті статті. А про що саме сучасніше хтілось би вельмишановному?

  • Логіка відображення стану View в Android: проектуємо і тестуємо

    Ото як на таке питання відповісти? ностальгія, та як сувенір на згадку. Може, щось знову почну, хай живе. До речі глянув і аж здивувався, за 9 років не дефейснули, правда логіка накрилась, бо тоді я всю авторизацію зробив на соцсітках а з мейл та одноглазниками і яндексом якось зараз не дуже. Та й інтеграція з ними там тісна була, якраз у теперішніх трендах.

  • Логіка відображення стану View в Android: проектуємо і тестуємо

    То вже років з 9 як зомбі продж. А таки да, за «вони» спасибі, там я більшість часу як «челавек-аркестр» виступав на орені. А сам мезон закрив, як отримав повістку на мобілізацію ) Так що пекедж нейми то ностальгія. от згадалось жеж

    Такого плану пекдж нейми в мене йдуть на гарнір до дописоприступів )

  • Карьера взабугорье

    «винтовка рождает власть» ©

    Підтримав: anonymous
  • Ситуация на рынке труда. К чему это приведёт?

    Ото по моєму, буде єдине, на що АІ будуть підтримувати популяцію шкіряних мішків.

  • Чи варто виконувати тестові завдання. Думки розробників

    А только они и могут задержатся как прайвит в репе у разраба. Остальное — в репах фирмы

  • Чи варто виконувати тестові завдання. Думки розробників

    Ну неудержусь от моей историй об этом — У меня есть манька каждый год задротить чтот новое тип языка или подхода. Посмотрел я года два назад на дарт с флаттером. И думал что ж запилить для интересу. И постучался ко мне рекрутер с предложением гор золотых и берегов покрытых стейками. Скинул мне ТЗ на тестовое, и на вопрос, на чем писать то можно, ответил пиши на чем хош, и за время оплатят. О, класс и думать не надо на чем запилил на флаттершай. Скинул сладкоголосым гит репу — а рекрутер ответил, что на том конце особо и проверять некому. И слился. Так у меня начальный стаж работы с флаттер оказался некоммерческим, и я получил что хотел на шару ) Рекрутер представлял какой то банк

    Підтримав: Volodymyr Yatsevsky
  • Чи варто виконувати тестові завдання. Думки розробників

    Мда.

    Если человек не хочет тратить свое время, какой смысл компании тратить время на человека, который через пол года перейдет на +500 через дорогу?

    Хм, а про бас фактор не?

    Сравните с компаниями на западе, где бывает что люди тратят по пол года на leetcode для того чтобы пройти собеседование.

    Вот чего взяли у гугла -это собесы. До зп и соц пакета как то еще ход дошел

  • Чи варто виконувати тестові завдання. Думки розробників

    Месье знает толк в извращениях. Линкед то чего не угодил то? Он по идее только в России и в Северной Корее и в Китае под запретом. Но то не моя ЦА

    Підтримав: Stanyslav Semukhyn
  • Чи варто виконувати тестові завдання. Думки розробників

    Ну приватные со временем прорастают в публичные. Там другая проблема если для себя/проверка концепции то там многое ~~без бутылки~~ пояснений не разобрать и выглядит оно как ДичЪ

  • Пам’ятаєте свій перший комп’ютер?

    Было такое. В КПИ тогда на маках для какой то канадской конторы рисовали вышиванки. Я тогда помогал девушке рисовать )

  • Пассивный доход — The Big (and only?) Dream для украинского синьора

    Стесняюсь поинтересоваться за творческие планs. Стихов хочу.

  • Как программисту правильно вызывать API у окружающих людей. А также смех, радость, интерес, понимание и доверие

    Ну тут не все не так однозначно. Девочек подростков, зарабатывающих на тик-токе не так уже и много по сравнению с количеством врачей или инженеров. И кстати, количество количество зарабатывающих/пытающихся сильно меньше 0,0001. И это я еще не вспомнил про врачей или инженегров ведущих блоги и рассказывающих за эмоции.

    Підтримав: Andrey Rogovsky
← Сtrl 1... 45678...27 Ctrl →