ارائه‌های مرتبط به Coroutine در یوتیوب

وقتی قرار شد توی پادکست کاتلین فارسی در مورد Coroutine صحبت کنم، تصمیم گرفتم در موردش عمیق‌تر بدونم. برای همین از یه روشی استفاده کردم که قبلا باهاش Dagger و RxJava رو یاد گرفته بودم. روش ساده‌‌ای هست، این مدلیه که موضوع رو باید انتخاب کرد، بعد باید توی یه مدت کوتاه و بصورت فشرده هرچی ویدئو و مقاله مرتبط به موضوع توی یوتیوب و مدیوم و … هست رو دید یا خوند. حتی اگر چیزی ازشون نشه متوجه شد هم اشکال نداره و باید باز ادامه داد. اوایلش یه مدت اذیت کننده هست ولی یهو از یه جایی به بعد همه اطلاعاتی که پراکنده از منابع متفاوت خونده شدن، بهم لینک میشن و شبیه کارتون‌های دوران بچگی، یه لامپ گنده توی مغز آدم روشن میشه. برای همین منم رفتم یوتیوب و هر ارائه‌ای که توی عنوانش Coroutine رو داشت دیدم، حالا چه کنفرانس قدیمی بود (مثل Kotlin Confهای گذشته) یا حتی به اندروید مرتبط نبود (مثل یکی دو تا فیلم در مورد استفاده از Coroutine توی Spring). نتیجه راضی کننده بود و کلی چیز جالب در مورد Coroutine و Flow یادگرفتم. وقتی ارائه‌هارو میدیدم، اونایی که دوست داشتمو یا یکم توضیح توی یه فایل می‌نوشتم، چون بنظرم شاید بدرد بقیه هم بخوره، در ادامه چیزهایی که برای خودم توی اون فایل نوشته بودمو با یکم تغییر مینویسم:ارائه KotlinConf 2017 - Introduction to Coroutineshttps://www.youtube.com/watch?v=_hfBv0a09Jc برای شروع ارائه خوبیه. البته من خیلی قدیم یبار همینجوری دیده بودمش ولی بهش دقت نکرده بودم و خیلی درکش نکرده بودم. اما این سری با تمرکز بالا دیدمش و متوجه شدم که خیلی خوب توضیح میده. میتونه دریچه‌ی ورود به coroutine باشه. ارائه دهنده اسمش Roman Elizarov هست، هرچی ارائه و مقاله از این نفر دیدید بخونید، هرچی. تک تک ارائه و مقاله‌هاش فوق‌العاده هستند. ۲ تا ارائه بعدی هم از همین نفره.ارائه KotlinConf 2017 - Deep Dive into Coroutines on JVMhttps://www.youtube.com/watch?v=YrrUCSi72E8این فیلم فوق‌العاده هست. خیلی خوبه. هر چی بگم کم گفتم. توی این ارائه در مورد این صحبت میشه coroutine چطوری پیاده سازی شده و چطوری این همه کار عجیب و غریب رو میکنه، واقعا جذابه. تا قبل از این که اینو ببینم coroutine رو خیلی خوب درک نمیکردم و فقط میدونستم چیه. ولی تازه بعد دیدن این فیلم فهمیدم چطوری کار میکنه و چطوری اون کد async رو میتونیم به شکل sync بنویسیم.ارائه KotlinConf 2018 - Kotlin Coroutines in Practicehttps://www.youtube.com/watch?v=a3agLJQ6vt8توی این ارائه Elizarov یه سیستم دانلود رو با coroutine پیاده میکنه. از همه چی توش استفاده میکنه مثل channel و … . یه قسمتش در مورد پیاده سازی coroutinescope صحبت میکنه و اینکه فرق بین متدهای suspend و scope چیه.ارائه Understand Kotlin Coroutines on Android (Google I/O'19)https://www.youtube.com/watch?v=BOHK_w09pVAاین ارائه اولش از این نظر مهمه که میگه چرا با وجود Rx و Livedata گوگل این همه پیگیر coroutine شده. بعدش یکم در مورد اینکه coroutine چطور کار میکنه میگه. در ادامه در مورد این میگه چرا اصن بهتره اگر workermanager استفاده میکنیم از اون مدلش که‌ با coroutine کار میکنه استفاده کنیم. بعدش در مورد scopeهای از پیش آماده شده توی اندروید مثل viewmodelScope و … حرف میزنه و در آخر LiveData block رو میگه که چطوری کار میکنن و lifecycleش چطورهارائه KotlinConf 2019: Asynchronous Data Streams with Kotlin Flowhttps://www.youtube.com/watch?v=tYcqn48SMT8این ارائه در مورد Flow خیلی خوبه. فرقشو با channel میگه و در ادامه توضیحش میده و با RxJava اینام مقایسه‌اش میکنه. اگر RxJava بلد باشید، خیلی راحت میتونید با این ارائه Flow رو درک کنید.ارائه LiveData with Coroutines and Flow (Android Dev Summit '19)https://www.youtube.com/watch?v=B8ppnjGPAGEاینم خیلی خوبه، اولش از coroutine شروع میکنه و ترکیبشو با livedata اینا میگه. اینکه چطور بجای اینکه خودتون اینترفیس coroutine scope رو پیاده کنید، میتونید از scopeهای اندروید مثل viewodelScope و … استفاده کنید.آخرش Flow رو میگه و میگه توی پترن‌های مختلف چطوری میشه ازش توی لایه‌های مختلف ViewModel و Repository و … استفاده کرد. برای کسایی که میخوان توی اندروید از Coroutine استفاده کنن واقعا مفیده.ارائه KotlinConf 2019: Coroutines! Gotta catch 'em all!https://www.youtube.com/watch?v=w0kfnydnFWIتوی این ارايه هم در مورد coroutinescop و context و بقیه چیزا صحبت میشه. و چیزی که خیلی در موردش صحبت میشه، نحوه‌ی cancel شدن و هندل کردن exceptionها توی Coroutine هست.