Kotlin Adept Notes
1.98K subscribers
67 photos
10 videos
113 links
Канал о разработке на Kotlin и обо всем, что с ним связано
По всем вопросам и рекламе: @ajiekcx
Download Telegram
Channel created
О канале

Привет! Меня зовут Алексей Панов и я занимаюсь Android разработкой с 2015 года, за это время я поработал над множеством проектов, несколько раз поменял стек технологий, успел пописать под iOS и опробовать Flutter. Сейчас сконцетрирован на мультиплатформенной разработке с помощью Kotlin Multiplatform.

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

Здесь будут посты и про сам Kotlin, KMP, Compose, корутины и конечно же Android. В общем присоединяйтесь, будет интересно!
🔥161
Сегодня буду проводить публичное собеседование на YouTube канале Android Broadcast. Мы будем проектировать мультиплатформееное приложение и обсуждать Kotlin Multiplatform, Coroutines, Compose. Это уже третье по счету (раз, два) публичное собеседование в котором я принимаю участие и так как корутины и compose мы обмусолили со всех сторон, сегодня больше сосредоточимся на KMP и на практических навыках написания мультиплатформенных приложений.

Начинаем прямой эфир в 19:00 по мск, так что залетайте на трансляцию.

После трансляции, пишите комменты под этим постом👇, если вы считаете, что что-то осталось не раскрытым или просто хотите предъявить мне за то, что я плохо провожу собесы, в общем не стесняйтесь)
🔥15
Combine vs flatMapLatest + map

По горячим следам вчерашнего собеса, осталось недопонимание в чем разница между этими операторами.
Для решения задачки действительно можно было бы использовать оба решения, но есть ли разница?

В случае использования flatMapLatest за место combine:
👉 Будем каждый раз при изменении токена, пересоздавать счетчик. Это не критично, но если переставить местами два flow, то будем уже каждый раз ходить в БД, и это уже плохо
👉 Если за место flatMapLatest использовать любой другой flatMap*, то получим некорректное поведение, так так не отменим ticker flow
👉 Так как flatMapLatest отменяет корутину, важно, чтобы ticker поддерживал кооперативную отмену, иначе снова получим некорректное поведение

Чтобы запомнить все разнообразие операторов и как они работают, очень советую интерактивные marble диаграммы. Этот сайт про RxJs, но на самом деле разницы особо нет, если вам каких-то операторов не хватает во Flow, то можно воспользоваться библиотекой FlowExt

#Coroutines
🔥13👍3😱1