Sobes.tech
Junior

Hangi veri depolama yöntemlerini biliyorsun?

sobes.tech yapay zeka

AI'dan gelen yanıt

  1. SharedPreferences: Basit anahtar-değer çiftlerini (ilkel tipler) depolamak için. Hızlı erişim sağlar, ancak büyük veri hacimleri için uygun değildir.

  2. Dahili depolama (Internal Storage): Sadece uygulama tarafından erişilebilen dosya sistemi. Veriler kaldırılırken silinir. Gizli veriler için uygundur.

    // Dosya yazma
    applicationContext.openFileOutput("my_file.txt", Context.MODE_PRIVATE).use {
        it.write("Some data".toByteArray())
    }
    
    // Dosya okuma
    applicationContext.openFileInput("my_file.txt").bufferedReader().useLines { lines ->
        lines.forEach { println(it) }
    }
    
  3. Harici depolama (External Storage): Diğer uygulamalar (izinlerle) ve kullanıcı tarafından erişilebilen dosya sistemi. Veriler kaldırılmadan kalır. Android 10+ izinlerine dikkat edilmelidir. Hassas olmayan veriler için uygundur.

  4. SQLite Veritabanları: İlişkisel veritabanı. Yapılandırılmış veriler ve karmaşık sorgular gerektiren durumlar için uygundur. Daha fazla kod gerektirir. Room Persistence Library önerilen ORM'dir.

    -- SQL sorgu örneği
    SELECT * FROM users WHERE age > 30
    
  5. İçerik Sağlayıcılar (Content Providers): Paylaşılan veri kümelerine yapılandırılmış erişim sağlar. Kendi verileri veya diğer uygulamaların verilerine erişmek için oluşturulabilirler (örneğin, kişiler).

  6. DataStore: Modern, asenkron veri depolama çözümü, SharedPreferences ve SQLite fonksiyonlarının bir kısmını değiştirir. İki türü vardır: Preferences DataStore (anahtar-değer çiftleri için) ve Proto DataStore (Protobuf ile tiplenmiş nesneler için).

    // Preferences DataStore örneği
    val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "settings")
    
    suspend fun saveSetting(context: Context, key: String, value: Boolean) {
        context.dataStore.edit { settings ->
            settings[booleanPreferencesKey(key)] = value
        }
    }
    
  7. Jetpack DataStore (eski sürümler) / DataSync / diğer bulut çözümleri: Kullanıcı cihazları arasında veri senkronizasyonu ve yedekleme için. Bulut servisleriyle entegrasyon gerektirir.

Yöntem seçimi, veri tipi, hacmi, ortak erişim ihtiyacı, güvenlik ve performans gereksinimlerine bağlıdır.