View
21
Download
0
Category
Preview:
Citation preview
Iniciando com RealmCriando seu MVP de sucesso
Motivação
Evitar código SQL na aplicação.
Foco apenas na linguagem de programação utilizada.
Banco de dados criado especificamente para mobile.
Limitações
Acoplamento forte com a API (Nossas entidades devem estender RealmObject para serem persistidas).
Impossibilidade de passar RealmObject via Bundle.
Não é possível a construção de chaves compostas.
Não há compatibilidade com atributos final, volatile e transient.
Não existe auto AUTO_INCREMENT para chave primária.
Instalação
Pré requisitos
Android Studio 1.5.1 ou superior.
JDK versão 7.0 ou superior.
Android API Level 9 ou superior.
No arquivo build.gradle do projeto adicione as seguintes linhas:
buildscript { repositories { jcenter() } dependencies { classpath 'io.realm:realm-gradle-plugin:3.0.0' }}
E no build.gradle do módulo da aplicação, adicione:
apply plugin: 'realm-android'
ModelandoCom o Realm não temos mais o conceito de tabelas, e sim Models. Essas classes é que serão persistidas em nosso banco.
Para que tenhamos uma Model persistivel, basta estendermos de RealmObject.
Modelando
Nossa classe deve ser um Javabean, com construtor padrão, getters e setters. Caso você crie algum construtor customizado, lembre de adicionar o construtor default.
Modelando
Nos atributos do nosso Model, podemos usar algumas annotations para indicar alguns comportamentos.
@Required indica que o campo não pode ser nulo;
@Index indica que o campo será indexado;
@PrimaryKey indica uma chave primária;
@Ignore indica que o campo não será persistido em disco.
Relacionamentos
Temos duas maneiras de representar relacionamentos entre objetos. A primeira é inserindo um atributo com tipo de outro objeto (deve também estender RealmObject), e a outra maneira é inserindo um atributo que represente uma lista de objetos.
Com isso conseguimos atender relacionamentos do tipo One to One, One to Many e Many to Many.
Gravando no bancoO Realm, assim como vemos em ORMs, trabalha com contexto de transação.
O que isso significa ?
Resumidamente, significa que dentro de determinado escopo, todas as alterações feitas em um objeto serão persistidas no banco de dados. Obs: Mesmo conceito Atomicidade se aplica aqui.
Gravando no banco
Gravando no banco
Note que antes de abrirmos uma transação devemos obter uma instância de Realm através da chamada Realm.getDefaultInstance();
Para isso, temos que criar nossa classe que estende Application, e que crie a configuração default do Realm. Abaixo segue exemplo:
Gravando no banco
Gravando no bancoAbaixo alguns exemplos de gravação de objetos no banco.
Realizando consultas
O Realm possui uma API para querys (RealmQuery) bem semântica, e que aplica o conceito de programação fluente. Onde eu vou dando append nos comandos que eu quero realizar. Isso é uma das vantagens em cima de Strings SQL. Ex:
Chega de papo, vamos para o MVP ?
O que é ? Produto mínimo viável.
Para que serve ? Validar seu modelo de negócio, e começar a ter os primeiros feedbacks do mercado.
Obter o aprendizado validado, e seguir o fluxo Construir > Mensurar > Aprender. (Eric Ries - Lean Startup).
Chega de papo, vamos para o MVP ?
O que é ? Produto mínimo viável.
Para que serve ? Validar seu modelo de negócio, e começar a ter os primeiros feedbacks do mercado.
Obter o aprendizado validado, e seguir o fluxo Construir > Mensurar > Aprender. (Eric Ries - Lean Startup).
Tem mais ?Para onde ir ?
Realm
Migrations. https://realm.io/docs/java/latest/#migrations
Transações assíncronas. https://realm.io/docs/java/latest/#asynchronous-transactions
RxJava. https://realm.io/docs/java/latest/#rxjava
Testes. https://realm.io/docs/java/latest/#testing-and-debugging
Parceler. https://realm.io/docs/java/latest/#parceler
Startup e Empreendedorismo
https://cubo.network/eventos
https://www.campus.co/sao-paulo/pt/events
https://oxigenioaceleradora.com.br/eventos/
https://www.amazon.com.br/Startup-Enxuta-Eric-Ries-ebook/dp/B00A3C4GAK
https://startupi.com.br/
https://endeavor.org.br/
Referências
https://realm.io/docs/java/latest/
http://www.thiengo.com.br/persistencia-de-dados-com-realm-no-android-parte-1
https://medium.com/android-dev-br/inicia%C3%A7%C3%A3o-ao-realm-b7624e380194
https://endeavor.org.br/mvp/
Obrigado!https://github.com/Turbiani/
https://goo.gl/pkXEXB’
turbiani@cotabox.com.brwww.cotabox.com.br
Recommended