Codeit Mobile
94 subscribers
3 photos
1 video
243 links
📱 آموزش برنامه‌نویسی موبایل

Kotlin • Android

🚀 آموزش ساده، کاربردی و پروژه‌محور
💡 مخصوص توسعه‌دهندگان موبایل
Download Telegram
🚀 سری «Flow» قسمت دوم؛ وقتشه خودمون یک «Flow» بسازیم!

اول از همه بدونیم ساخت «Flow» سه راه اصلی داره:

۱️⃣ «flowOf» برای ساخت از مقادیر ثابت
۲️⃣ «asFlow» برای تبدیل «Collection» یا «Range» به «Flow»
۳️⃣ «flow builder» برای ساخت جریان داده‌های ناهمزمان

💡 مثلاً فرض کن داری لیست کارهای یک کاربر رو از «Room Database» می‌خونی؛ بهترین راه برگردوندن «Flow» هست.

بریم سراغ کد، ساده‌ترین حالت ساختن «Flow»:

val numberFlow: Flow<Int> = flowOf(1, 2, 3, 4, 5)

val rangeFlow: Flow<Int> = (1..5).asFlow()

val customFlow: Flow<String> = flow {
emit("شروع")
delay(1000)
emit("پایان")
}


توی «flow builder»، تابع «emit» مقدار تولید می‌کنه و «delay» فقط یه شبیه‌سازی از کار سنگینه.

بعداً با «Flow» حاصل می‌تونی از «StateFlow» یا «SharedFlow» هم استفاده کنی.

📌 نکته: «Flow» یه جریان «cold» هست؛ یعنی تا کسی جمعش نکنه، اجرا نمی‌شه.

🎯 پس هر وقت داده‌ای داری که به‌مرور تولید می‌شه، «Flow» بهترین انتخابه.

بگو کدوم بخش برات مبهمه تا توی پست بعدی عمیق‌تر بریم.

#Codeit #Android #Kotlin #Jetpack #Flow #Coroutines #StateFlow #ReactiveProgramming
🌐 Codeit → https://code-it.ir

━━━━━━━━━━━━━━━
@CodeitMobile
1🔥1
🔄 ترکیب دو «Flow» با عملگر «zip» — دقیقاً مثل زیپ کاپشن!

وقتی دو جریان داده دارید و می‌خواهید هر جفت مقدار رو به‌هم بچسبونید و یه خروجی جدید بسازید، «zip» بهترین انتخاب است.

🧠 فرض کنید از دو سنسور مجزا دما و رطوبت دریافت می‌کنید. «zip» جفت‌های هم‌ترتیب رو ترکیب می‌کند.

مثال عملی: ترکیب اطلاعات کاربران از دو منبع مختلف.

💻 کد ساده با «zip» در «Kotlin»:
val flowA = flowOf("دما: ۲۵°", "دما: ۲۶°", "دما: ۲۷°")
val flowB = flowOf("رطوبت: ۴۰%", "رطوبت: ۴۲%")

flowA.zip(flowB) { temp, humidity ->
"$temp — $humidity"
}.collect { combined ->
println(combined)
}
// خروجی:
// دما: ۲۵° — رطوبت: ۴۰%
// دما: ۲۶° — رطوبت: ۴۲%
// (جفت سوم چون جفت ندارد، نادیده گرفته می‌شود)

📌 نکته: اگر تعداد جفت‌ها نامساوی باشد، جفت‌های اضافی حذف می‌شوند.

«zip» برای ترکیب دقیق دو جریان موازی عالی است.

🎯 این عملگر رو در سناریوهای real-time فراموش نکنید.

#Codeit #Android #Kotlin #Jetpack #Flow #KotlinFlows #ReactiveProgramming
🌐 Codeit → https://code-it.ir

━━━━━━━━━━━━━━━
@CodeitMobile
2