Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Caching data in a connected world - VADG
Search
Iván Martín
March 23, 2017
Programming
0
120
Caching data in a connected world - VADG
Iván Martín
March 23, 2017
Tweet
Share
Other Decks in Programming
See All in Programming
OpenAPI 3.1 and Spring-Boot 3 What's New?
bnasslahsen
0
170
RubyKaigiのウラガワ/Uragawa of RubyKaigi from a helper
kota_syan
0
5.7k
実践AI/ML ~よくあるユースケースとレコメンデーションの効果的な活用戦略~
cmnakamurashogo
0
270
Implementing Domain Driven Design with Spring
maciejwalkowiak
2
1k
ruby.wasm 最前線 2024 - wasmでMockServerをつくる #rubykaigi
lnit
2
420
ABEMA 画像配信基盤における Cloudflare Workers の活用
peaceiris
3
170
1BRC – Nerd Sniping the Java Community (Keynote JCon Slovenia)
gunnarmorling
1
150
「ソフトウェア設計」のドメイン - 「データモデリングでドメインを駆動する」を読んで
hidenorigoto
7
2.2k
A Sighting of filterA in Typelevel Rite of Passage
philipschwarz
PRO
0
160
Datadogのグラフにデプロイタイミングを表示する / deploy timing on datadog graph
sheepland
1
230
Goでリフレクションする、その前に / Kansai.go #1
utgwkk
5
680
Project Loom 概要と Scala における有用性 @ ScalaMatsuri2024
th0rikosh1
0
250
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
331
56k
Rebuilding a faster, lazier Slack
samanthasiow
74
8.3k
What's new in Ruby 2.0
geeforr
338
31k
Building an army of robots
kneath
300
42k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
275
13k
The Invisible Side of Design
smashingmag
294
50k
jQuery: Nuts, Bolts and Bling
dougneiner
60
7.2k
Code Reviewing Like a Champion
maltzj
516
39k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
10
1.4k
Music & Morning Musume
bryan
42
5.7k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
23
1.5k
Reflections from 52 weeks, 52 projects
jeffersonlam
345
19k
Transcript
Caching data in a connected world Iván José Martín García
Github: seik Twitter: @seikv
Problema
Problema
Problema
Problema Vivimos en un mundo conectado.
Dependencias
RxJava
<Observable> •Clase principal en la programación reactiva. • Trabaja sobre
un “flujo de datos”. • .subscribeOn() • .observeOn() • Transformaciones.
Realm • Persistir datos de una forma simple. • Muy
fácil de implementar/mantener. • Rápido, muy rápido.
Realm A tener en cuenta
Realm Evaluación perezosa.
Realm Not thread safe.
Realm Object (Necesarios getters y setters)
Guardar datos 1. Obtenemos una instancia de Realm 2. Ejecutamos
una transacción donde guardamos nuestros datos. 3. Cerramos la instancia de realm si no la vamos a usar más.
Obtener datos 1. Obtenemos una instancia de Realm 2. Ejecutamos
una query. 3. Cerramos la instancia de realm si no la vamos a usar más.
Remote API Representación Local Repository
Local 1. Query. 2. Devolvemos el usuario como observable, si
no existe devolvemos un observable vacío.
Remote Llamamos al servicio y por cada item ejecutamos nuestra
función de guardado.
Repository 1. Nos suscribimos en el main thread. 2. Observamos
los cambios en el main thread.
Repository 1. Nos suscribimos en background. 2. Observamos los cambios
en el main thread.
Repository Concatenamos ambos Observables
Representación Manejamos los datos y mostramos un aviso si no
se ha podido mostrar información actualizada.
Representación Nos desuscribimos.
Demo
Demo
Demo https://github.com/Seik/vadg-caching-data
¡Muchas gracias!