Realm

Una increible alternativa a SQLite y a los almacenamientos nativos

Una manera simple de pensar

C++ CORE... C++!

Speed es su apellido

Tan sencillo como esto

public class Pais extends RealmObject {

    public String nombre;
    public int habitantes;

    //Getters & Setters
}

Anotaciones para los atributos

@PrimaryKey
public String nombre;
public int habitantes;

@Ignore
public String apellidoComun;

Escribiendo en el reino

Realm realm = Realm.getInstance(this);

realm.beginTransaction;

Pais pais = realm.createObject(Pais.class);
pais.setNombre("México");
pais.setHabitantes(118397000);

realm.commitTransaction();

Otra manera

realm.executeTransaction(new Realm.Transaction() {
	@Override
	public void execute(Realm realm) {
		User user = realm.createObject(Pais.class);
		user.setNombre("Tuvalu");
		user.setHabitantes(9876);
	}
});

Buscando en el reino

RealmQuery query = realm.where(Pais.class);

query.beginGroup()
        .contains("nombre","mo")
        .greaterThan("habitantes", 10000)
    .endGroup()
    .or()
    .beginGroup()
        .lessThan("habitantes", 80000)
    .endGroup();

RealResults<Pais> resultados = query.findAll();

Otras utilidades

resultados.order("habitantes",
                  RealmResults.SORT_ORDER_DESCENDING);

resultados.where()
          .contains("nombre","al")
          .findFirst();

resultados.sum("habitantes").longValue();
resultados.min("habitantes").longValue();
resultados.max("habitantes").longValue();
resultados.average("habitantes").longValue();

¿Puedo tener más de un reino?

¿Puedo tener más de un reino?

Context.getFilesDir()

¿Puedo tener más de un reino?

Context.getFilesDir()
Realm realm = Realm.getInstance(this, "ciudades.realm");

Ten cuidado con el manejo de threads

Auto-Refresh

Otro super poder!

realm.beginTransaction();
realm.createObjectFromJson(City.class, "{ city: \"Copenhagen\", id: 1 }");
realm.commitTransaction();

Realm

Una increible alternativa a SQLite y a los almacenamientos nativos

Made with Slides.com