Rxify
Now: RxJava Playground, Previous: Demo for the talk at DroidconIN 2016, Droidcon Boston 2017 and Codelab for GDG January Meetup
Install / Use
/learn @ragdroid/RxifyREADME
Rxify
Started with a simple demo for the talk at droidconIN 2016, Banglore. Added more examples from GDG New Delhi Meetup. Will keep adding more demos and new things here :)
- For more information, checkout multi-part
Rxifyblog series on medium. - For the video of this talk click here
- For the slides click here
- Slides for the Codelab can be found here
Project Structure
This project :
- Uses RxJava2 for the demos.
- Follows the
MVParchitecture inspired by repository. - Makes use of
Dagger2 - Uses Butterknife
- Uses
TestSchedulerfor writing tests.
Zip-yosa (ZipActivity)
Perform API calls asynchronously and wait for the result of both the calls to combine the result. For more information, checkout this article.
-
We are waiting for
FluxWeedAPI call. -
We are also waiting for
StudentAPI call to get hair of Crab. -
Both the calls executing asynchronously.
-
Problem :
- Initialise
PolyJuicefrom the results of API calls. - Hide the loader after both calls have completed.
Here's the demo :

- Initialise
Preserving Order in AutoComplete-Search (LibraryActivity)
Depicting the problem of Ordering the results in Auto-Search and solving it using concatMap(). For more information, checkout this article
- Perform Auto-Complete Search using
flatMap()- results in unordered results - Toggle state to fix it using
concatMap() - used
BookDataSourceand callinggetBooks(query)on the data source return the results after a delay which is inversely proportional to the length of query string. - this is done to depict the ordering problem - used the open-source library used at my current company Fueled - reclaim which extracts the boiler plate for creation of recyclerview adapter, implementation of MVP for listview items.
Using flatMap() - Order is not maintained.

Using concatMap() - Order is maintained.

Ordering problem is fixed, but we shouldn't be updating the list this frequently.
switchMap() will improve the results even further :
Using switchMap() - Order is maintained.

Code-lab
This is the code-lab I conducted at the GDG New Delhi January meetup. SpeakerDeck for this is available here. Completed examples for all the operators are also available on the master branch. For in-detail commit-by-commit codelab. Refer to the codelab branch.
Pre-requisites :
- Android Studio IDE
git- Lots of excitement.
Let's Get Started
- Switch to branch
codelab. - Checkout at the starting commit : SHA -
d5db64950f1616c308bb8174bb8dc01ab69971e8. - List of all the commits is here.
- Open
ChillActivityand switch to the desired presenter. - Let's Get Started!! Following Excercises are available :
Section 1 - Basic Spells :
EmptyPresenterErrorPresenterFromPresenterIntervalPresenterIntervalRangePresenterJustPresenterNeverPresenterRangePresenterTimerPresenter
Section 2 - To-Do Section :
AssignmentPresenterBattleFlowPresenterBattlePresenterDistinctPresenterFilterPresenterFlatMapPresenterMapPresenterReducePresenterSkipPresenterTakePresenterTakeUntilPresenter
Section 3 - Threading :
Section 4 - Testing :
TO-DO
- Implement more demos.
Related Skills
node-connect
340.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
84.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
340.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
84.2kCommit, push, and open a PR
