Google Kotlin Coroutines and Flow را به عنوان راه حل ترجیحی برای برنامه نویسی ناهمزمان در Android توصیه می کند. دیر یا زود، احتمالاً هر برنامه نویس Android با این موضوعات در تماس خواهد بود.
این دوره به شما درک عمیقی از Kotlin Coroutines و Flow می دهد و نحوه پیاده سازی رایج ترین موارد استفاده برای برنامه های Android را نشان می دهد.
این دوره از دو بخش بزرگ تشکیل شده است: بخش Coroutines و بخش Flow.
قبل از اینکه بتوانیم از Flow در برنامه های خود استفاده کنیم، ابتدا به درک کاملی از Coroutines نیاز داریم. به همین دلیل است که ابتدا Coroutine ها پوشش داده می شوند. با این حال، اگر قبلاً با Coroutines تجربه دارید، میتوانید بلافاصله با قسمت Flow شروع کنید و هر زمان که لازم بود به درسهای قسمت Coroutines بازگردید.
در قسمت مربوط به Coroutines، ابتدا نگاهی مفصل به مزایای Kotlin Coroutine نسبت به سایر رویکردهای برنامه نویسی ناهمزمان، مانند RxJava و Callbacks خواهیم داشت.
سپس، در مورد برخی از مبانی نظری صحبت خواهیم کرد. این موارد عبارتند از:
روالها در مقابل کارهای روزمره
توابع تعلیق
Coroutines در مقابل Threads
مسدود کردن در مقابل تعلیق
کوروتین های چند رشته ای
کارهای داخلی
در مرحله بعد، برخی از رایج ترین موارد استفاده برای Kotlin Coroutines را در برنامه های Android پیاده سازی می کنیم. این موارد عبارتند از:
انجام درخواست های شبکه با Retrofit به صورت متوالی و همزمان
اجرای مهلت زمانی و تلاش مجدد
استفاده از اتاق با کوروتین ها
انجام پردازش پسزمینه با Coroutines
ادامه اجرای Coroutine حتی زمانی که کاربر صفحه را ترک میکند.
برای بهبود تجربه یادگیری خود، این دوره همچنین شما را با چندین تمرین به چالش می کشد.
یادگیری برنامههای آموزشی میتواند طاقتفرسا باشد زیرا باید مفاهیم جدید زیادی را یاد بگیرید. با این حال، ما می خواهیم ساده شروع کنیم و با پیچیده تر شدن موارد استفاده ما، گام به گام با مفاهیم جدید آشنا خواهیم شد. این مفاهیم جدید عبارتند از:
Coroutine Builders (راه اندازی، ناهمگام، runBlocking)
زمینه Coroutine
Dispatchers Coroutine
همزمانی ساختاریافته
محدودههای کوروتین (viewModelScope، lifecycleScope، GlobalScope)
شغل و شغل سرپرست
توابع محدوده (coroutineScope{} و supervisorScope{})
لغو تعاونی
کد غیرقابل لغو
ما همچنین به بررسی Exception Handling خواهیم پرداخت و در مورد مفاهیمی مانند:
بحث خواهیم کردبررسی استثنا با try/catch
بررسی استثنا با CoroutineExceptionHandlers
چه زمانی از try/catch استفاده شود و چه زمانی از CoroutineExceptionHandler استفاده شود
بررسی استثنا در Coroutines با راهاندازی و ناهمگامسازی آغاز شد
مشخصات رسیدگی به استثناء توابع محدودهبندی coroutineScope{} و supervisorScope{}
تست های واحد برای هر پایگاه کد بسیار مهم هستند. در بخش پایانی دوره، آزمونهای واحدی را برای اکثر موارد استفاده مبتنی بر روتین که قبلاً اجرا کردیم، خواهیم نوشت. در مورد مفاهیمی مانند
بحث خواهیم کردTestCoroutineDispatcher
ایجاد یک قانون JUnit4 برای آزمایش کد مبتنی بر کوروتین
runBlockingTest{} Coroutine Builder
زمان مجازی
آزمایش اجرای متوالی و همزمان
TestCoroutineScope
در قسمت مربوط به Kotlin Flow، ابتدا تمام اصول اولیه را پوشش می دهیم. ما به سوال "جریان چیست؟" پاسخ خواهیم داد. و سپس مزایا و معایب برنامه نویسی واکنشی را مورد بحث قرار می دهیم.
پس از آن، میخواهیم نگاهی به سازندگان و اپراتورهای مختلف Flow بیندازیم:
جریان سازهای پایه
اپراتورهای پایانه
اپراتور پایانه "launchIn()"
اپراتور پایانه "asLiveData()"
اپراتورهای چرخه حیات
اپراتورهای میانی
در اولین مورد واقعی Flow ما، ما از یک Flow برای ایجاد یک ویژگی ردیابی سهام زنده استفاده میکنیم که از تمام اجزای اصلی جریان موجود استفاده میکند.
در ماژول بعدی، نگاهی به مدیریت استثنا و لغو با Kotlin Flow خواهیم داشت.
در ماژول زیر، با StateFlow و SharedFlow و مفاهیم زیر آشنا خواهید شد:
چگونه با تابع تعلیق "repeatOnLifecycle()" Coroutines را از چرخه حیات آگاه کنیم
جریان های گرم در مقابل جریان های سرد
تبدیل جریان به SharedFlows با عملگر "shareIn()
تبدیل جریان ها به StateFlows با عملگر "stateIn()"
چه زمانی از SharedFlow و چه زمانی از StateFlow استفاده شود
در ادامه، با کانالها، تفاوت آنها با جریانهای داغ و زمانی که در برنامههای Android مفید هستند، آشنا میشوید.
در پایان این دوره، شما یک درک اساسی از Kotlin Coroutines و Flow خواهید داشت و میتوانید برنامههای Android قابل خواندن و نگهداری، ناهمزمان و چند رشتهای بنویسید.
برنامه نویس مستقل اندروید
نمایش نظرات