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

Kotlin • Android

🚀 آموزش ساده، کاربردی و پروژه‌محور
💡 مخصوص توسعه‌دهندگان موبایل
Download Telegram
🚀 Room Database رو باهوش‌تر از SQLite معمولی استفاده کن!

اکثر پروژه‌های اندروید به ذخیره‌سازی محلی نیاز دارن.
SQLite خوبه، اما کلی کد تکراری و boilerplate داره.
Room کتابخونه‌ای از Jetpack هست که این کار رو برات راحت و خوش‌اندام می‌کنه.

📦 سه بخش اصلی Room:
1. Entity – ساختار جدول (کلاس داده)
2. DAO – متدهای دسترسی به داده (query)
3. Database – کلاس پایه برای مدیریت نسخه‌ها

💡 مثال واقعی:
فرض کن می‌خوای لیست وظایف (To-Do) رو توی دستگاه ذخیره کنی. به‌جای نوشتن SQLite raw، با Room چند خط کد می‌نویسی:

@Entity(tableName = "tasks")
data class Task(
@PrimaryKey(autoGenerate = true) val id: Int = 0,
val title: String,
val isCompleted: Boolean = false
)

@Dao
interface TaskDao {
@Insert
suspend fun insert(task: Task)

@Query("SELECT * FROM tasks ORDER BY id DESC")
fun getAllTasks(): LiveData<List<Task>>
}

@Database(entities = [Task::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun taskDao(): TaskDao
}

این کد چه کاری انجام میده؟
- یک جدول tasks با سه فیلد می‌سازه.
- عملیات insert و دریافت همه وظایف رو به صورت async (با suspend) فراهم می‌کنه.
- نتیجه query به‌صورت LiveData برمی‌گرده تا UI به‌طور خودکار آپدیت بشه.

🔁 چرا Room بهتر از SQLite معمولیه؟
- خطاهای compile-time (تایپ‌سیف)
- پشتیبانی از Coroutines و Flow
- کاهش حجم کد boilerplate

📌 نکته عملی:
همیشه از suspend یا Flow برای عملیات دیتابیس استفاده کن تا ترد اصلی (main thread) رو بلاک نکنی.

#Room #Android #Kotlin #Jetpack #SQLite #DataPersistence #Codeit
🌐 Codeit → https://code-it.ir

━━━━━━━━━━━━━━━
@CodeitMobile
🔥1