🚀 Room Database رو باهوشتر از SQLite معمولی استفاده کن!
اکثر پروژههای اندروید به ذخیرهسازی محلی نیاز دارن.
SQLite خوبه، اما کلی کد تکراری و boilerplate داره.
Room کتابخونهای از Jetpack هست که این کار رو برات راحت و خوشاندام میکنه.
📦 سه بخش اصلی Room:
1. Entity – ساختار جدول (کلاس داده)
2. DAO – متدهای دسترسی به داده (query)
3. Database – کلاس پایه برای مدیریت نسخهها
💡 مثال واقعی:
فرض کن میخوای لیست وظایف (To-Do) رو توی دستگاه ذخیره کنی. بهجای نوشتن SQLite raw، با Room چند خط کد مینویسی:
✅ این کد چه کاری انجام میده؟
- یک جدول
- عملیات insert و دریافت همه وظایف رو به صورت async (با
- نتیجه query بهصورت
🔁 چرا Room بهتر از SQLite معمولیه؟
- خطاهای compile-time (تایپسیف)
- پشتیبانی از Coroutines و Flow
- کاهش حجم کد boilerplate
📌 نکته عملی:
همیشه از
#Room #Android #Kotlin #Jetpack #SQLite #DataPersistence #Codeit
🌐 Codeit → https://code-it.ir
━━━━━━━━━━━━━━━
@CodeitMobile
اکثر پروژههای اندروید به ذخیرهسازی محلی نیاز دارن.
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