Skip to content

Commit b2b51f0

Browse files
author
Kaushik Gopal
committed
feat: add another usecase where RxJava kicks butt
1 parent 9159200 commit b2b51f0

File tree

1 file changed

+25
-5
lines changed

1 file changed

+25
-5
lines changed

README.md

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,31 +16,51 @@ The long operation is simulated by a blocking Thread.sleep call. But since it's
1616
To really see this shine. Hit the button multiple times and see how the button click which is a ui operation is never blocked because the long operation only runs in the background
1717

1818

19-
### 2. Accumulate calls using buffer (wip)
19+
### 2. Accumulate calls using buffer
2020

2121
This is a demo of how events can be accumulated using the "buffer" operation.
2222

2323
A button is provided and we accumulate the number of clicks on that button, over a span of time and then spit out the final results.
2424

2525
If you hit the button once. you'll get message saying the button was hit once. If you hit it 5 times continuosly within a span of 2 seconds, then you get a single log, saying you hit that button 5 times (vs 5 individual logs saying Button hit once).
2626

27+
Two implementations:
28+
29+
2a. Using a traditional observable - but encompassing the OnClick within the observable
30+
2b. Using PublishSubject and sending single clicks to the Observable, which inturn then sends it to the Observer
31+
32+
2733
### 3. Instant/Auto searching (using a subject and debounce)
2834

2935
This is a demo of how events can be swallowed in a way that only the last one is respected. A typical example of this is instant search result boxes. As you type the word "Bruce Lee", you don't want to execute searches for B, Br, Bru, Bruce, Bruce , Bruce L ... etc. But rather intelligently wait for a couple of moments, make sure the user has finished typing the whole word, and then shoot out a single call for "Bruce Lee".
3036

3137
As you type in the input box, it will not shoot out log messages at every single input character change, but rather only pick the lastly emitted event (i.e. input) and log that. \n\nThis is the debounce/throttleWithTimeout method in RxJava.
3238

33-
### 4. Working examples of github from JakeWharton's Retrofit preso at Netflix (wip)
3439

35-
https://www.youtube.com/watch?v=aEuNBk1b5OE#t=2480
36-
https://speakerdeck.com/jakewharton/2014-1
40+
### 4. Orchestrating Observables (flatmap + zip) (wip)
41+
42+
If actions A and B depend on action X running; and action C depends on action Y running. What if you want to combine the result of all those calls and have a single output?
43+
44+
____________ A ________________
45+
(flatmap) / | (zip)
46+
X ------------/_____________ B ________________| ----------- > Ouput
47+
|
48+
Y ------------------------- C ________________|
49+
3750

3851

3952
### 5. Pagination (zip) (wip)
4053

4154
a. Simple pagination
4255
b. Optimized pagination
4356

44-
### 6. Replacing your event Bus (wip)
57+
58+
### 6. Working examples of github from JakeWharton's Retrofit preso at Netflix (wip)
59+
60+
https://www.youtube.com/watch?v=aEuNBk1b5OE#t=2480
61+
https://speakerdeck.com/jakewharton/2014-1
62+
63+
64+
### 7. Replacing your event Bus (wip)
4565

4666
http://stackoverflow.com/questions/19266834/rxjava-and-random-sporadic-events-on-android

0 commit comments

Comments
 (0)