❓ چرا «Coroutines» در دنیای اندروید وجود دارن؟
چون مدیریت تسکهای ناهمگام مثل درخواست شبکه یا دیتابیس، با «Thread»های معمولی کابوسست 🧟
کالبکهای تو در تو (Callback Hell) کد رو غیرقابل نگهداری میکنن 😵💫
«Coroutines» راهکاری سبک و ساختاریافته برای نوشتن کد ناهمگام به سبک ساده و ترتیبی ارائه میدن 🛠️
بدون بلاک کردن رشته اصلی (Main Thread)، میتونید کارهای طولانی رو معلق (Suspend) کنید و بعد ادامه بدید 🧵✨
📌 یک مثال عملی: فرض کنید دیتا از سرور میگیرید و در UI نمایش میدید.
با «Coroutines» این کار بدون هیچ کالبکی انجام میشه:
🧩 این کد چیکار میکنه؟
«launch» یک «Coroutine» جدید میسازه که در «viewModelScope» اجرا میشه.
«withContext(Dispatchers.IO)» عملیات سنگین رو به رشته مخصوص I/O میبره، بدون بلاک کردن Main.
وقتی نتیجه آماده شد، خودکار به رشته اصلی برمیگرده و «updateUI» اجرا میشه.
✅ مزیت اصلی: کد همخون با کدهای ترتیبی معمولی، اما عملکرد همزمان و غیربلاککننده.
بدون نیاز به مدیریت دستی Threadها و کاهش مصرف حافظه.
🚀 این اولین قدم برای تسلط بر برنامهنویسی ناهمگام در کاتلینه.
بقیه مفاهیم مثل «Structured Concurrency» و «Cancellation» رو در بخشهای بعدی میبینیم.
#Codeit #Android #Kotlin #Jetpack #Coroutines #AsyncProgramming #KotlinCoroutines
🌐 Codeit → https://code-it.ir
━━━━━━━━━━━━━━━
@CodeitMobile
چون مدیریت تسکهای ناهمگام مثل درخواست شبکه یا دیتابیس، با «Thread»های معمولی کابوسست 🧟
کالبکهای تو در تو (Callback Hell) کد رو غیرقابل نگهداری میکنن 😵💫
«Coroutines» راهکاری سبک و ساختاریافته برای نوشتن کد ناهمگام به سبک ساده و ترتیبی ارائه میدن 🛠️
بدون بلاک کردن رشته اصلی (Main Thread)، میتونید کارهای طولانی رو معلق (Suspend) کنید و بعد ادامه بدید 🧵✨
📌 یک مثال عملی: فرض کنید دیتا از سرور میگیرید و در UI نمایش میدید.
با «Coroutines» این کار بدون هیچ کالبکی انجام میشه:
fun fetchUserData() {
viewModelScope.launch {
val user = withContext(Dispatchers.IO) { userRepository.getUser() }
// پس از دریافت، به UI برگرد
updateUI(user)
}
}
🧩 این کد چیکار میکنه؟
«launch» یک «Coroutine» جدید میسازه که در «viewModelScope» اجرا میشه.
«withContext(Dispatchers.IO)» عملیات سنگین رو به رشته مخصوص I/O میبره، بدون بلاک کردن Main.
وقتی نتیجه آماده شد، خودکار به رشته اصلی برمیگرده و «updateUI» اجرا میشه.
✅ مزیت اصلی: کد همخون با کدهای ترتیبی معمولی، اما عملکرد همزمان و غیربلاککننده.
بدون نیاز به مدیریت دستی Threadها و کاهش مصرف حافظه.
🚀 این اولین قدم برای تسلط بر برنامهنویسی ناهمگام در کاتلینه.
بقیه مفاهیم مثل «Structured Concurrency» و «Cancellation» رو در بخشهای بعدی میبینیم.
#Codeit #Android #Kotlin #Jetpack #Coroutines #AsyncProgramming #KotlinCoroutines
🌐 Codeit → https://code-it.ir
━━━━━━━━━━━━━━━
@CodeitMobile
❤2