home.social

#viewmodel — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #viewmodel, aggregated by home.social.

  1. От State к Event: как два sealed class закрывают архитектуру Android-экрана в Kotlin

    Хаотичные события в Android (навигация, тосты, запросы) часто превращаются в источник багов и нечитаемого кода. В этой статье вы узнаете, как использовать sealed-интерфейсы Kotlin для создания полной, типобезопасной модели экрана, где состояния и события управляются отдельно и предсказуемо. Вы научитесь превращать одноразовые побочные эффекты в строго контролируемый поток команд, получите compile-time гарантии, избавитесь от багов с поворотом экрана и сможете легко тестировать любые события UI. Рассмотренный подход не только защищает от ошибок, но и кардинально упрощает масштабирование логики. Вы сможете добавлять новые события без риска сломать существующую функциональность, а ваш UI-слой станет чистым и декларативным. При этом всё, что нужно для внедрения - это понимание базовых принципов Flow и ViewModel.

    habr.com/ru/articles/993884/

    #Android #Kotlin #sealed_class #sealed_interface #события #состояние #ViewModel #SharedFlow #типобезопасность #MVI

  2. lateinit вместо nullable: пять ошибок

    Привет, Хабр! Сегодня разберёмся, почему попытка «избавиться от ? любой ценой» приводит к проблемам, и как жить с этим вообще жить.

    habr.com/ru/companies/otus/art

    #kotlin #Android #Jetpack_Compose #Compose_анимации #UIанимации_Android #Kotlin_Flow #Архитектура_Androidприложений #viewmodel #hilt

  3. [Перевод] Ликбез по UseCase’ам Android: от базовых реализаций до мультипровайдерных и многомодульных систем — Часть 1

    Чистая архитектура — не просто модный термин, а способ держать код в узде по мере роста Android-приложения. В этой статье — подробный разбор того, как выстроить работу с UseCase’ами: от базовой интеграции в ViewModel до сложных кейсов с несколькими провайдерами и платежными системами. Разберёмся, как применять принципы SOLID на практике, не скатываясь в оверинжиниринг — и при этом не жертвовать гибкостью архитектуры.

    habr.com/ru/companies/otus/art

    #android #Kotlin #Мобильная_разработка #UseCase #Чистая_архитектура #SOLID_принципы #ViewModel #koin

  4. [Перевод] Ликбез по UseCase’ам Android: от базовых реализаций до мультипровайдерных и многомодульных систем — Часть 1

    Чистая архитектура — не просто модный термин, а способ держать код в узде по мере роста Android-приложения. В этой статье — подробный разбор того, как выстроить работу с UseCase’ами: от базовой интеграции в ViewModel до сложных кейсов с несколькими провайдерами и платежными системами. Разберёмся, как применять принципы SOLID на практике, не скатываясь в оверинжиниринг — и при этом не жертвовать гибкостью архитектуры.

    habr.com/ru/companies/otus/art

    #android #Kotlin #Мобильная_разработка #UseCase #Чистая_архитектура #SOLID_принципы #ViewModel #koin

  5. Статья 2: Подробнее про MVVM

    Серия статей с очередным разбором MV* шаблонов, но с интересными деталями Даже опытные разработчики смогут найти что-то новое для себя Это вторая статья из серии , в которой подробно разбираем MVVM и является ли класс ViewModel от Google, сущностью ViewModel из шаблона Статья 2: Подробнее про MVVM - 🔨 Функции обратного вызова (Callback) - 🛠 Паттерн Наблюдатель (Observer) - 📜 MVVM (ViewModel) - 🔨 Привязка данных (Data Binding) Найти новое

    habr.com/ru/articles/922984/

    #архитектура #mvvm #templates #callback #observer #viewmodel

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

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

    habr.com/ru/articles/880108/

    #viewmodel #kotlin #arrow #mvi

  7. Управление настройками с помощью 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

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

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

    habr.com/ru/articles/871922/

    #mvvm #viewmodel #viewmodelprovider #android #kotlin

  9. Как я писал суперкастомизированное 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

  10. 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

  11. 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

  12. 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