#3 Жизненный цикл корутины. CoroutineScope. Structured Concurrency || Курс по корутинам

  Рет қаралды 28,849

Android Broadcast. Все об Андроид разработке

Android Broadcast. Все об Андроид разработке

Күн бұрын

Пікірлер: 70
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
💰 Поддержать проект на Boosty boosty.to/androidbroadcast 🔗 Telegram канал "Android Broadcast" ttttt.me/android_broadcast 🔗 Чат сообщества в Telegram ttttt.me/android_broadcast_talks
@speedrages
@speedrages 2 жыл бұрын
Я прям чувствую что ты все четко и круто рассказываешь, но из за отсутствия опыта нифига не понимаю. Но уверен что это очень крутой контент 👍👍👍👍👍👍
@АнтошаГорохов
@АнтошаГорохов Жыл бұрын
такая-же ерунда. Тяжело для недоджуна ))
@hatePK1
@hatePK1 11 ай бұрын
нет, просто рассказчик плохо рассказывает. зачитать с бумажки и помахать руками любой сможет
@cfhnghmngtgjmghmjhm5629
@cfhnghmngtgjmghmjhm5629 6 ай бұрын
​@@АнтошаГорохов отзыв от недосеньора аналогичен, бабки заказчика пропиты, текст с бумажки сухо зачитан, хотите большего покупайте его курс на юдеми за 200к 😂
@МаратНазмутдинов-ы5н
@МаратНазмутдинов-ы5н 2 жыл бұрын
Очень забавная и легкая подача материала! Спасибо, Кирилл!
@05Sambist
@05Sambist 2 жыл бұрын
Кирилл спасибо большое! Но явно нужна текстовая версия видео 😅👍🏽
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Да, будет, просто у меня из-за основной работы очень мало времени. Выпустить видео - первый приоритет. Потом будут статьи из сценариев.
@fliker2309
@fliker2309 2 жыл бұрын
Спасибо за видео! Как раз и про Structured Concurrency есть, хотел разобраться в этом) Классный продакшен!
@ТатьянаГойшик
@ТатьянаГойшик 2 жыл бұрын
Кирилл, спасибо за курс) Наконец-то я до него добралась
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
На Boosty уже есть продолжение если что
@grigoriy3615
@grigoriy3615 2 жыл бұрын
Кирилл, хорошая задумка, но реализация немного хромает! Очень не хватает реального кодинга и показа всех кейсов на примерах! Не совсем понятно на кого курс нацелен?! Информацию сложно на слух воспринимать! Легко потерять мысль, т.к. темп речи довольно высокий и приходится по нескольку раз перематывать, чтобы удержать и осознать мысль. Пожалуйста, очень хочется, не менее 90% времени урока видеть код на экране!!!
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Так еще и не закончился курс
@МобильныйРазработчик-ъ3с
@МобильныйРазработчик-ъ3с 2 жыл бұрын
Здорово! Было интересно, спасибо!
@user-sankarsana
@user-sankarsana 2 жыл бұрын
Круто! Спасибо. Но я почему то думал, что будет больше лайвкодинга, как в курсе про даггер, например. Так на много легче усваивать.
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Тут я решил дать больше теории и устраивать лайвкодинг после нее, чтобы был фундамент. В Dagger можно было давать кусок инфы и на основе его что-то показать
@alexeenkoff
@alexeenkoff 2 жыл бұрын
А какая выгода от использования childScope внутри репозитория? Чем лучше использования appScope для операций, которые должны завершиться без привязки к жизненному циклу?
@karjicohd1m0nd
@karjicohd1m0nd 2 жыл бұрын
ты очень быстро говоришь из за чего не успеваешь переварить инфу, есть ли текстовая версия материала ?
@A-pe5yy
@A-pe5yy 2 жыл бұрын
либо помедленнее немного )))
@M1rRroR
@M1rRroR 2 жыл бұрын
И побольше примеров бы
@A-pe5yy
@A-pe5yy 2 жыл бұрын
0.75 скорость в принципе норм )))
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Вроде говорю как всегда, но принял к сведению. Текстовая версия будет, но позже. Примеров в видео не будет много, но в отдельных кодинг сессиях разберу задачки
@Sergey-e8e
@Sergey-e8e Жыл бұрын
Есть скорость 0,75
@anvarjuraqulov7165
@anvarjuraqulov7165 2 жыл бұрын
Кирилл спасибо большое ! Классное видео надеюсь увидеть практику в следующих видео )))
@Вячеслав-щ8х4и
@Вячеслав-щ8х4и Жыл бұрын
Спасибо
@tr1kss953
@tr1kss953 2 жыл бұрын
лайк) сам не мобильщик но на беке корутины используем нравицца)
@ДмитрийИжутов-п6п
@ДмитрийИжутов-п6п 2 жыл бұрын
Будет ли в рамках курса затрагиваться Flow? Хочется и про него послушать. И спасибо за курс!
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Да, но позже
@evgenorgru
@evgenorgru 2 жыл бұрын
Ты сказал, что лучше в функции явно указывать контекст... Но если мы будем указывать контекст во viewModel, потом в интеракторе, потом еще в репозитории... разве не будет тратиться время на переключение контекста, даже если везде указали один и тот же?
@andreyliashuk2516
@andreyliashuk2516 2 жыл бұрын
На самом деле, настоящие переключение потоков происходит при переходе для Main dispatcher (в основном). Если ты хочешь перейти на дефолтный будучи уже на нем, корутина продолжит выполнение на том же потоке. Больше того, IO и Default dispatcher шарят между собой пулл потоков, потому если ты будешь переходить между ними, корутина постарается не переключить поток. Эти оптимизации нужны, так как переключение довольно дорогая операция, потому корутины делают их по минимуму.
@rpuxa163
@rpuxa163 2 жыл бұрын
@@andreyliashuk2516 никогда бы не подумал, что io и default шарят потоки, это же гениально. Интересно, рум и ретрофит свои диспатчеры юзают, или стандартные, чтобы лишний раз не переключать поток
@andreyliashuk2516
@andreyliashuk2516 2 жыл бұрын
@@rpuxa163 Я могу точно сказать про Room, так как смотрел сгенерированные классы. Под капотом он использует свой пулл потоков, которые превращает потом в dispatcher. Но зато можно не обворачивать его вызовы в IO dispatcher, они могут безопасно работать на Main dispatcher. Насколько я знаю, в Retrofit тоже есть свой пулл потоков, но утверждать не могу.
@rpuxa163
@rpuxa163 2 жыл бұрын
@@andreyliashuk2516 я провел эксперимент - если переключать с default на io (или наоборот) то все равно он переключит поток. Так что неважно, что там используется один и тот же пул, все равно велик шанс, что поток переключится
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Это если вы гарантировано хотите убедится в каком потоке будет вызвана функция. Не все этого требуют. Поток выполнения по умолчанию - это главный. Если тебе его достаточно, то не меняй
@antaki93
@antaki93 Жыл бұрын
Да, намудрили в JetBrains… :) Корутина, скоуп, контекст, задача - и всё это, вроде бы, про одно и то же. Но и, в то же время, про что-то разное (пока не особо понятно, про что). Будем разбираться дальше
@AndroidBroadcast
@AndroidBroadcast Жыл бұрын
Нет, у всего есть четкое применение и трактовка
@antaki93
@antaki93 Жыл бұрын
​@@AndroidBroadcast чем на этом фоне хорош обычный джавовский Thread - он представлен одним обычным конкретным классом. Его можно создать через простой конструктор и управлять им непосредственно. Как говорится, ничего лишнего.
@sashainverse1252
@sashainverse1252 2 жыл бұрын
7'40'' Хорошо, а где тогда взять appScope для создания repositoryScope? Создать его из GlobalScope?
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Нет, можно вызвать функцию CoroutineScope для создания нового. Сохранить ссылку на него можно аналогично AppComponent Dagger в Application.
@edm-ko2017
@edm-ko2017 2 жыл бұрын
Спасибо. Отличное видео. Остался только вопрос как заменить runBlocking в синхронном апи, например в okhttp в Authenticator
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Тут можно использовать, именно связка блокирующего вызова с корутинами
@yet300
@yet300 12 күн бұрын
А плохо использовать run blocking при походе в сеть?
@AndroidBroadcast
@AndroidBroadcast 12 күн бұрын
runBlocking везде лучше избегать и такой запуск корутины нужен только если вам надо подружить его с блокирующим подходом. Например, в тестах или в Inteceptor OkHttp приходится делать
@oleg12395
@oleg12395 2 жыл бұрын
не переходит по ссылкам дополнительной литературы ((
@MaxPoklad
@MaxPoklad Жыл бұрын
Все круто, но лучше бы было с кодом.
@vladimirtribunskii8998
@vladimirtribunskii8998 2 жыл бұрын
А как же про viewModelScope и lifecycleScope?
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Они в отдельном видео про корутины в Android
@oigen1110
@oigen1110 2 жыл бұрын
Мечтаю о курсе про Kotlin
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Их хватает от JetBrains и Google
@nikolozlatsabidze2196
@nikolozlatsabidze2196 2 жыл бұрын
Кстати если рум и ретрофит меин сейф то если ли смысл указывать диспатчерс ио?
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Для Retrofit точно нет, а вот про Room надо проверить.
@ХожиакбарДжумабаев-ю1ц
@ХожиакбарДжумабаев-ю1ц 2 жыл бұрын
где можно футболку заказать?
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
androidbroadcaststore.by
@user-not_defined
@user-not_defined 2 жыл бұрын
Насчёт runblocking была история и самое плохое в том бага есть но ты не видишь явной причины, я использовал flow в вью модулях и запускал код VM через runblocking, код переписал и все стало гуд
@ГлебМокрый-ч7я
@ГлебМокрый-ч7я 2 жыл бұрын
первый 😃
@alexpro8317
@alexpro8317 2 жыл бұрын
😏👍
@dmitriymitroshin7525
@dmitriymitroshin7525 2 жыл бұрын
Комментарий.
@ssbykov
@ssbykov 6 ай бұрын
Грузит плотно ))
@Chernov1984
@Chernov1984 2 жыл бұрын
+
@Бардзо
@Бардзо Жыл бұрын
ну так то видео на 90% пустое и бессмысленное, ты ж прост стоишь и какие-то фразы выкидываешь, тебя должен понимать тот кто уже во всем разбирается на твоем же уровне. Зачем такие видео делают, хз
@alexvasilev9302
@alexvasilev9302 2 жыл бұрын
На самом деле не похоже на курс, а выглядит как обычный обзор
@МихаилАкулов-ю7ж
@МихаилАкулов-ю7ж Жыл бұрын
Извини,Ю но ты забалтываешь, голова устает от такой скорости подачи. А паузы ставить, ну его для других. Пойдём к другим, пока.
@hatePK1
@hatePK1 11 ай бұрын
Кто это лайкает? Автор читает текст, и ему все равно как это воспринимается. Ужасное объяснение.
@madinadruzina2339
@madinadruzina2339 9 ай бұрын
сложно, непонятно. наверное, это для опытных, но тогда какой смысл в записи курса?
@МаксимНовиков-н2с
@МаксимНовиков-н2с 2 жыл бұрын
По остановке coroutine не проще ли делать coroutineScope.coroutineContext.cancelChildren() coroutineScope.coroutineContext[Job]?.cancel() kzbin.info/www/bejne/nZ6qe6Slns6Zhc0
@AndroidBroadcast
@AndroidBroadcast 2 жыл бұрын
Я хоте показать всю цепочку без стандартных расширений
@МаксимНовиков-н2с
@МаксимНовиков-н2с 2 жыл бұрын
@@AndroidBroadcast Понятно. Хороший курс. Так держать!
#4 Обработка ошибок в корутинах || Курс по корутинам
6:52
Android Broadcast. Все об Андроид разработке
Рет қаралды 20 М.
#1 Что такое корутина. Важные особенности || Курс по корутинам
16:40
Android Broadcast. Все об Андроид разработке
Рет қаралды 91 М.
Friends make memories together part 2  | Trà Đặng #short #bestfriend #bff #tiktok
00:18
HELP!!!
00:46
Natan por Aí
Рет қаралды 49 МЛН
Try Not To Laugh 😅 the Best of BoxtoxTv 👌
00:18
boxtoxtv
Рет қаралды 7 МЛН
«Осень». Самая большая загадка Windows XP
14:36
Девять десятых
Рет қаралды 1 МЛН
Схема построения системы видеонаблюдения
7:15
О БЕЗ ОПАСНОСТИ
Рет қаралды 54
Google Play становится открытым | Новости мобильной разработки 2024.10
20:26
Android Broadcast. Все об Андроид разработке
Рет қаралды 3,6 М.
Kotlin: Threads vs. Coroutines (1)
10:50
Relatable Code
Рет қаралды 843
Let, Also, Apply, Run, With - Kotlin Scope Functions
11:44
Philipp Lackner
Рет қаралды 98 М.
Введение в Kotlin Coroutines (митап JUG Ru и Сбера).
48:16
Рустам Курамшин
Рет қаралды 4,1 М.
Friends make memories together part 2  | Trà Đặng #short #bestfriend #bff #tiktok
00:18