Realm c’est quoi ?
Realm est une alternative à SQLite pour la création de bases de données Android. Realm Database est beaucoup plus rapide qu’un ORM (object-relational mapping) et plus rapide que SQLite. Chez hmwk. nous utilisons Realm dans la plupart de nos projets.
Nous allons voir rapidement comment intégrer et utiliser Realm dans un projet sous Android Studio.
Mise en place
Ajoutez la dépendance suivante au fichier build.gradle
1 | classpath "io.realm:realm-gradle-plugin:3.1.4" |
Ensuite, ajoutez le plugin realm-android à votre projet
1 2 | apply plugin: 'com.android.application' apply plugin: 'realm-android' |
Nous pouvons maintenant l’utiliser dans notre application.
Commencez par créer une classe qui hérite de Application, puis initialisez Realm.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); Realm.init(this); RealmConfiguration configuration = new RealmConfiguration.Builder() .schemaVersion(1) .name(getResources().getString(R.string.app_name)+".realm") .deleteRealmIfMigrationNeeded() .build(); Realm.setDefaultConfiguration(configuration); } } |
1 2 3 4 5 6 | android:name="family.hmwk.packagename.MyApplication" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme" |
Maintenant que la librairie est initialisée, on peut commencer à créer nos tables.
Rien de plus simple, il vous suffit d’hériter vos objects de RealmObject
#Create table
Il ne nous reste plus qu’à ajouter des données dans nos tables
#Insert
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | public Realm mRealmInstance; @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); mRealmInstance = Realm.getDefaultInstance(); } @Override public void onDestroy() { super.onDestroy(); if (mRealmInstance != null) { mRealmInstance.close(); } } private void addMarques() { Realm realm = Realm.getDefaultInstance(); realm.beginTransaction(); Marques mMarques = new Marques(); mMarques.setTitle("Picture Organic Clothing"); //.... try { realm.copyToRealmOrUpdate(mMarques); realm.commitTransaction(); } catch (Exception e) { } finally { realm.close(); } } |
Et voilà, c’est tout pour les bases de données Android avec Realm !
Ce tutoriel est loin d’être exhaustif. Pour plus de détails, je vous conseille d’aller lire la doc en ligne de Realm qui est très pratique.