Telegram Web Link
О iOS дизайн системе за 5 мин

Сегодня хочу рассказать Вам, как мы пилили дробили монолит на SPM пакеты и создавали дизайн систему.

Все началось в одень "прекрасный" день, когда нас снова удалили с AppStore и перед нами стояла цель научиться быстро видоизменять наше приложение, как функционально, так и визуально, чтобы снова опубликоваться в “яблочном” магазине.

Чтобы провернуть такой план, мы решили, раздробить монолит на SPM пакеты. Для себя мы выделили три первых модуля, с которых все началось:

“Ядро”

“UI Компоненты”

“Компоненты приложения”

https://habr.com/ru/articles/881612/

#ios

👉 @developer_mobila
Всеобъемлющее руководство по созданию интуитивно понятных мобильных приложений

Для разработчиков мобильных приложений среднего уровня проектирование интуитивно понятных мобильных приложений требует глубокого понимания принципов пользовательского опыта (UX) и пользовательского интерфейса (UI). Хорошо спроектированное мобильное приложение улучшает удобство использования, удерживает пользователей и повышает общую вовлеченность. В этом руководстве рассматриваются лучшие практики упрощения, согласованности, механизмов обратной связи, увлекательного пользовательского опыта и методов тестирования.

https://bookflow.ru/vseobemlyushhee-rukovodstvo-po-sozdaniyu-intuitivno-ponyatnyh-mobilnyh-prilozhenij/

👉 @developer_mobila
🤖 Пройди тест для Android-разработчиков и проверь свои знания, готов ли ты к обучению на курсе.

Ответишь — пройдешь на продвинутый курс "Android Developer. Professional " от OTUS по специальной цене + получишь доступ к записям открытых уроков курса

За 5 месяцев обучения ты освоишь:
— Проектирование архитектуры: Clean Architecture, MV*, многомодульные приложения и профессиональное использование DI.
— Современный стек: Kotlin, Jetpack Compose, Coroutines/Flow, Dagger 2/Hilt, Gradle.
— Разработку кросс-платформенных приложений с использованием Kotlin Multiplatform.
— Глубокое понимание Android SDK: оптимизация, безопасность и производительность приложений.
— Организацию инфраструктуры: CI/CD, Docker, линтеры, автоматизация сборки и мониторинг.
— Написание надежных тестов: интеграционные, UI-тесты и работа с фреймворками.

👉 ПРОЙТИ ТЕСТ: https://vk.cc/cJpPnA

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Как я создал собственную дизайн-систему для компонентов iOS-приложения

Если вы создаете свое приложение или работаете в компании, где ваша команда еще не перенесла дизайн компонентов пользовательского интерфейса в отдельную библиотеку, пришло время сделать этот шаг. В этой статье я расскажу вам о своем подходе к созданию многократно используемых компонентов с помощью SwiftUI. Я пропущу базовую настройку библиотеки в Xcode (этому посвящено множество руководств) и сосредоточусь на том, что действительно важно: на создании надежной системы компонентов.

https://medium.com/@mireabot/how-i-created-a-personal-component-design-system-for-ios-apps-d3f9be6f426c

#ios

👉 @developer_mobila
Развитие Android глазами разработчика

Развитие Android разработки глазами разработчика
Довольно много времени прошло с 2007 года, когда Android стал доступен для разработчиков. С тех пор прошло почти 18 лет. За это время изменилось примерно все: железо стало мощнее, интернет быстрее, IDE умнее, а проекты сложнее. Предлагаю оглянуться назад и посмотреть, что же именно изменилось с тех пор для разработчиков.

https://habr.com/ru/companies/oleg-bunin/articles/879836/

#Android

👉 @developer_mobila
Подборка Telegram каналов для программистов

https://www.tg-me.com/bash_srv Bash Советы
https://www.tg-me.com/win_sysadmin Системный Администратор Windows
https://www.tg-me.com/lifeproger Жизнь программиста. Авторский канал.
https://www.tg-me.com/devopslib Библиотека девопса | DevOps, SRE, Sysadmin
https://www.tg-me.com/rabota1C_rus Вакансии для программистов 1С

