Архитектура. MVI [RU] / Мобильный разработчик

Поделиться
HTML-код
  • Опубликовано: 23 ноя 2024

Комментарии • 75

  • @РусланСамарбаев
    @РусланСамарбаев 5 лет назад +8

    Алексей спасибо большое! Благодаря тебе и твоему трубу могу развиваться, как начинающий разработчик!

  • @mayx8844
    @mayx8844 Год назад +1

    Я не начинающий разработчик, но на практике никогда не использовал MVI. Сейчас занимаюсь личным проектом, пишу на kmm (курс по kmm =)) и встала делема с нужной архитектурой (слышал, что для kmm - mvi the best of the best, но окончательного понимания этого слуха не было). А данный видос - это исчерпывающий ответ на то, что будет удобно юзать (нашёл orbit mvi, осваиваю). Спасибо вам огромное за данный материал!!

  • @4mmixa974
    @4mmixa974 Год назад

    Кратко и четко объяснил. Однозначно лайк

  • @УлугбекИбрагимов-г1я
    @УлугбекИбрагимов-г1я 3 года назад +3

    Офигенный канал и видео интересные, главное не забрасывать!!!!

  • @Иван-н1р2ю
    @Иван-н1р2ю 4 года назад +1

    Парадигма - описание в науке и философии паради́гма означает определённый набор концепций или шаблонов мышления, включая теории, методы исследования, постулаты и стандарты, в соответствии с которыми осуществляются последующие построения, обобщения и эксперименты в области. Первоначально слово использовалось в лингвистике и риторике. Википедия.
    По мне как MVI это тот же шаблон проектирования, использующий композицию, объекты никуда не делись, передаются в качестве параметров, проверяются на тип, MVP же, как архетиктурное решение над MVI для порядка в коде.

    • @MobileDeveloper
      @MobileDeveloper  4 года назад

      Композиция это несколько другое. Так можно любую функцию композицией назвать. Насчёт слова парадигма, то в разрезе программирования она имеет вполне конкретные приложения, а именно новой парадигмой стали функциональное программирование, ООП и там не помню ещё третье что-то было. Я это слово использовал, чтоб как-то отделить просто архитектурный паттерн от действительно в каком-то смысле нового подхода

  • @elviraminnullina2807
    @elviraminnullina2807 2 месяца назад

    четко объяснил, спасибо
    Не нашла в github код которые был показан в видео, на какой бранч смотреть?

    • @MobileDeveloper
      @MobileDeveloper  2 месяца назад

      С тех пор я все переписал много раз уже. Последняя актуальная версия лежит в GitHub JetHabit

  • @ВладСапожников-ю3ц

    Хотел бы увидеть, как при данном подходе работать с показом диалога

  • @lunamarsword
    @lunamarsword 5 лет назад

    Супер, с нетерпением ждем Ваши видео!

  • @KnijnenburgMexx
    @KnijnenburgMexx 4 года назад +8

    ruclips.net/video/IRCv3mkc6jY/видео.html "Его идея в том, чтобы у вас было некое состояние вашего экрана, которое конфигурируется одной единственной моделью с кодовым названием state. Те, кто смотрел мои видео, возможно помнят, что я говорил, что некоторые под моделью подразумевают иное, вот этот как раз оно"
    Вот зачем вводить людей в заблуждение, пользуясь понятиями, у которых совершенно иной смысл? Состоение View описывает ViewState, вот как можно сюда приплести слово "модель"? Если в MVI Model - это черный ящик с бизнес логикой, у которого на входе интенты, а на выходе ViewState.
    ruclips.net/video/IRCv3mkc6jY/видео.html "View отправляет иммутабельную модель в качестве интента в обработчик. Дальше происходит обработка сигнала и в ответ прилетает такая же иммутабельная модель со стейтом".
    Дальше из-за этого непонимания разницы между Model и ViewState начинается какая то дичь. В MVI View ничего не знает про Model, а делает ровно две вещи: 1) Отправляет Intent'ы, подписывается на поток ViewState. View не занимается хранением текущего ViewState, он должен быть Stateless, соотственно он никак не может "отправлять модели". Текущее состояние ViewState хранится в Stateful Model.
    ruclips.net/video/IRCv3mkc6jY/видео.html "И вот люди раскопали, что изначально, когда появились эти паттерны, моделью называлась вот эта та самая штука, которая отображает состоение вашего View"
    Таже ошибка. Штука, которая отображает состояние UI (корректнее было бы сказать "UI", а не "View"), внезапно называется View. View получает свое состояние (ViewState) и ОТОБРАЖАЕТ его - это его прямая отвественность. И уж говорить, что Model (в любом архитектурном шаблоне) что-то отображает, это насколько надо быть безграмотным. Model в MVI еще раз - это бизнес логика, которая занимается ФОРМИРОВАНИЕМ ViewState.
    Досматривать это видео сил не хватило. Думал, что почерпну что-то новое из ролика или хотя бы услышу, что уже знаю. Но оказалось что автор не шарит в теме MVI.

    • @MobileDeveloper
      @MobileDeveloper  4 года назад

      Ну и слава богу )) предлагаю вам больше ничего не смотреть, все рано ничего интересного не узнаете )

  • @alexandernifanin7366
    @alexandernifanin7366 5 лет назад +9

    5:28 "Ваще похоже на вредоносный код". Алексей, ваш коллега смотрит код в прямом эфире? :)))

    • @MobileDeveloper
      @MobileDeveloper  5 лет назад +1

      Хахах) нее) это там другого касалось )

    • @vasilymaestrovs9546
      @vasilymaestrovs9546 4 года назад +6

      Да это он об яндекс браузере говорит

  • @VolodymyrBabenko-w7j
    @VolodymyrBabenko-w7j 5 лет назад

    Щас сделаю кофеёк и буду ознакамливаться с новым интересным видосом)

  • @denisperfomer5826
    @denisperfomer5826 5 лет назад +4

    В своих проектах всегда использую MVI, нравится гораздо больше других подходов - защита от неконсистентного состояния, можно хранить историю стейтов, можно сделать time-travel debug и даже потестить удобно, в общем всё строго и чётко. Но есть минус, что подход довольно сложен для джунов.
    И насчёт тех проблем с "неизящностью" использования: конечно. пример из видео написан на коленке, поэтому и неизящно)
    Желательно для MVI написать стейт-машину, например на RxJava, или взять уже существующий фреймворк. Тогда как раз-таки всё будет кратко и красиво.
    Спасибо за видео!

    • @MobileDeveloper
      @MobileDeveloper  5 лет назад +3

      Был бы очень признателен если бы вы расшарили пример сложного флоу на MVI. Я мог бы это как-то показать на стриме и прокомментировать

  • @LE5F0RE5T
    @LE5F0RE5T 5 лет назад

    Очень зашло. В связке с rx решаются проблемы больше 4 cостояний

    • @MobileDeveloper
      @MobileDeveloper  5 лет назад +1

      Ну да здесь пример очень простенький )

  • @mrrobot8923
    @mrrobot8923 5 лет назад +1

    можно ссылку на код? Немного не пойму одну вещь, а Вы про нее не рассказали. Заодно гляну как корутины организовывать в проекте.
    А, вот что еще хотел спросить. Если будет время, сделайте видео по flow / cold stream, channels в корутинах. Дока у Котлина не ахти по этим темам, а вещи вроде интересные, тем более что они повторяют функционал RxJava, но реализуются значительно приятнее.

    • @MobileDeveloper
      @MobileDeveloper  5 лет назад

      Спасибо за наводку, изучу. Ссылку на код вечером добавлю

    • @elenamonakhova7420
      @elenamonakhova7420 4 года назад +1

      @@MobileDeveloper жаль, так и не добавили))

    • @MobileDeveloper
      @MobileDeveloper  4 года назад

      Elena Monakhova добавил, но на другой репозиторий, однако, там тоже самое )

    • @elenamonakhova7420
      @elenamonakhova7420 4 года назад

      @@MobileDeveloper спасибо!!!

  • @User-hx1sb
    @User-hx1sb 5 лет назад

    а вы смотрели исходники duckduckgo? если не ошибаюсь, то он использует эту архитектуру

    • @MobileDeveloper
      @MobileDeveloper  5 лет назад

      Нет, а ссылочку дадите?)

    • @User-hx1sb
      @User-hx1sb 5 лет назад

      @@MobileDeveloper на гитхабе

    • @User-hx1sb
      @User-hx1sb 5 лет назад

      @@MobileDeveloper скинул. Если отобразится ссылка

  • @elpirato5428
    @elpirato5428 5 лет назад

    Здравствуйте, будет ли урок по созданию выпадающего списка в Navigation Drawer Activity, чтобы при нажатии на текст выпадал список, на джаве был onNavigationItemSelected, но на котлине он, не вызывается, а если создать такую функцию, то другие команды не работаю и вообще путаница происходит.

    • @MobileDeveloper
      @MobileDeveloper  5 лет назад

      Возможно будет. Вообще Navigation Drawer уже морально устарел, поэтому не факт, но вы можете задать тему следующего видео в группе в ВК
      vk.com/mdeveloper

  • @ghostjkeee6641
    @ghostjkeee6641 4 года назад

    о архитектуре VIPER можете сделать видео

    • @MobileDeveloper
      @MobileDeveloper  4 года назад

      Она не очень отличается от Clean Swift, но запрос понял хорошо :)

  • @yuriyalbu4501
    @yuriyalbu4501 5 лет назад +1

    Сделайте, пожалуйста видео по Proguard

    • @MobileDeveloper
      @MobileDeveloper  5 лет назад

      Записал) вы можете влиять на очерёдность видео в группе ВКонтакте

    • @yuriyalbu4501
      @yuriyalbu4501 5 лет назад

      @@MobileDeveloper Супер, спасибо за ответ)

  • @Neroreflex
    @Neroreflex 3 года назад +2

    Было бы неплохо как-то графически разнообразить теорию. А то на слух очень сложно даётся.

    • @MobileDeveloper
      @MobileDeveloper  3 года назад

      Со временем будет, но пока это слишком удлиняет цикл релиза видео, поэтому в этом видео так

  • @ИльяИванов-л1ъ6н
    @ИльяИванов-л1ъ6н 5 лет назад

    Спасибо! А где ссылочки на статьи?))

    • @MobileDeveloper
      @MobileDeveloper  5 лет назад

      Блин.. всегда забываю что-нибудь)

    • @user-xl2tf4gq1g
      @user-xl2tf4gq1g 4 года назад +2

      @@MobileDeveloper снова забыли)

  • @asp424
    @asp424 3 года назад

    Бля собственно это оно и есть

    • @MobileDeveloper
      @MobileDeveloper  3 года назад

      Не очень понял )

    • @asp424
      @asp424 3 года назад

      @@MobileDeveloper сообщение вылезло, в тему) В видео.

  • @KnYaZuK
    @KnYaZuK 5 лет назад

    Где ссылка на статьи?

    • @MobileDeveloper
      @MobileDeveloper  5 лет назад

      Забыл ;(

    • @FoRGeish
      @FoRGeish 5 лет назад

      @@MobileDeveloper так можно отдельным комментарием и закрепить его.

  • @ilyamurashko4590
    @ilyamurashko4590 5 лет назад

    Я, конечно, не эксперт, но тебе не кажется, что тройная вложенность условных операторов на фрагменте это ну максимально такое себе?

    • @MobileDeveloper
      @MobileDeveloper  5 лет назад +1

      Конечно. Видно же что я особо не думал над обработкой )) здесь я показываю и рассказываю про другое
      P.S. Можно этот кусок как блок-схему воспринимать

    • @ilyamurashko4590
      @ilyamurashko4590 5 лет назад

      @@MobileDeveloper Мне кажется, что стоит написать дисклеймер какой-нибудь )

    • @MobileDeveloper
      @MobileDeveloper  5 лет назад

      Чет не вижу как это сделать силами ютуба )

  • @mamyna_bysinka
    @mamyna_bysinka 4 года назад

    Для маленьких проектов норм, но все становится ужасно когда интерактор разрастается к 1к+ строчек.

    • @MobileDeveloper
      @MobileDeveloper  4 года назад

      Хм ну у нас порядка 60 -80 экранов (не считал) и редко когда файл выходит за 600 строк. Если честно то есть линтер который не даст это скомпилировать. Это при том что у нас есть все соответствующие большому проекту аналитики и так далее

  • @СергейПанов-з3ц
    @СергейПанов-з3ц 5 лет назад

    Что по ММРу у автора видео в Доте?

  • @vasilymaestrovs9546
    @vasilymaestrovs9546 4 года назад

    Лайк за классное объяснение, но хотелось поставить минус использование такой паршивой дряни, как яндекс и контактик. Автор, забудь об отечественной этой нечисти, пользуйся хромом и фейсбуком, как вариант, не позорься.

    • @MobileDeveloper
      @MobileDeveloper  4 года назад

      Может я как-то без вас разберусь как мне жить? Без сопливых скользко как говорится

    • @vasilymaestrovs9546
      @vasilymaestrovs9546 4 года назад

      @@MobileDeveloper Ну почитайте ж ниже даже, просто в голове не укладывается, какой же ВК уже в 20 году? Это же даже не моветон, а хуже. Еще бы одноклассников не хватало. Я подписался на Ваш канал, потому что вы круто объясняете. Не сердитесь на меня, но правда... контакт и яндекс это бред..

    • @MobileDeveloper
      @MobileDeveloper  4 года назад +3

      Отписывайтесь обратно. Я могу за 5 минут буквально разложить что ваш Фейсбук это хуита позорная, написанная ебаными даунами. И любой, кто хоть раз с их сдк или апи работал меня поддержит

    • @vasilymaestrovs9546
      @vasilymaestrovs9546 4 года назад

      @@MobileDeveloper с точки зрения апи и серверной я согласен - фб накосячили с пхп и реакт их тоже непонятка... Но речь о контенте и аудитории

    • @MobileDeveloper
      @MobileDeveloper  4 года назад

      Меня контент и аудитория очень даже устраивает, а тем более не понятно как связан Яндекс браузер и контент. Это тут причём вообще? Он тупо удобнее. Причём в разы. А ваш хром это чёрная дыра в памяти, которая бесконтрольно отжирает все что ему скормят. Вам показать скриншот где хром откушал 1.24 терабайта блядь оперативки? Вы же объективно понимаете, что спорите с программистом. Я буквально знаю как это все устроено внутри.