#ViewModel

2025-02-06

Безопасное обновления состояния в ViewModel

Это краткая заметка о подходе, который я выработал для себя, чтобы обновлять состояние экрана при использовании MVI-like паттерна в ViewModel . Сразу оговорюсь, что классический "полноценный" MVI подразумевает использование редьюсеров, которые решают часть проблем, описанных в этой заметке, но сугубо на мой вкус, этот подход заставляет писать много бойлерплейтного кода.

habr.com/ru/articles/880108/

#viewmodel #kotlin #arrow #mvi

2025-01-16

Управление настройками с помощью Jetpack DataStore: Простой подход к сохранению данных разных типов

Всем здравствуйте. Это моя первая статья на такую публику, поэтому просьба не судить строго! :-) При разработке Android-приложений часто возникает необходимость сохранять пользовательские настройки, такие как выбор темы, язык или другие данные пользователя. Jetpack DataStore — это современное решение для хранения таких данных, которое заменяет устаревший SharedPreferences . В этой статье мы рассмотрим, как использовать DataStore для хранения различных типов данных (Boolean, Integer, Float и String) и как интегрировать его с архитектурой MVVM, используя StateFlow для обновления UI. Что такое DataStore? Jetpack DataStore — это библиотека для хранения данных, поддерживающая асинхронное и безопасное чтение и запись данных. Она предоставляет два типа хранилищ: 1. Preferences DataStore : Используется для хранения пар "ключ-значение" (похож на SharedPreferences ). 2. Proto DataStore : Используется для хранения структурированных данных на основе протокольных буферов. В этой статье мы сосредоточимся на Preferences DataStore , которое идеально подходит для хранения настроек приложения.

habr.com/ru/articles/874034/

#Jetpack_DataStore #MVVM #ViewModel #Android #Kotlin #Jetpack

2025-01-06

Подходы к созданию ViewModel в Android

В данной статье будут рассмотрены способы создания ViewModel (далее VM) в Android, а также usecase для каждого подхода.

habr.com/ru/articles/871922/

#mvvm #viewmodel #viewmodelprovider #android #kotlin

2024-11-05

Как я писал суперкастомизированное Android-приложение в 2024 году

Как я писал супер кастомизированное Android приложение в 2024 году В начале года у меня появилась прикольная идея: сделать Android-приложение, которое будет показывать анимации для алгоритмов сортировки. Чтобы вы сразу поняли, что представляет из себя приложение, на GitHub есть скрины и короткие видео. Давайте по кусочкам разберём мой проект. Читать дальше

habr.com/ru/companies/ruvds/ar

#ruvds_статьи #android #android_view #kotlin #application #algorithms #sorting_algorithms #viewmodel #viewmodelprovider #sparse_array #custom_view #bitwise_operators #mvvm #mvi

2024-10-07

Как грузить данные во ViewModel?

Привет, Хабр! Эта статья будет полезна для мобильных разработчиков, потому что в ней обсуждаются различные подходы к первоначальной загрузке данных во вьюмодели (Jetpack ViewModel) при ее использовании в проектах на Jetpack Compose (либо Compose Multiplatform). Тема эта настолько холиварная, что один из самых влиятельных ютуберов в сфере Android-разработки Philip Lackner даже недавно посвятил ей отдельный как всегда очень качественный обзор . Эта статья - во многом ответ и дополнение к нему. Итак, перейдем к сути.

habr.com/ru/articles/848824/

#viewmodel #jetpack_compose #android #jetpack_sdk

2024-09-11

[Перевод] ViewModels в Android: «за» и «против». Часть 2

Продолжение первой части цикла. В первой части мы разобрались в причинах, по которым загрузка данных в блоке init{} может помешать прогрессу; изучили наиболее рациональные методы организации пользовательского интерфейса и логики приложения с помощью ViewModels. Также мы обсудили простые решения и важные тактики, позволяющие избежать часто встречающихся подводных камней. В этой части мы продолжим фокусироваться на важных принципах разработки и оптимизации ViewModel в Android, направленных на улучшение архитектуры приложения и повышение его производительности. Рассмотрим подробнее рекомендации, касающиеся раскрытия изменяемых состояний, использования update{} при использовании MutableStateFlows и «ленивого» внедрения зависимостей в конструктор.

habr.com/ru/companies/otus/art

#android_разработка #viewmodel #cleancode

2024-08-22

Выносите ViewModel из Compose функций