Системное администрирование 📌
https://www.tg-me.com/sysadmin_girl Девочка Сисадмин
https://www.tg-me.com/srv_admin_linux Админские угодья
https://www.tg-me.com/linux_srv Типичный Сисадмин

https://www.tg-me.com/linux_odmin Linux: Системный администратор
https://www.tg-me.com/devops_star DevOps Star (Звезда Девопса)
https://www.tg-me.com/i_linux Системный администратор
https://www.tg-me.com/linuxchmod Linux
https://www.tg-me.com/sys_adminos Системный Администратор
https://www.tg-me.com/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://www.tg-me.com/sysadminof Книги для админов, полезные материалы
https://www.tg-me.com/i_odmin Все для системного администратора
https://www.tg-me.com/i_odmin_book Библиотека Системного Администратора
https://www.tg-me.com/i_odmin_chat Чат системных администраторов
https://www.tg-me.com/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://www.tg-me.com/sysadminoff Новости Линукс Linux

1C разработка 📌
https://www.tg-me.com/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://www.tg-me.com/DevLab1C 1С:Предприятие 8

Программирование C++📌
https://www.tg-me.com/cpp_lib Библиотека C/C++ разработчика
https://www.tg-me.com/cpp_knigi Книги для программистов C/C++
https://www.tg-me.com/cpp_geek Учим C/C++ на примерах

Программирование Python 📌
https://www.tg-me.com/pythonofff Python академия. Учи Python быстро и легко🐍
https://www.tg-me.com/BookPython Библиотека Python разработчика
https://www.tg-me.com/python_real Python подборки на русском и английском
https://www.tg-me.com/python_360 Книги по Python Rus

Java разработка 📌
https://www.tg-me.com/BookJava Библиотека Java разработчика
https://www.tg-me.com/java_360 Книги по Java Rus
https://www.tg-me.com/java_geek Учим Java на примерах

GitHub Сообщество 📌
https://www.tg-me.com/Githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://www.tg-me.com/database_info Все про базы данных

Мобильная разработка: iOS, Android 📌
https://www.tg-me.com/developer_mobila Мобильная разработка
https://www.tg-me.com/kotlin_lib Подборки полезного материала по Kotlin

Фронтенд разработка 📌
https://www.tg-me.com/frontend_1 Подборки для frontend разработчиков
https://www.tg-me.com/frontend_sovet Frontend советы, примеры и практика!
https://www.tg-me.com/React_lib Подборки по React js и все что с ним связано

Разработка игр 📌
https://www.tg-me.com/game_devv Все о разработке игр

Библиотеки 📌
https://www.tg-me.com/book_for_dev Книги для программистов Rus
https://www.tg-me.com/programmist_of Книги по программированию
https://www.tg-me.com/proglb Библиотека программиста
https://www.tg-me.com/bfbook Книги для программистов
https://www.tg-me.com/books_reserv Книги для программистов

БигДата, машинное обучение 📌
https://www.tg-me.com/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning

Программирование 📌
https://www.tg-me.com/bookflow Лекции, видеоуроки, доклады с IT конференций
https://www.tg-me.com/coddy_academy Полезные советы по программированию
https://www.tg-me.com/rust_lib Полезный контент по программированию на Rust
https://www.tg-me.com/golang_lib Библиотека Go (Golang) разработчика
https://www.tg-me.com/itmozg Программисты, дизайнеры, новости из мира IT
https://www.tg-me.com/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻
https://www.tg-me.com/nodejs_lib Подборки по Node js и все что с ним связано
https://www.tg-me.com/ruby_lib Библиотека Ruby программиста

QA, тестирование 📌
https://www.tg-me.com/testlab_qa Библиотека тестировщика

Шутки программистов 📌
https://www.tg-me.com/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://www.tg-me.com/thehaking Канал о кибербезопасности
https://www.tg-me.com/xakep_2 Хакер Free

Книги, статьи для дизайнеров 📌
https://www.tg-me.com/ux_web Статьи, книги для дизайнеров

Математика 📌
https://www.tg-me.com/Pomatematike Канал по математике
https://www.tg-me.com/phis_mat Обучающие видео, книги по Физике и Математике

