All Projects → sergiiz → Rxbasicskata

sergiiz / Rxbasicskata

Licence: mit
Practical challenges for RxJava learners

Programming Languages

java
68154 projects - #9 most used programming language

Labels

Projects that are alternatives of or similar to Rxbasicskata

Wanandroid
🔥🔥🔥组件化 + Arouter + Jetpack + Rxjava + Retrofit + AOP等框架
Stars: ✭ 370 (-17.59%)
Mutual labels:  rxjava
Fuel
The easiest HTTP networking library for Kotlin/Android
Stars: ✭ 4,057 (+803.56%)
Mutual labels:  rxjava
Andlinker
AndLinker is a IPC library for Android, which combines the features of AIDL and Retrofit. Allows IPC call seamlessly compose with RxJava and RxJava2 call adapters.
Stars: ✭ 440 (-2%)
Mutual labels:  rxjava
Rxcache
简单一步,缓存搞定。这是一个专用于 RxJava,解决 Android 中对任何 Observable 发出的结果做缓存处理的框架
Stars: ✭ 377 (-16.04%)
Mutual labels:  rxjava
Animewallpaper
[Android] Konachan wallpaper downloader
Stars: ✭ 402 (-10.47%)
Mutual labels:  rxjava
Rxdownload
A multi-threaded download tool written with RxJava and Kotlin
Stars: ✭ 4,035 (+798.66%)
Mutual labels:  rxjava
Rxfingerprint
Android Fingerprint authentication and encryption with RxJava
Stars: ✭ 373 (-16.93%)
Mutual labels:  rxjava
Android Mvvm
MVVM on Android using RxJava and Data Binding
Stars: ✭ 443 (-1.34%)
Mutual labels:  rxjava
Hivemq Mqtt Client
HiveMQ MQTT Client is an MQTT 5.0 and MQTT 3.1.1 compatible and feature-rich high-performance Java client library with different API flavours and backpressure support
Stars: ✭ 402 (-10.47%)
Mutual labels:  rxjava
Rxriddles
Riddling your way to master RxJava
Stars: ✭ 440 (-2%)
Mutual labels:  rxjava
Android Mvp Interactor Architecture
Extension of the android-mvp-architecture for very large projects.
Stars: ✭ 388 (-13.59%)
Mutual labels:  rxjava
Gank.io Unofficial Android Client
An unofficial gank. io android client
Stars: ✭ 394 (-12.25%)
Mutual labels:  rxjava
Weatherapp
5 Day Forecast app that works on Android and uses latest tools (Kotlin, Navigation, Room, LiveData, Databinding, Dagger 2)
Stars: ✭ 426 (-5.12%)
Mutual labels:  rxjava
Firebucket
Glimpse into Firebase, with a simple TODO list app built around Dagger, RxJava 2, Clean architecture and of course, Firebase.
Stars: ✭ 376 (-16.26%)
Mutual labels:  rxjava
Ferro
Simple and powerful MVP library for Android
Stars: ✭ 441 (-1.78%)
Mutual labels:  rxjava
Rxpresso
Easy Espresso UI testing for Android applications using RxJava.
Stars: ✭ 373 (-16.93%)
Mutual labels:  rxjava
Rxbluetooth
Android reactive bluetooth
Stars: ✭ 405 (-9.8%)
Mutual labels:  rxjava
Gank
干货集中营 app 安卓实现,基于 RxFlux 架构使用了 RxJava、Retrofit、Glide、Koin等
Stars: ✭ 444 (-1.11%)
Mutual labels:  rxjava
Roxie
Lightweight Android library for building reactive apps.
Stars: ✭ 441 (-1.78%)
Mutual labels:  rxjava
Rxjava Mvp Giphy
Showcase of RxJava used with MVP and some other popular android libraries
Stars: ✭ 429 (-4.45%)
Mutual labels:  rxjava

Practical challenges for RxJava learners

A set of simple code challenges to learn RxJava using JUnit tests as an acceptance criteria. Focused on some basic concepts and doesn't cover any Android topics yet.

"Solved" branch

Current implementation

Dependencies:

  • RxJava 2.1.7 
  • JUnit 4.12

Reactive types covered:

  • Observable: the heart of Rx, a class that emits a stream of data or events
  • Single : a version of an Observable that emits a single item or fails
  • Maybe: lazy emission pattern, can emit 1 or 0 items or an error signal

Operators covered:

  • map: transforms the items by applying a function to each item
  • flatMap: takes the emissions of one Observable and returns merged emissions in another Observable to take its place
  • filter: emits only those items from that pass a criteria (predicate test)
  • skip/take: suppress or takes the first n items 
  • all: determines whether all items meet some criteria
  • reduce: applies a function to each item sequentially, and emit the final value. For example, it can be used to sum up all emitted items
  • toMap: converts an Observable into another object or data structure
  • merge: combine multiple Observables into one by merging their emissions
  • sequenceEqual: determine whether two Observables emit the same sequence of items
  • test: returns TestObserver with current Observable subscribed
  • timeout: to handle timeouts, e.g. deliver some fallback data

Testing approach:

  • The set of test cases are defined in a separate java file
  • As a “receiver” of emitted test events we use TestObserver. It records events and allows to make assertions about them
  • All tests are failing when you just took them from the repo. This is expected behaviour. You should make tests pass by implementing the logic in CountriesServiceSolved class

Blog post

See my blog post at Medium for more details: https://proandroiddev.com/practical-challenges-for-rxjava-learners-1821c454de9.

Contribution

Pull requests and new code challenges are really welcome.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].