35
Xamarin Realm WILLIAM S. RODRIGUEZ #interopmix

Xamarin & Realm

Embed Size (px)

Citation preview

Page 1: Xamarin & Realm

Xamarin ♥ RealmWILLIAM S. RODRIGUEZ

#interopmix

Page 2: Xamarin & Realm

williamsrodz

Page 3: Xamarin & Realm

.NET CURITIBAOrganizador

meetup.com/NET-Curitiba

MONKEY NIGHTSOrganizador (um dos)

fb.com/MonkeyNightsDevs

Page 4: Xamarin & Realm

Mobile storage precisa ser

Rápido; Intelligente;

Seguro;

Page 5: Xamarin & Realm

O que podemos usar?

Serialização de objetos (Json); SQLite;

Core Data (iOS);

Page 6: Xamarin & Realm
Page 7: Xamarin & Realm

20 anos30 tipos de soluções diferentes

Page 8: Xamarin & Realm
Page 9: Xamarin & Realm

O que é Realm?

Anunciado em julho de 2014; Pensado para mobile (implementado do zero, baseado no modelo ORM);

Performático, thread-safe;

Page 10: Xamarin & Realm

API simples e bem documentada; Construído com C++;

Open Source (+-)

O que é Realm?

Page 11: Xamarin & Realm

Quanto custa?

Page 12: Xamarin & Realm

Cross Platform

Page 13: Xamarin & Realm

O que me fez olha com carinho para Realm?Facil de usar;

Object conversion manipulados para você; Time de desenvolvimento interage com a

comunidade; Conveniente para criar e armazenar dados on the fly;

Mais rápido que SQLite

Page 14: Xamarin & Realm

Criando um Schema

CREATE TABLE `person` { `id` INTEGER NOT NULL, `identifier` VARCHAR(80) NOT NULL, `name` VARCHAR(50) NOT NULL, `email` VARCHAR(150) NOT NULL, `age` INTEGER NOT NULL };

SQLite

Page 15: Xamarin & Realm

Criando um Schema

public class Person : RealmObject { public string id {get; set;} public string Name {get; set;} public string Email {get; set;} public int Age {get; set;} }

Realm

Page 16: Xamarin & Realm

Com Realm seus Models são seus schemas

Page 17: Xamarin & Realm

Performance

Page 18: Xamarin & Realm

Performance

Page 19: Xamarin & Realm

Quem usa?

Page 20: Xamarin & Realm

Realm já está rodando em mais de meio bilhão de dispositivos.

500,000,000

Page 21: Xamarin & Realm

Como funciona?

Core C++

Language Bindings

Platform

Page 22: Xamarin & Realm

#comofaz?

// Define your models like regular C# classes public class Dog : RealmObject { public string Name { get; set; } public int Age { get; set; } public Person Owner { get; set; } }

public class Person : RealmObject { public string Name { get; set; } public IList<Dog> Dogs { get; } }

Page 23: Xamarin & Realm

#comofaz?

var realm = Realm.GetInstance();

// Use LINQ to query var puppies = realm.All<Dog>().Where(d => d.Age < 2);

// => 0 because no dogs have been added yet puppies.Count();

// Update and persist objects with a thread-safe transaction realm.Write(() => { var myDog = realm.CreateObject<Dog>(); myDog.Name = "Rex"; myDog.Age = 1; });

Page 24: Xamarin & Realm

#comofaz?

// Queries are updated in realtime puppies.Count(); // => 1

// LINQ query syntax works as well var oldDogs = from d in realm.All<Dog>() where d.Age > 8 select d;

Page 25: Xamarin & Realm

DEMO

Page 26: Xamarin & Realm

Quer saber mais?

Page 27: Xamarin & Realm

bit.ly/xamarin-talks

Page 28: Xamarin & Realm

realm.io

Page 29: Xamarin & Realm

developer.xamarin.com

Page 30: Xamarin & Realm

bit.ly/dotnet-confs

Page 31: Xamarin & Realm

meetup.com/net-curitiba

Page 32: Xamarin & Realm

bit.ly/xamarin-dev-days-curitiba

Page 33: Xamarin & Realm

Dúvidas?

Page 34: Xamarin & Realm

Obrigado

Page 35: Xamarin & Realm

@williamsrodz