/RxLab

learn RxJava in new way!

Primary LanguageKotlinApache License 2.0Apache-2.0

RxLab

amazing tool to learn ReactiveX Programming with animation, schedulers and time project on GitHub.

this is an open source Android application written in Kotlin to let you understand how ReactiveX Programming works, this app will show you the real behavior of Reactive Programming depending on time and threads, with snippets of code written in RxJava 3.0.6.

for example, just operation:

download app on Google Play:
SpeedView Demo on Google Play

CPU with 4 cores at least is recommended, and screen with large width.

You can read all instructions in this story on Medium.

do you want to know how scan operation works?

or you may don't know the difference between flatMap and concatMap?

and more...

Description

this is small description for emit:

  1. emit color points to the observable that coming from.
  2. value.
  3. the color points to the current thread.
    • main thread.
    • computation thread.
    • io thread.
    • single thread.
    • other.
  4. thread index that in use.

takeTime(emit) you will see this method in code, simply it will take random time to simulate a long operation, then it will return the emit.

Operators

this app covered this operators:

  • buffer
  • combineLatest
  • concatMap
  • contains
  • create
  • distinct
  • distinctUntilChanged
  • elementAt
  • filter
  • flatMap
  • fromArray
  • fromIterable
  • interval
  • just
  • map
  • merge
  • range
  • reduce
  • scan
  • skip
  • sorted
  • switchMap
  • take
  • takeLast
  • throttleFirst
  • throttleLast
  • throttleWithTimeout
  • toList
  • zip

and more coming soon..

Libraries used in this app

LICENSE


Copyright 2020 Anas Altair

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.