Sobes.tech
Junior

Welke methoden voor gegevensopslag ken je?

sobes.tech AI

Antwoord van AI

  1. SharedPreferences: Voor het opslaan van eenvoudige sleutel-waardeparen (primitieve types). Snelle toegang, maar niet geschikt voor grote hoeveelheden gegevens.

  2. Interne opslag (Internal Storage): Bestandssysteem dat alleen toegankelijk is voor de app. Gegevens worden verwijderd bij de uninstallatie. Geschikt voor privégegevens.

    // Bestand schrijven
    applicationContext.openFileOutput("my_file.txt", Context.MODE_PRIVATE).use {
        it.write("Some data".toByteArray())
    }
    
    // Bestand lezen
    applicationContext.openFileInput("my_file.txt").bufferedReader().useLines { lines ->
        lines.forEach { println(it) }
    }
    
  3. Externe opslag (External Storage): Bestandssysteem dat toegankelijk is voor andere apps (met permissies) en de gebruiker. Gegevens blijven na de uninstallatie bestaan. Vereist aandacht voor permissies op Android 10+. Geschikt voor niet-gevoelige gegevens.

  4. SQLite-databases: Relationele database. Geschikt voor gestructureerde gegevens die complexe query's vereisen. Vereist meer code voor implementatie. Room Persistence Library is de aanbevolen ORM.

    -- Voorbeeld SQL-query
    SELECT * FROM users WHERE age > 30
    
  5. Content Providers: Bieden gestructureerde toegang tot gedeelde datasets. Kunnen worden gemaakt voor eigen gegevens of voor toegang tot gegevens van andere apps (bijvoorbeeld contacten).

  6. DataStore: Moderne asynchrone oplossing voor gegevensopslag, vervangt SharedPreferences en een deel van SQLite-functionaliteit. Er zijn twee types: Preferences DataStore (voor sleutel-waarde paren) en Proto DataStore (voor getypeerde objecten met Protobuf).

    // Voorbeeld Preferences DataStore
    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 (oudere versies) / DataSync / andere cloud-oplossingen: Voor het synchroniseren van gegevens tussen apparaten van de gebruiker en het opslaan van back-ups. Vereist integratie met cloudservices.

De keuze van de methode hangt af van het type gegevens, de omvang, de behoefte aan gedeelde toegang, beveiligingskwesties en prestatie-eisen.