В нашу жизнь андроид разработчиков уже прочно вошел фреймворк Compose. И при создании composable функций возникает соблазн добавить в качестве параметра viewModel. А уже в самой compose функции подписываться на состояния, которые находятся внутри viewModel. Я хочу рассказать, почему так делать не стоит, а передавать в качестве параметров простые классы.

habr.com/ru/articles/837790/

#android #compose #kotlin #viewmodel #refactoring

2024-07-27

PinLockSreen на основе KeyStore. Kotlin. Jetpack Compose

В данной любительской статье разберемся, что такое KeyStore в контексте мобильной разработки, для чего нужен и применим его в крайне легком варианте. Также погрузимся в разработку экрана входа в ваше приложение. Статья будет разделена на 3 так называемых раздела — KeyStore, UI и ViewModel.

habr.com/ru/articles/831914/

#kotlin #android_development #android_apps #android #jetpack_compose #keystore #viewmodel #ui #github

2024-07-10

I really love how sealed classes are a great fit for #ViewModel use cases in #Kotlin.

🧿🪬🍄🌈🎮💻🚲🥓🎃💀🏴🛻🇺🇸schizanon
2024-06-24

> is the result of a problem: the introduction of has led to far too much logic in .

It's clear to me that had it right back in 2012; is the correct pattern for

mikejohnson.dev/posts/2024/06/

2024-04-15

[Перевод] ViewModels в Android: «за» и «против»

В этой серии статей мы рассмотрим лучшие практики использования ViewModels в Android с акцентом на основных принципах повышения качества кода. Рассмотрим роль ViewModels в управлении состоянием пользовательского интерфейса и бизнес-логикой, стратегии для ленивого внедрения зависимостей и важность реактивного программирования. Кроме того, обсудим общие подводные камни, которых следует избегать, такие как неправильная инициализация состояния и обнародование изменяемых состояний.

habr.com/ru/companies/otus/art

#android #kotlin #kotlin_qa #Viewmodel

2024-03-21

ViewModel + Kotlin Multiplatform. Пробуем нативное решение

Всем привет! На связи Анна Жаркова, руководитель группы мобильной разработки в компании Usetech. Компания Google объявили о своем интересе к Koltin Multiplatform на прошлом Google I/O 2023. Следом был обозначен вектор развития имеющихся решений архитектурных библиотек Jetpack для поддержки KMP. Буквально считанные часы назад компания Google опубликовали ожидаемую многими новинку, а именно ViewModels из библиотеки Lifecycle с поддержкой API Kotlin Multiplatform. И сейчас мы с вами проверим, насколько это удобно, что уже готово, а что нужно доработать. Для начала освежим, с чем же мы работали до ViewModels из Lifecycle. Сами по себе ViewModel как часть паттерна MVVM применительно к кросс-платформенным решениям идея не новая. Многие давно использовали собственную реализацию, совмещая также с платформенными архитектурами.

habr.com/ru/articles/802111/

#kotlin_multiplatform #kotlin_multiplatform_mobile #viewModel #разработка_под_iOS #разработка_под_Android #kmp #google #jetpack

2023-03-07

For example: assume I have a classic MVVM app and I've created a #ViewModel. Does this graphic decision tree help me decide how/where to store this VM?

End result - wrap the VM in @EnvironmentObject so I can retrieve it in many Views.

I don't see this graphic decision tree helping with that decision.

Marco Siccardimsicc
2023-02-12

There is so much going on in this screen of my current app already:
- Loading via my custom library
- Coloring all icons with the /#iOS system colors via my custom library
- Extending image control to load a placeholder from SfSymbol
- Custom FramedContentControlWithText
- Entry handler modification to remove the border on Mac

Note: I did not yet wire up a instance.

Current state of the blog overview page of my #CASBAN6 Admin Client in .NET MAUI
2023-02-08

OMG, a #ViewModel in #React ?! - Modularizing React Applications with Established UI Patterns - Juntao Qiu - martinfowler.com/articles/modu - Interesting read!

Shreyas Patil :verified:shreyas@androiddev.social
2022-12-19

Just published "ViewModel: for UI business, not UI operations" 😐. This is related to the developers' misconception and common mistakes they make around ViewModel in #androiddev.

Read👀: blog.shreyaspatil.dev/viewmode

#kotlin #android #viewmodel #androiddevelopment #androiddevelopers #statemanagement

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst