Шаблон MVVM по-простому. ViewModel. AndroidViewModel. AndroidViewModelFactory

  Рет қаралды 24,323

Petrov Yuri

Petrov Yuri

Күн бұрын

Приветствую 🖐 друзья, в данных видео уроках мы с вами изучим компонент ViewModel
Можно поддержать автора и канал 🤝 купив полный курс по MVVM здесь:
market-...
🤝 Поддержка канала:
✅ ВКонтакте: donate_...
✅ Donationalerts www.donational....
❗️ Библиотеки ❗️
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0"
❗️ Важные ссылки ❗️
1️⃣ Презентацию можно скачать в группе ВКонтакте: mobile_...
2️⃣ ViewModel: developer.andr...
📚 Рекомендуемое бесплатное изучение языка Kotlin
1️⃣ Приложение для запоминания ключевых слов Kotlin: play.google.co....
2️⃣ Мини курс по Kotlin в картинках: • #1. Kotlin в картинках...
√ Тэги для поиска:
#kotlin #mvvm #viewmodel # livedata #androidviewmodel # androidviewmodelfactory #androidstudio #firebase #telegram #создатьприложение

Пікірлер: 107
@user-jb5fk2zn9y
@user-jb5fk2zn9y Жыл бұрын
Чеееееееллллл, наконец то я нашел норм объяснение с кодом, максимальный респект
@mr.developer
@mr.developer 9 ай бұрын
Благодарю за отзыв, очень приятно ☺️🤝
@user-zi3yx8uo9d
@user-zi3yx8uo9d 7 ай бұрын
Пожалуй один из самых сложных уроков, но и один из очень важных. Достаточно интересный урок. Большое спасибо учитель.
@user-wo6bq7qc7m
@user-wo6bq7qc7m 3 жыл бұрын
Шикарная подача. Наконец-то понял всю эту штуку)
@purwic
@purwic 2 жыл бұрын
+
@aidarmukanbet8269
@aidarmukanbet8269 4 ай бұрын
Огромное спасибо, часто оставлял на потом изучение архитектуры, изучая firebase room и тд. Но благодаря вам наконец то избавился от этой больной темы и так же обрел на вооружение преимущества MVVM и LiveData.
@pokrova70
@pokrova70 3 ай бұрын
Спасибо. Придется, наверно, этим заняться. Фрагменты...
@sonnne34
@sonnne34 2 жыл бұрын
Долго искала материал, чтоб вот так без воды на пальцах объяснили, что к чему) Спасибо большое!!! Вот прям спасибо!
@mr.developer
@mr.developer 2 жыл бұрын
Благодарю за отзыв 🤝
@Polite_person_
@Polite_person_ 2 жыл бұрын
@@mr.developer полностью согласен с первым комментарием, спасибо вам, тема простая, но обычно в курсах объясняют оторванные от реальности сеньоры, для которых многие вещи, непонятные новичкам, кажутся очевидными и все это происходит в контексте непростого приложения для новичка, где куча лишней инфы. Еще раз спасибо!
@Sakhalinec
@Sakhalinec 4 жыл бұрын
Здорово!!! Отличные видео, мне даже засыпающему многое понятно) Завтра буду еще раз смотреть! Не бросайте записывать обучающие материалы, у вас хорошо получается... Желаю каналу побольше лайков и подписчиков!!!
@mr.developer
@mr.developer 4 жыл бұрын
Благодарю за отзыв)
@user-bu7zr1kd1j
@user-bu7zr1kd1j 2 жыл бұрын
Здорово! Как же просто все объясняется. Наконец-то объяснение понятными словами.
@mr.developer
@mr.developer 2 жыл бұрын
Благодарю за отзыв 🤝
@vladlen_ak
@vladlen_ak 2 жыл бұрын
Лучший урок что я видел! Все четко разложил, спасибо)
@mr.developer
@mr.developer 2 жыл бұрын
Благодарю за отзыв 🤝
@kaiiitahka7402
@kaiiitahka7402 Жыл бұрын
суко это лучшее обьяснение. Я вообще никак не мог понять эту гребаную viewModel , а сейчас наконец-то понял 🥳
@mr.developer
@mr.developer 9 ай бұрын
Благодарю вас за отзыв, очень приятно ☺️🤝
@getRECTaPPs
@getRECTaPPs 5 ай бұрын
огромное спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!😘😘😘😘😘😘
@user-py3zm4xf7s
@user-py3zm4xf7s 2 жыл бұрын
Большое спасибо 3 дня пытался это понять, пока не наткнулся на это видео!
@amadeusvsl
@amadeusvsl 2 жыл бұрын
Подача материала, просто ВЕЛИКОЛЕПНА!!!!
@vitiyz803vitiyz
@vitiyz803vitiyz 7 ай бұрын
Блестящий урок, очень информативно, особенно если еть уже фрагменты знаний, этот урок их дополняет и упорядочивает
@mikoajreznik6662
@mikoajreznik6662 Жыл бұрын
Огромное спасибо! Благодарю Вашем видео я наконец-то понял зачем вообще нужен такой зверь - вьюмодель!
@Ivan-fl9vq
@Ivan-fl9vq Жыл бұрын
спасибо больше, очень помог, сколько я уже ищу информацию у всех по разному НО у тебя быстро и доступно !
@mr.developer
@mr.developer 9 ай бұрын
Благодарю вас за отзыв, очень приятно ☺️🤝
@omelchenkoaleks
@omelchenkoaleks 4 жыл бұрын
Редко пишу комментарии, но решил просто вас так поблагодарить. Очень понятно и доступно. Пытался сам неоднократно подойти к этой теме - скажу честно, шла туго. А тут прояснение! Спасибо! Надеюсь будут еще такие полезные видео!
@mr.developer
@mr.developer 4 жыл бұрын
Благодарю за отзыв
@ipvoodoo
@ipvoodoo 4 жыл бұрын
Вот с таким подходом я наверное начну использовать viewmodel без кипячения мозгов и гемора. Спасибо Юрок за урок :)! Прикрути туда ещё работу с корутинами и тогда картинка сложится (по крайней мере у меня)))
@mr.developer
@mr.developer 4 жыл бұрын
Благодарю за отзыв)
@muhammadkurbonov4779
@muhammadkurbonov4779 7 ай бұрын
Спасибо большое за урок ,все четко и ясно , жаль что забросили уроки по котлину (
@jahongirmullayev5153
@jahongirmullayev5153 Жыл бұрын
Спасибо за ваш труд! Подписался Жду новых уроков)
@implementor7315
@implementor7315 3 жыл бұрын
Благодаря вам я познал android, закрыл множество пробелов. Спасибо. Картина всего начала складываться лучше. коммент не только касается данного видео
@user-zv2nz5fy2u
@user-zv2nz5fy2u 2 жыл бұрын
Спасибо за урок! Отлично преподносите информацию!
@mr.developer
@mr.developer 2 жыл бұрын
Благодарю за отзыв 🤝
@salhayek10
@salhayek10 2 жыл бұрын
Очень круто! Спасибо!
@Majjabee-np9nq
@Majjabee-np9nq 3 жыл бұрын
Ты крут! Большое спасибо! Наконец начал понимать что такое MVVM!!! Большое спасибо!
@mr.developer
@mr.developer 3 жыл бұрын
Благодарю за отзыв
@innagosteva1203
@innagosteva1203 2 жыл бұрын
Спасибо за Ваш труд)
@mr.developer
@mr.developer 2 жыл бұрын
🤝
@olegkovalenko5708
@olegkovalenko5708 2 жыл бұрын
Круто, спасибо за понятную подачу!
@mr.developer
@mr.developer 9 ай бұрын
Благодарю за отзыв, очень приятно ☺️🤝
@user-px2ut5pj7u
@user-px2ut5pj7u 2 жыл бұрын
Супер благодарю !
@eltoro_study
@eltoro_study 2 жыл бұрын
Молодець))))) ДЯкую
@anoninfo97
@anoninfo97 3 жыл бұрын
Ahueennna! Спасибо.
@romanfedorov4553
@romanfedorov4553 3 жыл бұрын
Очень крутой материал, спасибо! Только не согласен на счет получения контекста - если использовать например Dagger, и внедрить зависимость для контекста, то заранее инициализированный контекст можно получать абсолютно из любой части приложения, без всяких утечек памяти и тд
@JustAmalll
@JustAmalll 3 жыл бұрын
большое спасибо, все понятно и ясно объяснили ))
@mr.developer
@mr.developer 2 жыл бұрын
Можно поддержать автора и канал 🤝 купив полный курс по MVVM здесь: @t Список уроков: 1. Создание проекта. 2. Заполнение activity_main.xml. 3. Заполнение fragment_main.xml. Добавление note_item.xml 4. Заполнение макетов. Добавление кнопок на тулбар 5. Инициализация объектов в MainActivity 6. Инициализация StartFragment.kt, создание модели AppNote.kt 7. Создание DatabaseRepository.kt, реализация репозитория Room 8. Создание базы данных AppRoomDatabase.kt 9. Переход с MainFragment.kt на AddNewNoteFragment.kt 10. Создание новой заметки 11. Заполнение RecyclerView. Отображение списка заметок 12. Переход в NoteFragment.kt, удаление заметки из БД 13. Настройка поведения навигационного графа 14. Создание с нуля проекта в Firebase 15. Подключение к Firebase 16. Макет для выбора базы данных 17. Быстрая авторизация в Firebase 18. Создание LiveData для работы с Firebase 19. Создание новой заметки в Firebase 20. Удаление заметки из Firebase 21. Реализация функции выхода из аккаунта Firebase 22. Добавление анимации в навигацию 23. Сохранение настроек в SharedPreference. Где применим стек технологий: -Android SDK; -Kotlin; -MVVM; -LiveData; -ViewModel; -Room (SQLite); -Navigation; -Kotlin Coroutines; -Firebase SDK; -RecyclerView.
@vitalyparhomenko7817
@vitalyparhomenko7817 3 жыл бұрын
Понятное объяснение, спасибо!
@AK-eg5rr
@AK-eg5rr 4 жыл бұрын
Годнота!
@pavelb3734
@pavelb3734 3 жыл бұрын
Шикарно. Делайте курс на какой-нибудь платформе, я б купил
@jojomajo
@jojomajo 4 жыл бұрын
Четко
@needtools
@needtools Жыл бұрын
Не забыть настроить эмулятор для автоповорота экрана.
@mr.developer
@mr.developer 9 ай бұрын
Ага
@user-cs4dl3kk8r
@user-cs4dl3kk8r 3 жыл бұрын
супер!
@mr.developer
@mr.developer 3 жыл бұрын
Благодарю за отзыв 🤝
@user-yp1rp6qs5v
@user-yp1rp6qs5v 2 ай бұрын
спасибо, очень доходчиво. а с точки зрения архитектуры разве не активити должна выводить тост, или идея была продемонстрировать доступ к контексту?
@user-oi2hk9yt1o
@user-oi2hk9yt1o 3 жыл бұрын
Классное объяснение, спасибо за уроки! Я пытаюсь сделать пример, аналогичный тому, что в видео начинается на 9:48. ( Наследуюсь от AndroidViewModel ) Однако возникает проблема при получении экземпляра модели. 1) myViewModel = ViewModelProvider(this).get(MyViewModel::class.java) // как в видео, почему-то runtime error (в дереве логов подозреваю виновником строчку Caused by: java.lang.InstantiationException: java.lang.Class has no zero argument constructor) 2) myViewModel = ViewModelProvider.AndroidViewModelFactory(application).create(MyViewModel::class.java) // работает 3) myViewModel = ViewModelProvider(this, MyFactory(application)).get(MyViewModel::class.java) // работает Второй и третий способ вроде бы работают, можно ли их считать заменой? Обязательно ли получать модель через метод get или можно через create?
@user-jg4pk6bq2g
@user-jg4pk6bq2g 4 жыл бұрын
Круто кодите!
@mr.developer
@mr.developer 4 жыл бұрын
Благодарю
@abuiman5251
@abuiman5251 3 жыл бұрын
👍🏻
@user-mz1xl4vr3l
@user-mz1xl4vr3l 2 жыл бұрын
Очень просто это сделать без ViewModel, с помощью потока Thread 😀
@mr.developer
@mr.developer 9 ай бұрын
👍
@mikhaillazarev5378
@mikhaillazarev5378 Жыл бұрын
Спасибо большое за информацию, не много сложнова-то воспринимается, так как не сталкивался. А что если нам необходимо сохранить массив со своим классом в этом случае ViewModel поможет?
@mr.developer
@mr.developer 9 ай бұрын
Благодарю вас за отзыв, очень приятно ☺️🤝
@OleksandrArtiushenko
@OleksandrArtiushenko 2 жыл бұрын
Добрый день. Хотел спросить, может у Вас есть курс платный/бесплатный на степик или coursera??? Очень хорошо подаете материал, хотелось бы пройти с Вами полный курс спасибо
@mr.developer
@mr.developer 2 жыл бұрын
Здравствуйте. Пока нет) Вы можете изучить mvvm на реальном примере boosty.to/mr.developer/posts/fe32632b-1f7e-4c82-9a8e-d2a4e2cb2146?share=post_link
@fiodar_vasilets
@fiodar_vasilets 2 жыл бұрын
а почему у меня не обнуляется при повороте, не в onCreate не onStart?
@mr.developer
@mr.developer 9 ай бұрын
🤷‍♂️
@oleg12395
@oleg12395 2 жыл бұрын
упер, большое спасибо! Только не могу понять, как вы обращаетесь к TextView без использования binding и findViewById ?
@mr.developer
@mr.developer 9 ай бұрын
Расширения в котлин
@qqqwww7066
@qqqwww7066 2 жыл бұрын
А разве когда view контролирует передачу данных из view во viewModel это хорошая практика? Я где-то видел мнение что вьюшка должна передавать что-то во viewModel только по запросу последней
@mr.developer
@mr.developer 9 ай бұрын
🤷‍♂️
@antaki93
@antaki93 10 ай бұрын
Не могу понять, как вы обращаетесь напрямую к view-элементам разметки из кода активити без fidnViewById() или дополнительных библиотек. Раскройте секрет, пожалуйста :)
@mr.developer
@mr.developer 9 ай бұрын
Эх, давно это было)))
@muhammadkurbonov4779
@muhammadkurbonov4779 7 ай бұрын
Так уже нельзя, у него использовалось kotlinx.synthetics
@user-ue4be4ff6k
@user-ue4be4ff6k 2 жыл бұрын
Хм.. Не понимаю почему у меня не сбрасывается счетчик при повороте экрана
@mr.developer
@mr.developer 9 ай бұрын
🤷‍♂️
@Child0fTheSun_
@Child0fTheSun_ Жыл бұрын
Как сделать такие же цвета в коде (или установить другие)? Это все вручную настраивается или можно скачать какую-то тему и установить?
@mr.developer
@mr.developer 9 ай бұрын
Можно самому настроить)
@pavelgera72
@pavelgera72 2 жыл бұрын
Как передать во viewmodel из activity значение по нажатию клавиши?
@mr.developer
@mr.developer 9 ай бұрын
🤷‍♂️
@user-gj4rz9hv1w
@user-gj4rz9hv1w 3 жыл бұрын
Немного не понятно для чего мы создаём фактори,чтобы в тост задать текст?Но зачем, когда мы можем жестко это задать,прям в тосте, объясните пожалуйста
@liosha2007
@liosha2007 3 жыл бұрын
Тут дело не в тексте, туда можно передать что-то, что можно получить только внутри активити (например значения из Bundle, с которыми активити было создано). С текстом это только пример как в принципе это делать, а что передавать уже дело конкретного случая.
@user-gj4rz9hv1w
@user-gj4rz9hv1w 3 жыл бұрын
@@liosha2007 а,понял, спасибо большое)
@user-ku6lc8zu4b
@user-ku6lc8zu4b 2 жыл бұрын
Спасибо за классный урок. А что за тема у вас установлена? тоже хочу такую)
@mr.developer
@mr.developer 2 жыл бұрын
Благодарю за просмотр, тема кастомная сам делал
@sergeyjoke
@sergeyjoke Жыл бұрын
Звук от клавиатуры ужасный )))
@mr.developer
@mr.developer 9 ай бұрын
👀
@yuriisika2884
@yuriisika2884 2 жыл бұрын
Дякую за відео))) Як можна зробити таку візуалізацію коду як у тебе?
@mr.developer
@mr.developer 2 жыл бұрын
Привет, material theme plugin
@yuriisika2884
@yuriisika2884 2 жыл бұрын
@@mr.developer привіт, дуже дякую)
@EgorRandomize
@EgorRandomize 3 жыл бұрын
А разве генерация кастомного factory не является poor practice? Как по мне, текст в тосте должен быть полем в ViewModel (можно даже не observable), и изменяться на уровне инициализации либо контекста бизнес логики. А так - просто лишний класс, который делает VM менее гибким
@FyUajYpUlM39
@FyUajYpUlM39 10 ай бұрын
Тоже подумал об этом. Задача view model же - отделять данные от ui, а тут они снова смешиваются.
@mr.developer
@mr.developer 9 ай бұрын
👍
@BogaBoga911
@BogaBoga911 4 жыл бұрын
Спасибо бро, помог закрепить материал. У меня созрел вопрос. Скажи пожалуйста где рационально строить приложения по MVP, а где по MVVM? Я так понимаю клиент-серверное приложение с сохранением данных в локальную БД рациональней строить по MVVM. А где на практике рациональней использовать MVP?
@mr.developer
@mr.developer 4 жыл бұрын
Здравствуйте, MVVM надо использовать везде. MVP устарел
@BogaBoga911
@BogaBoga911 4 жыл бұрын
@@mr.developer спасибо👌
@iam_romanych
@iam_romanych 4 жыл бұрын
@@mr.developer я как то на MVP подсел, но после его усвоения тут все совершенно просто понятно и перейти нет проблем на mvvm
@user-mq3gy8gf4o
@user-mq3gy8gf4o 3 жыл бұрын
Это kotlin???
@user-mq3gy8gf4o
@user-mq3gy8gf4o 3 жыл бұрын
скачивайте моё приложение "викторина Беларусь")))🥰🥰🥰
@xXx_F0rty_S3c0nd_xXx
@xXx_F0rty_S3c0nd_xXx Жыл бұрын
нет блин , джава
@mr.developer
@mr.developer 9 ай бұрын
Ага
@user-rd3tj8kc9h
@user-rd3tj8kc9h 8 ай бұрын
Качество видеокартинки отвратительное конечно...неужели нельзя было сделать нормально ?
Шаблон MVVM по-простому. Navigation.
19:53
Мобильный разработчик | Юрий Петров
Рет қаралды 10 М.
MVVM в Android на практике
41:32
Тимофей Коваленко
Рет қаралды 47 М.
Lehanga 🤣 #comedy #funny
00:31
Micky Makeover
Рет қаралды 29 МЛН
Kids' Guide to Fire Safety: Essential Lessons #shorts
00:34
Fabiosa Animated
Рет қаралды 13 МЛН
Уроки WPF. Паттерн MVVM
23:39
Программирование - это просто
Рет қаралды 86 М.
ViewModels & Configuration Changes - Android Basics 2023
18:46
Philipp Lackner
Рет қаралды 113 М.
Шаблон MVVM по-простому + Android Architecture Components.
12:58
Мобильный разработчик | Юрий Петров
Рет қаралды 37 М.
Последствия блокировки YouTube
25:35
MobileReviewcom
Рет қаралды 24 М.
Как устроен Android и его приложения.
30:29
Sergey Arkhipov Java Tutorials
Рет қаралды 20 М.
Lehanga 🤣 #comedy #funny
00:31
Micky Makeover
Рет қаралды 29 МЛН