О канале
Привет! Меня зовут Алексей Панов и я занимаюсь Android разработкой с 2015 года, за это время я поработал над множеством проектов, несколько раз поменял стек технологий, успел пописать под iOS и опробовать Flutter. Сейчас сконцетрирован на мультиплатформенной разработке с помощью Kotlin Multiplatform.
Я люблю выступать на конференциях и рассказывать что-нибудь интересное про новые технологии, но не всегда хочется это делать в видео формате или же писать статьи, поэтому решил завести свой канал, где периодически буду делиться чем-то полезным про разработку на Kotlin и обо всем, что с этим языком так или иначе связано.
Здесь будут посты и про сам Kotlin, KMP, Compose, корутины и конечно же Android. В общем присоединяйтесь, будет интересно!
Привет! Меня зовут Алексей Панов и я занимаюсь Android разработкой с 2015 года, за это время я поработал над множеством проектов, несколько раз поменял стек технологий, успел пописать под iOS и опробовать Flutter. Сейчас сконцетрирован на мультиплатформенной разработке с помощью Kotlin Multiplatform.
Я люблю выступать на конференциях и рассказывать что-нибудь интересное про новые технологии, но не всегда хочется это делать в видео формате или же писать статьи, поэтому решил завести свой канал, где периодически буду делиться чем-то полезным про разработку на Kotlin и обо всем, что с этим языком так или иначе связано.
Здесь будут посты и про сам Kotlin, KMP, Compose, корутины и конечно же Android. В общем присоединяйтесь, будет интересно!
🔥16❤1
Сегодня буду проводить публичное собеседование на YouTube канале Android Broadcast. Мы будем проектировать мультиплатформееное приложение и обсуждать Kotlin Multiplatform, Coroutines, Compose. Это уже третье по счету (раз, два) публичное собеседование в котором я принимаю участие и так как корутины и compose мы обмусолили со всех сторон, сегодня больше сосредоточимся на KMP и на практических навыках написания мультиплатформенных приложений.
Начинаем прямой эфир в 19:00 по мск, так что залетайте на трансляцию.
После трансляции, пишите комменты под этим постом👇, если вы считаете, что что-то осталось не раскрытым или просто хотите предъявить мне за то, что я плохо провожу собесы, в общем не стесняйтесь)
Начинаем прямой эфир в 19:00 по мск, так что залетайте на трансляцию.
После трансляции, пишите комменты под этим постом👇, если вы считаете, что что-то осталось не раскрытым или просто хотите предъявить мне за то, что я плохо провожу собесы, в общем не стесняйтесь)
🔥15
Combine vs flatMapLatest + map
По горячим следам вчерашнего собеса, осталось недопонимание в чем разница между этими операторами.
Для решения задачки действительно можно было бы использовать оба решения, но есть ли разница?
В случае использования flatMapLatest за место combine:
👉 Будем каждый раз при изменении токена, пересоздавать счетчик. Это не критично, но если переставить местами два flow, то будем уже каждый раз ходить в БД, и это уже плохо
👉 Если за место flatMapLatest использовать любой другой flatMap*, то получим некорректное поведение, так так не отменим ticker flow
👉 Так как flatMapLatest отменяет корутину, важно, чтобы ticker поддерживал кооперативную отмену, иначе снова получим некорректное поведение
Чтобы запомнить все разнообразие операторов и как они работают, очень советую интерактивные marble диаграммы. Этот сайт про RxJs, но на самом деле разницы особо нет, если вам каких-то операторов не хватает во Flow, то можно воспользоваться библиотекой FlowExt
#Coroutines
По горячим следам вчерашнего собеса, осталось недопонимание в чем разница между этими операторами.
Для решения задачки действительно можно было бы использовать оба решения, но есть ли разница?
В случае использования flatMapLatest за место combine:
👉 Будем каждый раз при изменении токена, пересоздавать счетчик. Это не критично, но если переставить местами два flow, то будем уже каждый раз ходить в БД, и это уже плохо
👉 Если за место flatMapLatest использовать любой другой flatMap*, то получим некорректное поведение, так так не отменим ticker flow
👉 Так как flatMapLatest отменяет корутину, важно, чтобы ticker поддерживал кооперативную отмену, иначе снова получим некорректное поведение
Чтобы запомнить все разнообразие операторов и как они работают, очень советую интерактивные marble диаграммы. Этот сайт про RxJs, но на самом деле разницы особо нет, если вам каких-то операторов не хватает во Flow, то можно воспользоваться библиотекой FlowExt
#Coroutines
🔥13👍3😱1