Пациент болен: как «продать» рефакторинг лиду и продакту

Недавно я перешёл в новую команду и столкнулся с классической задачей — рефакторингом сложной продуктовой фичи. Путь от диагностики проблемы до «продажи» решения был тернист... и нереально интересен. Всеми знаниями, что из него вынес, делюсь в этой статье. Текст будет полезен не только разработчикам продуктовых команд. Участникам core-команд расскажу про общие принципы рефакторинга, а менеджерам помогу понять, чем отличается зрелое предложение о рефакторинге от обычного «хочу всё переписать». Хочу узнать про рефакторинг ВСЁ

https://habr.com/ru/companies/dododev/articles/986812/

#рефакторинг #android #kotlin #архитектура_androidприложений #state_management #технический_долг #легасикод #kotlin_flow #продуктовая_разработка #командная_работа

Пациент болен: как «продать» рефакторинг лиду и продакту

Всем привет! Недавно я перешёл в команду, которая прокачивает программу лояльности, персонализацию и геймификацию в приложении Додо Пицца. На новом месте я почти сразу столкнулся с классической...

Хабр

Исследуем SharedFlow: emit vs tryEmit, как использовать replay и bufferCapacity

Всем привет! На связи Александр Гирев, Mobile Lead в команде ценообразования портала для продавцов в Wildberries. Однажды на собеседовании мы обсуждали с кандидатом кусочек кода, связанный с Kotlin Flow. Кандидату нужно было найти причину бага. И при помощи нейросети или своих глубоких познаний наш визави стал говорить о синхронности и асинхронности emit и tryEmit, которые используются для передачи новой порции данных в SharerFlow. К сути проблемы его размышления не относились, однако я получил сигнал, что здорово было бы поглубже разобраться, как это работает. В статье разберём разницу между emit() и tryEmit(), для каких случаев подходят эти операторы, а также обсудим влияние параметров replay и bufferCapacity на работу MutableSharedFlow

https://habr.com/ru/companies/wildberries/articles/960676/

#kotlin_flow #coroutines #android

Исследуем SharedFlow: emit vs tryEmit, как использовать replay и bufferCapacity

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

Хабр

flowOn vs withContext: правильное переключение потоков в Flow в Kotlin

Привет, Хабр! Сегодня мы рассмотрим, как правильно переключать контексты в Kotlin Flow и почему flowOn — это не то же самое, что withContext .

https://habr.com/ru/companies/otus/articles/932230/

#kotlin #Kotlin_Flow #корутины_Kotlin #flowOn #withContext #переключение_контекста #CoroutineDispatcher #DispatchersIO #DispatchersDefault

flowOn vs withContext: правильное переключение потоков в Flow в Kotlin

Привет, Хабр! Сегодня мы рассмотрим, как правильно переключать контексты в Kotlin Flow и почему flowOn  — это не то же самое, что withContext . Зачем вообще переключать контексты...

Хабр

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

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

https://habr.com/ru/companies/otus/articles/928980/

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

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

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

Хабр

Обзор Kotlin Flow

Привет, Хабр! В этой статье рассмотрим, как работает Kotlin Flow — инструмент для асинхронной обработки данных. Flow позволяет легко получать данные по мере их готовности, не блокируя основной поток, а также управлять отменой, обработкой ошибок и сменой контекста.

https://habr.com/ru/companies/otus/articles/882736/

#kotlin #Kotlin_Flow #обработка_данных #асинхронная_обработка

Обзор Kotlin Flow

Привет, Хабр! В этой статье рассмотрим, как работает Kotlin Flow  — инструмент для асинхронной обработки данных. Flow позволяет легко получать данные по мере их готовности,...

Хабр

Сравнение операторов RxJava 3 и Kotlin Coroutines Flow

Привет, Хабр! Меня зовут Константинов Александр, я Android-разработчик в «Студии Олега Чулакова». Сегодня мы сравим операторы RxJava 3 и Flow. Статья будет полезна как для изучения операторов, так и для более легкого перехода с RxJava на Flow.

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

#kotlin #kotlin_coroutines #kotlin_flow #rx #rxjava

Сравнение операторов RxJava 3 и Kotlin Coroutines Flow

Привет, Хабр! Меня зовут Константинов Александр, я Android-разработчик в «Студии Олега Чулакова». Сегодня мы сравим операторы RxJava 3 и Flow. Статья будет полезна как для изучения операторов, так и...

Хабр