![]() |
| Room Database Rehberi |
Android Kotlin ile Favorilere Ekleme Özelliği Nasıl Yapılır? (Room Database Rehberi)
Android uygulama geliştirme sürecinde kullanıcı deneyimini artıran en önemli özelliklerden biri "Favorilere Ekle" sistemidir. İster bir e-ticaret uygulaması ister bir haber bloğu yapın, kullanıcıların beğendikleri içerikleri kaydetmesini sağlamak etkileşimi artırır.
Bu rehberde, Kotlin ve Room Persistence Library kullanarak profesyonel bir favori sistemini nasıl inşa edeceğinizi adım adım öğreneceğiz.
1. Room Bağımlılıklarını Projeye Ekleyin
İlk olarak build.gradle (Module: app) dosyanıza gerekli kütüphaneleri ekleyerek başlayın:
dependencies {
def room_version = "2.6.1"
implementation "androidx.room:room-runtime:$room_version"
kapt "androidx.room:room-compiler:$room_version"
implementation "androidx.room:room-ktx:$room_version"
}
2. Veri Modelini (Entity) Oluşturun
Favoriye eklenen öğelerin veritabanında nasıl saklanacağını belirleyen bir tablo yapısı kuruyoruz.
@Entity(tableName = "favorites_table")
data class FavoriteProduct(
@PrimaryKey val id: Int,
val name: String,
val imageUrl: String
)
3. Veri Erişim Nesnesi (DAO) Tanımlayın
Veritabanına veri eklemek, silmek veya tüm favorileri listelemek için gerekli fonksiyonları burada tanımlıyoruz.
@Dao
interface FavoriteDao {
@Insert(onConflict = OnConflictStrategy.REPLACE)
suspend fun addFavorite(product: FavoriteProduct)
@Delete
suspend fun removeFavorite(product: FavoriteProduct)
@Query("SELECT * FROM favorites_table")
fun getAllFavorites(): LiveData<List<FavoriteProduct>>
}
4. MainActivity Üzerinden Favori İşlemi
Kullanıcı bir butona tıkladığında favori ekleme işlemini lifecycleScope kullanarak gerçekleştirebiliriz:
binding.btnFavorite.setOnClickListener {
val favoriteItem = FavoriteProduct(id = 101, name = "Akıllı Telefon", imageUrl = "url")
lifecycleScope.launch {
db.favoriteDao().addFavorite(favoriteItem)
Toast.makeText(this@MainActivity, "Favorilere Eklendi!", Toast.LENGTH_SHORT).show()
}
}
Favori Sistemi İçin Altın Kurallar
- Görsel Geri Bildirim: İkon durumunu (dolu/boş) anlık güncelleyin.
- Asenkron Yapı: Veritabanı işlemlerini mutlaka Coroutines (IO Dispatcher) ile yönetin.
- LiveData/Flow: Favori listesini gözlemlemek için reactive yapılar kullanın.

0 Yorumlar