Persistenza su Android con Kripton

Persistenza su Android con Kripton

Su Android è possibile salvare i dati in diverse maniere:

  • persistenza su file system
  • database
  • shared preference

Oggi vediamo la prima modalità usando la libreria Kripton, disponibile sia per Kotlin che per Java (quello che useremo noi).

Prima di tutto aggiungete questo permesso al manifest:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

E poi queste dipendenze in gradle:

dependencies {
    ......................
    annotationProcessor "com.abubusoft:kripton-processor:5.0.0"
    implementation "com.abubusoft:kripton:5.0.0"
}

Proseguiamo creando una semplice classe che rappresenta una persona:

import com.abubusoft.kripton.annotation.BindType;

@BindType
public class Persona {
    public long id;
    public String nome;
}

Come vedete ha una annotazione che fa parte della libreria Kripton.

Poi creiamo due metodi per creare e leggere il file:

import java.io.File;

public class MainActivity extends AppCompatActivity {

    private String fileDb;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        fileDb = getApplicationContext().getFilesDir().getPath() + "persone.json";

        creaDb();
        readDb();
    }

    private void creaDb() {
        Persona p = new Persona();
        p.id = 1;
        p.nome = "Gino";
        BinderContext bc = KriptonBinder.jsonBind();
        bc.serialize(p, new File(fileDb));
    }

    private void readDb() {
        BinderContext binder = KriptonBinder.jsonBind();
        Persona parse = binder.parse(new File(fileDb), Persona.class);
        System.out.println("PERSONE:" + parse.id + " - " + parse.nome);
    }
}

Come già detto, questo codice crea un file su filesystem.

Più in la vedremo esempi usando database e altro.

Enjoy!




Share

Commentami!

About Mattepuffo.com

Blog dedicato all'informatica e alla programmazione!
Tutti i contenuti di questo blog, tranne casi particolari, sono sotto licenza Licenza Creative Commons Creative Commons Attribution-Noncommercial-Share Alike 2.5. .

2644 articoli
310 commenti
19 progetti
Altri link
  • About
  • Scrivimi
  • Copyright
  • Sitemap
  • matteo.ferrone@yahoo.it
  • GitHub
  • Privacy Policy