Excel лайфхак📌
https://www.tg-me.com/Excel_lifehack

https://www.tg-me.com/tikon_1 Новости высоких технологий, науки и техники💡
https://www.tg-me.com/mir_teh Мир технологий (Technology World)

Вакансии 📌
https://www.tg-me.com/sysadmin_rabota Системный Администратор
https://www.tg-me.com/progjob Вакансии в IT
Grit — простой список дел и трекер привычек

https://github.com/shub39/Grit

#Android

👉 @developer_mobila
Какая навигация в Compose лучшая? Может ли AI писать UI за вас? Как проходит переезд на Compose в большой компании?

С 24 по 28 марта на Podlodka Android Crew разберем всё, что накопилось за 3 года продакшн-использования Compose!

🔥 Дебаты по навигации в Compose — два эксперта - Аркадий Иванов (X (ex-Twitter) и Игорь Кареньков (HH.ru), два подхода, одна истина. Кто окажется убедительнее, решат зрители!

🤖 Как AI пишет UI за вас — Павел Королев и Алексей Утепов (QazCode) на практике покажут генерацию верстки реального макета в Jetpack Compose.

🏗 Опыт Avito: переезд на Compose — изменения затрагивают дизайн-систему, архитектуру, перфоманс, процессы. Ребята из Авито делятся опытом и советами.

🔍 Публичное собеседование по Compose — реальный кандидат, реальный код, разбор ошибок и живой фидбек.

Главное — всё, что обсудим, можно сразу применять на практике! Билеты тут 👉 https://podlodka.io/droidcrew
Горячие клавиши Xcode


Ctrl + A – в начало строки

Ctrl + E – в конец строки

Ctrl + T – поменять местами символы, прилегающие к курсору

Ctrl + K – удалить строку

Ctrl + L – курсор в центр строки

Esc – спрятать (показать) меню предложений

Tab – применить предложение

Cmd + Y – активировать (деактивировать) точки остановки

Cmd + Control + Y – продолжить компиляцию (в дебаггере)

F6 – степ-овер

Cmd + Opt + ↑ - переключение между заголовочным файлом и файлом исходного текста

Cmd + двойной щелчок - переключение к определению идентификатора

Opt + двойной щелчок - найти документацию для идентификатора

Tab + → или Ctrl + / - выбрать следующий аргумент в автозаполнении

Shift + Tab + → или Shift + Ctrl + / - выбрать предыдущий аргумент в автозаполнении

Ctrl + Shift + . - в обратном направлении между вариантами автозаполнения

Opt + Cmd + двойной щелчок на идентификаторе - найти в документации

Cmd + двойной щелчок на объекте в Document Window - переключиться к классу в XCode из IB

Ctrl + Shift + щелчок на объекте - выбрать наложенные друг на друга элементы в Interface Builder

Cmd + ] или Cmd + [ - табулировать блок кода вправо или влево

Cmd + / - закомментировать блок кода

Cmd + Shift + E - скрыть список файлов над редактором кода

Cmd + Opt + Shift + E - скрыть список файлов над редактором кода и «Groups and Files»

Alt + Shift + Cmd + K - очистить папки билда (build)

Cmd + стрелки влево/вправо - поворот симулятора

Cmd + R - запустить программу на выполнение

Cmd + . - остановить проект

Cmd + B - собрать проект, без запуска

Cmd + Shift + B - сборка проекта со сбросом кэша IDE

Cmd + L - переход к строке с номером

Cmd + N - создать файл

Cmd + Shift + F - поиск по всему проекту

Cmd + Ctrl + F - развернуть среду во весь экран

Cmd + Shift + O - перемещение по файлам, методам, классам

Cmd + T - создать новую вкладку

Cmd + Opt + T - показать или скрыть Toolbar

Cmd + Shift + N - создать новый проект

Cmd + Opt + → свернуть или развернуть код

Cmd + S - сохранить проект

Cmd + Shift + L - показать библиотеку компонентов

Cmd + Shift + Return - запустить Playground(выполнить код)

Cmd + 0 - показать или скрыть область навигатора(левое окно)

Cmd + Opt + 0 - показать или скрыть область инспектора (правое окно)

Cmd + Shift + Y - показать или скрыть область отладки (нижнее окно)

#ios

👉 @developer_mobila
Изучаем основы Android XR

Кодлаб от Google по разработке для Android XR. В этом лабораторной работе вы улучшите базовое одноэкранное приложение, чтобы обеспечить захватывающий пользовательский опыт на Android XR.

Что вы узнаете:

Уникальные пользовательские возможности, которые дает форм-фактор XR.
Основы адаптации приложений к работе на гарнитуре Android XR с помощью композабл элементов, предоставляемых библиотекой Jetpack Compose XR.
Как использовать элементы пользовательского интерфейса, предоставляемые библиотекой Compose XR.
Где можно узнать больше о создании приложений для Android XR.

https://developer.android.com/codelabs/xr-fundamentals-part-1#0

#Android

👉 @developer_mobila
📱Хотите создавать стильные и современные Android-приложения?

На открытом вебинаре «Material Design 3.0 — что нужно знать разработчику» 📅 24 марта в 20:00 мск вы разберете документацию, изучите инструменты и узнаете ключевые требования дизайна.

💼Научитесь создавать интерфейсы, которые будут радовать пользователей и впечатлять работодателей.

👉Открытый урок перед стартом курса «Android Developer. Professional», получите скидку на обучение: https://vk.cc/cJUW23

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
#вакансия #удалённо #parttime #преподаватель #iOS

OTUS ищет преподавателей на онлайн-курс iOS Developer. Professional

Мы расширяем команду экспертов (уже более 650 человек) и ищем опытных практикующих специалистов, которым интересно делиться знаниями. Преподавательский опыт не обязателен — наши методисты помогут вам освоить практики преподавания.

Требуется практический опыт разработки под iOS от 3- х лет. Приветствуется знание технологий: Swift, SwiftUI, Combine, CoreML, ARKit, а также архитектурные паттерны (MVVM, VIPER и др.).

Обязанности:
- подготовиться к занятиям (есть материалы для опоры);
- проводить онлайн-занятия, уделяя большое внимание практике. Здесь вы сможете развивать навыки публичных выступлений, работы с аудиторией и подачи обратной связи;
- за доплату возможна проверка домашних заданий.

Условия:
гибкий график, легко совмещать с основной работой, занятия в вечернее время с 20:00 до 21:30, дни на выбор;
темы занятий на выбор;
оплата от 4000 до 6000 руб. за вебинар (полтора часа) и 300-400 рублей за проверку 1 домашнего задания;
бонусы: доступ к нашим курсам, нетворкинг, развитие личного бренда, участие в воркшопах и конференциях.

Обсудить подробнее: @HR_Nikita
Статья посвящена модели кооперативной отмены задач в Swift

В ней рассматривается, как разработчики могут определить момент отмены задачи и корректно обработать это событие. Swift не прерывает выполнение задачи автоматически при ее отмене; вместо этого предоставляется информация о статусе отмены, и разработчик самостоятельно решает, как на это реагировать.

В статье представлены примеры использования API Task для проверки статуса отмены с помощью методов Task.isCancelled и Task.checkCancellation(), а также даны рекомендации по эффективной обработке отмененных задач в асинхронном коде.

https://swiftwithmajid.com/2025/02/11/task-cancellation-in-swift-concurrency/

#ios

👉 @developer_mobila
Подборка Telegram каналов для программистов

https://www.tg-me.com/bash_srv Bash Советы
https://www.tg-me.com/win_sysadmin Системный Администратор Windows
https://www.tg-me.com/lifeproger Жизнь программиста. Авторский канал.
https://www.tg-me.com/devopslib Библиотека девопса | DevOps, SRE, Sysadmin
https://www.tg-me.com/rabota1C_rus Вакансии для программистов 1С

Системное администрирование 📌
https://www.tg-me.com/sysadmin_girl Девочка Сисадмин
https://www.tg-me.com/srv_admin_linux Админские угодья
https://www.tg-me.com/linux_srv Типичный Сисадмин

https://www.tg-me.com/linux_odmin Linux: Системный администратор
https://www.tg-me.com/devops_star DevOps Star (Звезда Девопса)
https://www.tg-me.com/i_linux Системный администратор
https://www.tg-me.com/linuxchmod Linux
https://www.tg-me.com/sys_adminos Системный Администратор
https://www.tg-me.com/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://www.tg-me.com/sysadminof Книги для админов, полезные материалы
https://www.tg-me.com/i_odmin Все для системного администратора
https://www.tg-me.com/i_odmin_book Библиотека Системного Администратора
https://www.tg-me.com/i_odmin_chat Чат системных администраторов
https://www.tg-me.com/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://www.tg-me.com/sysadminoff Новости Линукс Linux

1C разработка 📌
https://www.tg-me.com/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://www.tg-me.com/DevLab1C 1С:Предприятие 8

Программирование C++📌
https://www.tg-me.com/cpp_lib Библиотека C/C++ разработчика
https://www.tg-me.com/cpp_knigi Книги для программистов C/C++
https://www.tg-me.com/cpp_geek Учим C/C++ на примерах

Программирование Python 📌
https://www.tg-me.com/pythonofff Python академия. Учи Python быстро и легко🐍
https://www.tg-me.com/BookPython Библиотека Python разработчика
https://www.tg-me.com/python_real Python подборки на русском и английском
https://www.tg-me.com/python_360 Книги по Python Rus

Java разработка 📌
https://www.tg-me.com/BookJava Библиотека Java разработчика
https://www.tg-me.com/java_360 Книги по Java Rus
https://www.tg-me.com/java_geek Учим Java на примерах

GitHub Сообщество 📌
https://www.tg-me.com/Githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://www.tg-me.com/database_info Все про базы данных

Мобильная разработка: iOS, Android 📌
https://www.tg-me.com/developer_mobila Мобильная разработка
https://www.tg-me.com/kotlin_lib Подборки полезного материала по Kotlin

Фронтенд разработка 📌
https://www.tg-me.com/frontend_1 Подборки для frontend разработчиков
https://www.tg-me.com/frontend_sovet Frontend советы, примеры и практика!
https://www.tg-me.com/React_lib Подборки по React js и все что с ним связано

Разработка игр 📌
https://www.tg-me.com/game_devv Все о разработке игр

Библиотеки 📌
https://www.tg-me.com/book_for_dev Книги для программистов Rus
https://www.tg-me.com/programmist_of Книги по программированию
https://www.tg-me.com/proglb Библиотека программиста
https://www.tg-me.com/bfbook Книги для программистов
https://www.tg-me.com/books_reserv Книги для программистов

БигДата, машинное обучение 📌
https://www.tg-me.com/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning

Программирование 📌
https://www.tg-me.com/bookflow Лекции, видеоуроки, доклады с IT конференций
https://www.tg-me.com/coddy_academy Полезные советы по программированию
https://www.tg-me.com/rust_lib Полезный контент по программированию на Rust
https://www.tg-me.com/golang_lib Библиотека Go (Golang) разработчика
https://www.tg-me.com/itmozg Программисты, дизайнеры, новости из мира IT
https://www.tg-me.com/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻
https://www.tg-me.com/nodejs_lib Подборки по Node js и все что с ним связано
https://www.tg-me.com/ruby_lib Библиотека Ruby программиста

QA, тестирование 📌
https://www.tg-me.com/testlab_qa Библиотека тестировщика

Шутки программистов 📌
https://www.tg-me.com/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://www.tg-me.com/thehaking Канал о кибербезопасности
https://www.tg-me.com/xakep_2 Хакер Free

Книги, статьи для дизайнеров 📌
https://www.tg-me.com/ux_web Статьи, книги для дизайнеров

Математика 📌
https://www.tg-me.com/Pomatematike Канал по математике
https://www.tg-me.com/phis_mat Обучающие видео, книги по Физике и Математике

Excel лайфхак📌
https://www.tg-me.com/Excel_lifehack

https://www.tg-me.com/tikon_1 Новости высоких технологий, науки и техники💡
https://www.tg-me.com/mir_teh Мир технологий (Technology World)

Вакансии 📌
https://www.tg-me.com/sysadmin_rabota Системный Администратор
https://www.tg-me.com/progjob Вакансии в IT
This media is not supported in your browser
VIEW IN TELEGRAM
Mantis — кроп для изображений в стиле Фото

Mantis — это библиотека для обрезки (кропа) изображений для iOS, написанная на Swift и обеспечивающая богатые возможности обрезки для вашего приложения для iOS/Mac. Поддерживает разные формы (в том числе кастомные), кнопку отмены.

https://github.com/guoyingtao/Mantis

#ios

👉 @developer_mobila
Обновляем дорожную карту Android-разработчика в 2025 году

Прошло уже более трех лет с момента выпуска дорожной карты Android-разработчика, и технологии Android продолжают стремительно развиваться в различных областях. В то время Jetpack Compose только достиг стабильного релиза 1.0, и разработчики с нетерпением ждали его зрелости и развития экосистемы.

Со временем появилось множество решений и инструментов для решения проблем разработки, которые значительно улучшили проекты. В частности, значительно повысилась производительность Android Studio, а интеграции с искусственным интеллектом в IDE теперь помогают разработчикам писать код более эффективно. Однако основные принципы создания Android-приложений остались относительно стабильными.

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

https://proandroiddev.com/recap-the-android-developer-roadmap-in-2025-84bf11429302


#Android

👉 @developer_mobila
Media is too big
VIEW IN TELEGRAM
Переход с UIKit на SwiftUI — разработка трекера тренировок с нуля

00:00 - Intro
01:36 - Настройка проекта
02:57 - Создание модели User
04:06 - Отличие UIKit от SwiftUI
05:25 - Создание UserInfoView
06:48 - Создание ZStack
07:50 - Создание HStack
10:19 - Использование padding для Image
11:15 - Использование offset для Image
12:30 - Использование padding для Rectangle
14:09 - Использование alignmentGuide
16:35 - Размещение Text
20:36 - Создание ViewMetrics
25:18 - Лайк и Подписка

источник

#ios

👉 @developer_mobila
Все знают, какие приложения установлены у вас в телефоне

Ещё несколько лет назад любое приложение, установленное на устройство с Android, могло без разрешений видеть все остальные приложения.

В 2022 году, с выпуском Android 11, Google удалила этот доступ для разработчиков приложений. Согласно новой политике видимости пакетов, приложения должны видеть другие приложения только в том случае, если те необходимы для их базовой функциональности. Кроме того, разработчики должны явным образом объявлять эти приложения в обязательном для всех приложений Android файле конфигурации AndroidManifest.xml.

В крайних случаях, например, для диспетчеров файлов, браузеров и антивирусов Google предоставляет исключение в виде разрешения QUERY_ALL_PACKAGES, которое позволяет видеть все установленные приложения.

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

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

https://habr.com/ru/articles/895774/

original https://peabee.substack.com/p/everyone-knows-what-apps-you-use

#Android

👉 @developer_mobila
This media is not supported in your browser
VIEW IN TELEGRAM
Bonsai 🌳 — небольшая библиотека для управления состоянием во ViewModel

Bonsai — это крошечная библиотека управления состоянием без зависимостей, созданная специально для использования во ViewModel. Она облегчает реализацию однонаправленного потока данных (unidirectional data flow) и отделяет логику управления состоянием от UI и бизнес-логики.

Особенности
- Однонаправленный поток данных
- Без внешних зависимостей
- Простота в использовании
- Небольшой размер
- Объединяется с Kotlin Coroutines и Jetpack Compose

Пример использования


class CounterViewModel : BonsaiViewModel<CounterState>(CounterState()) {
fun increment() = reduce { state -> state.copy(count = state.count + 1) }
fun decrement() = reduce { state -> state.count.takeIf { it > 0 }?.let { state.copy(count = it - 1) } ?: state }
}

data class CounterState(val count: Int = 0)


И затем, в Compose:


val state by viewModel.state.collectAsState()
Text("Count: ${state.count}")


https://github.com/adrielcafe/bonsai

#Android

👉 @developer_mobila
2025/07/01 21:31:13
Back to Top
HTML Embed Code: