Android-разработка[7]. Многопоточность. Корутины.

Поділитися
Вставка
  • Опубліковано 25 лип 2024
  • Лекция о многопоточном программировании под Android.
    Разберем сферу применения, плюсы и минусы многопоточного подхода в разработке мобильного приложения.
    Рассмотрим способы реализации многопоточности в Android из прошлого и подробный разбор современных Kotlin Coroutines.
    Лектор: Георгий Сагарадзе
    by Doubletapp (doubletapp.ai)
    Android-чат для вопросов в телеграме t.me/doubledroid
    Наш production-канал:
    / @old_doubletapp
    ⬇⬇⬇
    Сайт: doubletapp.ai
    VK: doubletapp
    Telegram: t.me/doubletapp
    Instagram: / doubletapp.ai
    Facebook: / doubletapp.ai
    Dribble: dribbble.com/Doubletapp
    00:00 Android-разработка[7]. Многопоточность. Корутины.
    00:40 Причины применения многопоточности
    02:24 Трудности многопоточного программирования
    02:40 Какие операции выносить в параллельный поток
    05:25 Способы создания многопоточности в Android
    06:13 Thread
    11:43 AsyncTask
    13:24 Остальные способы создания параллельных потоков кратко
    13:58 Coroutine начало
    21:11 Coroutine job
    22:38 Coroutine dispatcher
    26:25 Coroutine scope
    29:28 Suspend функции
    30:38 Coroutine async
    33:21 Домашнее задание
    #Coroutines #Kotlin #AndroidDev

КОМЕНТАРІ • 30

  • @old_doubletapp
    @old_doubletapp 4 роки тому +3

    Таймкоды:
    0:54 - Причины применения многопоточности
    2:40 - Какие операции выносить в параллельный поток
    2:24 - Трудности многопоточного программирования
    5:25 - Способы создания многопоточности в Android
    6:13 - Thread
    11:43 - AsyncTask
    13:24 - Остальные способы создания параллельных потоков кратко
    13:58 - Coroutine начало
    21:11 - Coroutine job
    22:38 - Coroutine dispatcher
    26:25 - Coroutine scope
    29:28 - Suspend функции
    30:38 - Coroutine async
    33:21 - Домашнее задание

  • @spyro2008
    @spyro2008 4 місяці тому

    Спасибо Вам за такой чудесный урок!

  • @jojomajo
    @jojomajo 4 роки тому +9

    такой формат вообще годнота, намного лучше чем в аудитории

    • @user-re8zf8jr3e
      @user-re8zf8jr3e 3 роки тому +3

      Согласен. В 100 раз лучше.

  • @user-vx9fn4es6c
    @user-vx9fn4es6c 11 місяців тому

    Наконец-то кто-то коротко, емко и максимально понятно обьяснил все что касается многопоточности от Thread до корутин. Теперь все стало на свои места. Автору огромное спасибо!!!!!🤌🤌🤌🤌🤌🤝🤝🤝🤝

  • @user-cp7yq4zd5e
    @user-cp7yq4zd5e 3 роки тому +5

    очень круто! все достаточно подробно и по полочкам) продолжайте выпускать видео! большое спасибо!

  • @BuyukIlhom
    @BuyukIlhom 3 роки тому +2

    Спасибо за видео! Очень подробно и понятно объяснил

  • @alexeymurnikov1413
    @alexeymurnikov1413 3 роки тому +1

    Отличное видео, спасибо!

  • @antonyhy6564
    @antonyhy6564 2 роки тому

    Потрясающая лекция. Наконец всё понятно!!!

  • @aldredo5543
    @aldredo5543 3 роки тому +2

    легко просматривается, круто )

  • @abuiman5251
    @abuiman5251 2 роки тому

    Спасибо за труд!

  • @ramilskl
    @ramilskl 2 роки тому

    Очень доступно👍🏼

  • @onegin5129
    @onegin5129 3 роки тому +2

    Супер!

  • @yuriykyus
    @yuriykyus Рік тому

    Очень всё понятно объясняется. Спасибо!

  • @user-ks8zk9dn3s
    @user-ks8zk9dn3s 2 роки тому

    Один из самых информативных докладов!

  • @maksimsgerasimskis3253
    @maksimsgerasimskis3253 2 роки тому

    Классно объяснил!

  • @iand954
    @iand954 3 роки тому +1

    Спасибо!

  • @mikhailgureev218
    @mikhailgureev218 3 роки тому +3

    охуедь вы чёткие ребята. спасибо большое.

  • @kirillsushilnikov9614
    @kirillsushilnikov9614 2 роки тому

    Очень крутая лекция, спасибо.
    Интересно, насколько нормально использовать async/await в циклах, например для кучи вложенных запросов в сеть?

  • @olexandr_kiss
    @olexandr_kiss 3 роки тому +2

    Очень понятно объяснил. Корутины перестали быть такими страшными - спасибо большое) Особенное спасибо за сравнение с Thread'ами и объяснение разницы - очень все доступно. Теперь с таким бэкграундом легче их изучать и вникать глубже.

    • @Yazon2006
      @Yazon2006 2 роки тому

      Ну да, просто добавилась некоторая "магия", которая магическим образом всё пояснила.

  • @developer2931
    @developer2931 3 роки тому

    27.57 «наследуем модель от скоупа»
    Наверняка вы хотели сказать «реализует интерфейс корутинСкоуп»

  • @egorgutko8666
    @egorgutko8666 3 роки тому +1

    Ребят, у меня вопрос возник. Вы пишете: GlobalScope.launch{
    showProgress()
    val result = getResultFromServer(data)
    }
    В каком потоке это работает? Если это Main, то по идее будет freez, если Default, то как тогда можно работать с progress, ведь, по идее, нельзя менять ui не в Main?

    • @doubletapp.studio
      @doubletapp.studio  3 роки тому +1

      Это мейн поток поэтому юи будет менятся, но для getResultFromServer мы указываем другой поток с помощью withContext поэтому не будет никаких фризов

  • @Yazon2006
    @Yazon2006 2 роки тому

    Сама концепция корутин достаточно исковеркана. Попутаны понятия асинхронного кода и многопоточного. Много чего просто объясняется магией. Уже либо объяснять всё как подобает, либо просто сказать: пиши вот так и получишь такой результат.

  • @user-tv3gf4to5t
    @user-tv3gf4to5t 3 роки тому

    Формат крутой , разбор материала супер. Но пожалуйста попейте воды перед выступлением причмокивание просто невероятно раздражают

  • @kirillprybylskyi961
    @kirillprybylskyi961 4 роки тому

    очень затянуто

  • @azatserzhan09
    @azatserzhan09 2 роки тому

    Спасибо за работу, очень понятно обьясняет Георгий. Но есть один нюанс, GlobalScope не рекомендуется использовать, в данной документации можно ознакомиться с лучшей практикой от google по корутинам: developer.android.com/kotlin/coroutines?gclsrc=aw.ds&gclid=Cj0KCQiAzfuNBhCGARIsAD1nu-8FwVhMV6fGLeq2T0-oLRXJgSaZ7nxbr1Qdf-umOLxhEzyKW2PqOsUaAjyIEALw_wcB