From 5e156ae216e3b3fc8d406d7aa75ad0b71a0e173a Mon Sep 17 00:00:00 2001 From: amitshekhar Date: Sat, 21 Sep 2019 09:03:36 +0530 Subject: [PATCH 01/18] Add onErrroReturn --- .../samples/ui/pagination/PaginationActivity.java | 11 +++++++---- .../android/samples/ui/search/SearchActivity.java | 10 ++++++++-- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/rxjava2/android/samples/ui/pagination/PaginationActivity.java b/app/src/main/java/com/rxjava2/android/samples/ui/pagination/PaginationActivity.java index 202be46..e9c89a9 100644 --- a/app/src/main/java/com/rxjava2/android/samples/ui/pagination/PaginationActivity.java +++ b/app/src/main/java/com/rxjava2/android/samples/ui/pagination/PaginationActivity.java @@ -4,15 +4,16 @@ import android.view.View; import android.widget.ProgressBar; +import androidx.appcompat.app.AppCompatActivity; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + import com.rxjava2.android.samples.R; import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; -import androidx.appcompat.app.AppCompatActivity; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; import io.reactivex.Single; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.CompositeDisposable; @@ -98,7 +99,9 @@ private void subscribeForData() { .subscribeOn(Schedulers.io()) .doOnError(throwable -> { // handle error - })) + }) + // continue emission in case of error also + .onErrorReturn(throwable -> new ArrayList<>())) .observeOn(AndroidSchedulers.mainThread()) .subscribe(items -> { paginationAdapter.addItems(items); diff --git a/app/src/main/java/com/rxjava2/android/samples/ui/search/SearchActivity.java b/app/src/main/java/com/rxjava2/android/samples/ui/search/SearchActivity.java index 9086b01..d9353c9 100644 --- a/app/src/main/java/com/rxjava2/android/samples/ui/search/SearchActivity.java +++ b/app/src/main/java/com/rxjava2/android/samples/ui/search/SearchActivity.java @@ -4,11 +4,12 @@ import android.widget.SearchView; import android.widget.TextView; +import androidx.appcompat.app.AppCompatActivity; + import com.rxjava2.android.samples.R; import java.util.concurrent.TimeUnit; -import androidx.appcompat.app.AppCompatActivity; import io.reactivex.Observable; import io.reactivex.ObservableSource; import io.reactivex.android.schedulers.AndroidSchedulers; @@ -56,7 +57,12 @@ public boolean test(String text) { .switchMap(new Function>() { @Override public ObservableSource apply(String query) { - return dataFromNetwork(query); + return dataFromNetwork(query) + .doOnError(throwable -> { + // handle error + }) + // continue emission in case of error also + .onErrorReturn(throwable -> ""); } }) .subscribeOn(Schedulers.io()) From c91b115648b9ff08b9d6441a03c4d2f511ca09de Mon Sep 17 00:00:00 2001 From: AMIT SHEKHAR Date: Tue, 12 Nov 2019 22:14:31 +0530 Subject: [PATCH 02/18] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e50cf72..d31d263 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ ## How to use RxJava 2 in Android Application ## How to migrate from RxJava 1.0 to RxJava 2.0 +## How to use RxJava 3 in Android Application [Check here](https://github.com/MindorksOpenSource/RxJava3-Android-Examples) ### This project is for : * who is migrating to RxJava 2 @@ -82,7 +83,7 @@ RxJava1 -> RxJava2 * `Concat` -> emit the emissions from two or more Observables without interleaving them * `Replay` -> ensure that all observers see the same sequence of emitted items, even if they subscribe after the Observable has begun emitting items * `Merge` -> combine multiple Observables into one by merging their emissions -* `SwitchMap` -> ransform the items emitted by an Observable into Observables, and mirror those items emitted by the most-recently transformed Observable +* `SwitchMap` -> transform the items emitted by an Observable into Observables, and mirror those items emitted by the most-recently transformed Observable # Highlights of the examples : From 001db6767810f3c7958129cbad5c74b813a5b1dd Mon Sep 17 00:00:00 2001 From: AMIT SHEKHAR Date: Thu, 26 Mar 2020 19:22:40 +0530 Subject: [PATCH 03/18] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index d31d263..99fa4e4 100644 --- a/README.md +++ b/README.md @@ -131,6 +131,10 @@ RxJava1 -> RxJava2 ### Another awesome library for debugging databases and shared preferences. * [Android Debug Database](https://github.com/amitshekhariitbhu/Android-Debug-Database) + +### Learn to build a ride-sharing Android app like Uber, Lyft. +* [Check here](https://github.com/MindorksOpenSource/ridesharing-uber-lyft-app) + ### [Check out Mindorks awesome open source projects here](https://mindorks.com/open-source-projects) ### Contact - Let's become friend From b5503dea6796bfd4792706fd8e070c64564311c8 Mon Sep 17 00:00:00 2001 From: AMIT SHEKHAR Date: Mon, 20 Apr 2020 23:20:23 +0530 Subject: [PATCH 04/18] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 99fa4e4..8cc71ad 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ ## How to use RxJava 2 in Android Application ## How to migrate from RxJava 1.0 to RxJava 2.0 ## How to use RxJava 3 in Android Application [Check here](https://github.com/MindorksOpenSource/RxJava3-Android-Examples) +## Kotlin-Coroutines-Android-Examples - [Check here](https://github.com/MindorksOpenSource/Kotlin-Coroutines-Android-Examples) ### This project is for : * who is migrating to RxJava 2 From 30ef1de9b23f8e277b4e48afe2606239f845bd6e Mon Sep 17 00:00:00 2001 From: anandgaurav10 Date: Sat, 28 May 2022 17:14:27 +0530 Subject: [PATCH 05/18] Add .github --- .github/FUNDING.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..cd443a1 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,13 @@ +# These are supported funding model platforms + +github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] From 49e3dcdfaed070e43a4386f0d2a765c93bc7486c Mon Sep 17 00:00:00 2001 From: AMIT SHEKHAR Date: Sun, 4 Sep 2022 11:04:46 +0530 Subject: [PATCH 06/18] Update .github --- .github/FUNDING.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index cd443a1..25c1f0e 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,6 +1,6 @@ # These are supported funding model platforms -github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +github: [amitshekhariitbhu] patreon: # Replace with a single Patreon username open_collective: # Replace with a single Open Collective username ko_fi: # Replace with a single Ko-fi username From 700d3b4e39a5cdfb7af459d801be67503aa333dc Mon Sep 17 00:00:00 2001 From: AMIT SHEKHAR Date: Fri, 16 Sep 2022 14:23:10 +0530 Subject: [PATCH 07/18] Update README.md --- README.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 8cc71ad..c8565e6 100644 --- a/README.md +++ b/README.md @@ -8,17 +8,16 @@ [![Open Source Love](https://badges.frapsoft.com/os/v1/open-source.svg?v=102)](https://opensource.org/licenses/Apache-2.0) [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/LICENSE) -### [Take the MindOrks Android Online Course and Learn RxJava](https://bootcamp.mindorks.com) -## How to use RxJava 2 in Android Application -## How to migrate from RxJava 1.0 to RxJava 2.0 -## How to use RxJava 3 in Android Application [Check here](https://github.com/MindorksOpenSource/RxJava3-Android-Examples) -## Kotlin-Coroutines-Android-Examples - [Check here](https://github.com/MindorksOpenSource/Kotlin-Coroutines-Android-Examples) +### How to use RxJava 2 in Android Application +### How to migrate from RxJava 1.0 to RxJava 2.0 ### This project is for : * who is migrating to RxJava 2 * or just started with RxJava. +## [My Personal Blog - amitshekhar.me](https://amitshekhar.me/blog) - High-quality content to learn Android concepts. + ### Just Build the project and start learning RxJava by examples. RxJava 2.0 has been completely rewritten from scratch on top of the Reactive-Streams specification. The specification itself has evolved out of RxJava 1.x and provides a common baseline for reactive systems and libraries. From 1cb52efcf8f381eb3b976e2ea388e38fa0b72dd6 Mon Sep 17 00:00:00 2001 From: AMIT SHEKHAR Date: Mon, 3 Oct 2022 11:18:32 +0530 Subject: [PATCH 08/18] Update README.md --- README.md | 162 ------------------------------------------------------ 1 file changed, 162 deletions(-) diff --git a/README.md b/README.md index c8565e6..1995538 100644 --- a/README.md +++ b/README.md @@ -1,167 +1,5 @@ -# Learning RxJava 2 for Android by example -[![Mindorks](https://img.shields.io/badge/mindorks-opensource-blue.svg)](https://mindorks.com/open-source-projects) -[![Mindorks Community](https://img.shields.io/badge/join-community-blue.svg)](https://mindorks.com/join-community) -[![Mindorks Android Store](https://img.shields.io/badge/Mindorks%20Android%20Store-RxJava2%20Android%20Samples-blue.svg?style=flat)](https://mindorks.com/android/store) -[![Open Source Love](https://badges.frapsoft.com/os/v1/open-source.svg?v=102)](https://opensource.org/licenses/Apache-2.0) -[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/LICENSE) - - -### How to use RxJava 2 in Android Application -### How to migrate from RxJava 1.0 to RxJava 2.0 - -### This project is for : -* who is migrating to RxJava 2 -* or just started with RxJava. - -## [My Personal Blog - amitshekhar.me](https://amitshekhar.me/blog) - High-quality content to learn Android concepts. - -### Just Build the project and start learning RxJava by examples. - -RxJava 2.0 has been completely rewritten from scratch on top of the Reactive-Streams specification. The specification itself has evolved out of RxJava 1.x and provides a common baseline for reactive systems and libraries. - -Because Reactive-Streams has a different architecture, it mandates changes to some well known RxJava types. - - -# Migration From RxJava 1.0 to RxJava 2.0 - -To allow having RxJava 1 and RxJava 2 side-by-side, RxJava 2 is under the maven coordinates -io.reactivex.rxjava2:rxjava:2.x.y and classes are accessible below io.reactivex. - -Users switching from 1.x to 2.x have to re-organize their imports, but carefully. - -### Using RxJava 2.0 Library in your application - -Add this in your build.gradle -```groovy -compile 'io.reactivex.rxjava2:rxjava:2.2.2' -``` -If you are using RxAndroid also, then add the following -```groovy -compile 'io.reactivex.rxjava2:rxandroid:2.1.0' -``` - -# RxJava 2 Examples present in this sample project - -* RxJava 2.0 Example using `CompositeDisposable` as `CompositeSubscription` and `Subscription` have -been removed. - -* RxJava 2 Example using `Flowable`. - -* RxJava 2 Example using `SingleObserver`, `CompletableObserver`. - -* RxJava 2 Example using RxJava2 operators such as `map, zip, take, reduce, flatMap, filter, buffer, skip, merge, concat, replay`, and much more: - -* RxJava 2 Android Samples using `Function` as `Func1` has been removed. - -* RxJava 2 Android Samples using `BiFunction` as `Func2` has been removed. - -* And many others android examples - -# Quick Look on few changes done in RxJava2 over RxJava1 - -RxJava1 -> RxJava2 - -* `onCompleted` -> `onComplete` - without the trailing d -* `Func1` -> `Function` -* `Func2` -> `BiFunction` -* `CompositeSubscription` -> `CompositeDisposable` -* `limit` operator has been removed - Use `take` in RxJava2 -* and much more. - -# Operators : -* `Map` -> transform the items emitted by an Observable by applying a function to each item -* `Zip` -> combine the emissions of multiple Observables together via a specified function and emit single items for each combination based on the results of this function -* `Filter` -> emit only those items from an Observable that pass a predicate test -* `FlatMap` -> transform the items emitted by an Observable into Observables, then flatten the emissions from those into a single Observable -* `Take` -> emit only the first n items emitted by an Observable -* `Reduce` -> apply a function to each item emitted by an Observable, sequentially, and emit the final value -* `Skip` -> suppress the first n items emitted by an Observable -* `Buffer` -> periodically gather items emitted by an Observable into bundles and emit these bundles rather than emitting the items one at a time -* `Concat` -> emit the emissions from two or more Observables without interleaving them -* `Replay` -> ensure that all observers see the same sequence of emitted items, even if they subscribe after the Observable has begun emitting items -* `Merge` -> combine multiple Observables into one by merging their emissions -* `SwitchMap` -> transform the items emitted by an Observable into Observables, and mirror those items emitted by the most-recently transformed Observable - - -# Highlights of the examples : - -* [DisposableExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/DisposableExampleActivity.java) - Using `CompositeDisposable` -* [FlowableExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/FlowableExampleActivity.java) - Using `Flowable` and `reduce` operator -* [SingleObserverExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/SingleObserverExampleActivity.java) - Using `SingleObserver` -* [CompletableObserverActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/CompletableObserverExampleActivity.java) - Using `CompletableObserver` -* [MapExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/MapExampleActivity.java) - Using `map` Operator -* [ZipExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/ZipExampleActivity.java) - Using `zip` Operator, [Blog for reference](https://blog.mindorks.com/understanding-rxjava-zip-operator-with-example) -* [BufferExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/BufferExampleActivity.java) - Using `buffer` Operator -* [TakeExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/TakeExampleActivity.java) - Using `take` Operator -* [ReduceExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/ReduceExampleActivity.java) - Using `reduce` Operator -* [FilterExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/FilterExampleActivity.java) - Using `filter` Operator -* [SkipExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/SkipExampleActivity.java) - Using `skip` Operator -* [ReplayExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/ReplayExampleActivity.java) - Using `replay` Operator -* [ConcatExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/ConcatExampleActivity.java) - Using `concat` Operator -* [MergeExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/MergeExampleActivity.java) - Using `merge` Operator -* [DeferExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/DeferExampleActivity.java) - Using `defer` Observable -* [SwitchMapExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/SwitchMapExampleActivity.java) - Using `switchMap` Observable -* [IntervalExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/IntervalExampleActivity.java) - Using `Interval` -* [RxBusActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/rxbus/RxBusActivity.java) - RxBus, RxJava2Bus, EventBus, RxEventBus, [Blog for reference](https://blog.mindorks.com/implementing-eventbus-with-rxjava-rxbus-e6c940a94bd8) -* [PaginationActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/pagination/PaginationActivity.java) - Pagination for loadMore in RecyclerView -* [ComposeOperatorExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/compose/ComposeOperatorExampleActivity.java) - Compose operator for reusable -* [Search Implementation](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/search/SearchActivity.java) - Using `debounce`, `switchMap`, `distinctUntilChanged`, [Blog for reference](https://blog.mindorks.com/implement-search-using-rxjava-operators-c8882b64fe1d) -* [Implement Caching Using RxJava Operators](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/cache/CacheExampleActivity.java) - Using `concat`, `firstElement`, [Blog for reference](https://blog.mindorks.com/implement-caching-in-android-using-rxjava-operators) -* [PublishSubjectExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/PublishSubjectExampleActivity.java) - -### TODO - -* Many examples are to be added - -### Find this project useful ? :heart: -* Support it by clicking the :star: button on the upper right of this page. :v: - -### Check out an awesome MVP architecture based project which uses RxJava2, Dagger2. -* [Android-MVP-Architecture](https://github.com/MindorksOpenSource/android-mvp-architecture) - -### Check out an awesome Kotlin MVP architecture based project which uses RxJava2, Dagger2. -* [Android-Kotlin-MVP-Architecture](https://github.com/MindorksOpenSource/android-kotlin-mvp-architecture) - -### Check out an awesome library for fast and simple networking in Android. -* [Fast Android Networking Library](https://github.com/amitshekhariitbhu/Fast-Android-Networking) - -### Another awesome library for debugging databases and shared preferences. -* [Android Debug Database](https://github.com/amitshekhariitbhu/Android-Debug-Database) - - -### Learn to build a ride-sharing Android app like Uber, Lyft. -* [Check here](https://github.com/MindorksOpenSource/ridesharing-uber-lyft-app) - -### [Check out Mindorks awesome open source projects here](https://mindorks.com/open-source-projects) - -### Contact - Let's become friend -- [Twitter](https://twitter.com/amitiitbhu) -- [Github](https://github.com/amitshekhariitbhu) -- [Medium](https://medium.com/@amitshekhar) -- [Facebook](https://www.facebook.com/amit.shekhar.iitbhu) - -### License -``` - Copyright (C) 2016 Amit Shekhar - Copyright (C) 2011 Android Open Source Project - - 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. -``` - -### Contributing to RxJava 2 Android Samples -Just make pull request. You are in! From 21f6e7f465544b229f8bc44200c5da52b68b81c0 Mon Sep 17 00:00:00 2001 From: AMIT SHEKHAR Date: Mon, 3 Oct 2022 11:23:51 +0530 Subject: [PATCH 09/18] Update README.md --- README.md | 98 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) diff --git a/README.md b/README.md index 1995538..79aff5f 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,103 @@ +# Learning RxJava 2 for Android by example +### This project is for : +* who is migrating to RxJava 2 +* or just started with RxJava. +## [My Personal Blog - amitshekhar.me](https://amitshekhar.me/blog) - High-quality content to learn Android concepts. + +### Just Build the project and start learning RxJava by examples. + +RxJava 2.0 has been completely rewritten from scratch on top of the Reactive-Streams specification. The specification itself has evolved out of RxJava 1.x and provides a common baseline for reactive systems and libraries. + +### Using RxJava 2.0 Library in your application + +Add this in your build.gradle +```groovy +compile 'io.reactivex.rxjava2:rxjava:X.X.X' +``` +If you are using RxAndroid also, then add the following +```groovy +compile 'io.reactivex.rxjava2:rxandroid:X.X.X' +``` + +# RxJava 2 Operators Examples present in this sample project: + +* `Map` -> transform the items emitted by an Observable by applying a function to each item +* `Zip` -> combine the emissions of multiple Observables together via a specified function and emit single items for each combination based on the results of this function +* `Filter` -> emit only those items from an Observable that pass a predicate test +* `FlatMap` -> transform the items emitted by an Observable into Observables, then flatten the emissions from those into a single Observable +* `Take` -> emit only the first n items emitted by an Observable. [Blog for reference](https://amitshekhar.me/blog/rxjava-interval-operator) +* `Reduce` -> apply a function to each item emitted by an Observable, sequentially, and emit the final value +* `Skip` -> suppress the first n items emitted by an Observable +* `Buffer` -> periodically gather items emitted by an Observable into bundles and emit these bundles rather than emitting the items one at a time +* `Concat` -> emit the emissions from two or more Observables without interleaving them +* `Replay` -> ensure that all observers see the same sequence of emitted items, even if they subscribe after the Observable has begun emitting items +* `Merge` -> combine multiple Observables into one by merging their emissions +* `SwitchMap` -> transform the items emitted by an Observable into Observables, and mirror those items emitted by the most-recently transformed Observable + + +# Highlights of the examples : + +* [DisposableExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/DisposableExampleActivity.java) - Using `CompositeDisposable` +* [FlowableExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/FlowableExampleActivity.java) - Using `Flowable` and `reduce` operator +* [SingleObserverExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/SingleObserverExampleActivity.java) - Using `SingleObserver` +* [CompletableObserverActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/CompletableObserverExampleActivity.java) - Using `CompletableObserver` +* [MapExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/MapExampleActivity.java) - Using `map` Operator +* [ZipExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/ZipExampleActivity.java) - Using `zip` Operator +* [BufferExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/BufferExampleActivity.java) - Using `buffer` Operator +* [TakeExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/TakeExampleActivity.java) - Using `take` Operator. [Blog for reference](https://amitshekhar.me/blog/rxjava-interval-operator) +* [ReduceExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/ReduceExampleActivity.java) - Using `reduce` Operator +* [FilterExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/FilterExampleActivity.java) - Using `filter` Operator +* [SkipExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/SkipExampleActivity.java) - Using `skip` Operator +* [ReplayExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/ReplayExampleActivity.java) - Using `replay` Operator +* [ConcatExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/ConcatExampleActivity.java) - Using `concat` Operator +* [MergeExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/MergeExampleActivity.java) - Using `merge` Operator +* [DeferExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/DeferExampleActivity.java) - Using `defer` Observable +* [SwitchMapExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/SwitchMapExampleActivity.java) - Using `switchMap` Observable +* [IntervalExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/IntervalExampleActivity.java) - Using `Interval`. [Blog for reference](https://amitshekhar.me/blog/rxjava-interval-operator) +* [RxBusActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/rxbus/RxBusActivity.java) - RxBus, RxJava2Bus, EventBus, RxEventBus +* [PaginationActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/pagination/PaginationActivity.java) - Pagination for loadMore in RecyclerView +* [ComposeOperatorExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/compose/ComposeOperatorExampleActivity.java) - Compose operator for reusable +* [Search Implementation](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/search/SearchActivity.java) - Using `debounce`, `switchMap`, `distinctUntilChanged` +* [Implement Caching Using RxJava Operators](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/cache/CacheExampleActivity.java) - Using `concat`, `firstElement` +* [PublishSubjectExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/PublishSubjectExampleActivity.java) + +### Find this project useful ? :heart: +* Support it by clicking the :star: button on the upper right of this page. :v: + +Thanks + +[**Amit Shekhar**](https://amitshekhar.me) + +You can connect with me on: + +- [Twitter](https://twitter.com/amitiitbhu) +- [LinkedIn](https://www.linkedin.com/in/amit-shekhar-iitbhu) +- [GitHub](https://github.com/amitshekhariitbhu) +- [Facebook](https://www.facebook.com/amit.shekhar.iitbhu) + +[**Read all of my blogs here.**](https://amitshekhar.me/blog) + +### License +``` + Copyright (C) 2022 Amit Shekhar + + 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. +``` + +### Contributing to RxJava 2 Android Samples +Just make pull request. You are in! From 3652b494c249157a4da875846352ecc2d9177f28 Mon Sep 17 00:00:00 2001 From: AMIT SHEKHAR Date: Mon, 3 Oct 2022 13:57:09 +0530 Subject: [PATCH 10/18] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 79aff5f..a31c1ec 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ compile 'io.reactivex.rxjava2:rxandroid:X.X.X' # Highlights of the examples : -* [DisposableExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/DisposableExampleActivity.java) - Using `CompositeDisposable` +* [DisposableExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/DisposableExampleActivity.java) - Using `CompositeDisposable`. [Blog for reference](https://amitshekhar.me/blog/dispose-vs-clear-compositedisposable-rxjava) * [FlowableExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/FlowableExampleActivity.java) - Using `Flowable` and `reduce` operator * [SingleObserverExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/SingleObserverExampleActivity.java) - Using `SingleObserver` * [CompletableObserverActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/CompletableObserverExampleActivity.java) - Using `CompletableObserver` From 05a5123c8ae5ca49bc26be8949cabc8c30e328e0 Mon Sep 17 00:00:00 2001 From: AMIT SHEKHAR Date: Tue, 4 Oct 2022 18:44:23 +0530 Subject: [PATCH 11/18] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a31c1ec..500d726 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ compile 'io.reactivex.rxjava2:rxandroid:X.X.X' * `Reduce` -> apply a function to each item emitted by an Observable, sequentially, and emit the final value * `Skip` -> suppress the first n items emitted by an Observable * `Buffer` -> periodically gather items emitted by an Observable into bundles and emit these bundles rather than emitting the items one at a time -* `Concat` -> emit the emissions from two or more Observables without interleaving them +* `Concat` -> emit the emissions from two or more Observables without interleaving them. [Blog for reference](https://amitshekhar.me/blog/rxjava-concat-operator) * `Replay` -> ensure that all observers see the same sequence of emitted items, even if they subscribe after the Observable has begun emitting items * `Merge` -> combine multiple Observables into one by merging their emissions * `SwitchMap` -> transform the items emitted by an Observable into Observables, and mirror those items emitted by the most-recently transformed Observable @@ -53,7 +53,7 @@ compile 'io.reactivex.rxjava2:rxandroid:X.X.X' * [FilterExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/FilterExampleActivity.java) - Using `filter` Operator * [SkipExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/SkipExampleActivity.java) - Using `skip` Operator * [ReplayExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/ReplayExampleActivity.java) - Using `replay` Operator -* [ConcatExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/ConcatExampleActivity.java) - Using `concat` Operator +* [ConcatExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/ConcatExampleActivity.java) - Using `concat` Operator. [Blog for reference](https://amitshekhar.me/blog/rxjava-concat-operator) * [MergeExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/MergeExampleActivity.java) - Using `merge` Operator * [DeferExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/DeferExampleActivity.java) - Using `defer` Observable * [SwitchMapExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/SwitchMapExampleActivity.java) - Using `switchMap` Observable From 60994e428577e8a4aef3bc445a120dda8c2dc2df Mon Sep 17 00:00:00 2001 From: AMIT SHEKHAR Date: Tue, 11 Oct 2022 11:49:53 +0530 Subject: [PATCH 12/18] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 500d726..c30894d 100644 --- a/README.md +++ b/README.md @@ -25,10 +25,10 @@ compile 'io.reactivex.rxjava2:rxandroid:X.X.X' # RxJava 2 Operators Examples present in this sample project: -* `Map` -> transform the items emitted by an Observable by applying a function to each item +* `Map` -> transform the items emitted by an Observable by applying a function to each item. Blog: [RxJava Operator Map vs FlatMap](https://amitshekhar.me/blog/rxjava-map-vs-flatmap) * `Zip` -> combine the emissions of multiple Observables together via a specified function and emit single items for each combination based on the results of this function * `Filter` -> emit only those items from an Observable that pass a predicate test -* `FlatMap` -> transform the items emitted by an Observable into Observables, then flatten the emissions from those into a single Observable +* `FlatMap` -> transform the items emitted by an Observable into Observables, then flatten the emissions from those into a single Observable. Blog: [RxJava Operator Map vs FlatMap](https://amitshekhar.me/blog/rxjava-map-vs-flatmap) * `Take` -> emit only the first n items emitted by an Observable. [Blog for reference](https://amitshekhar.me/blog/rxjava-interval-operator) * `Reduce` -> apply a function to each item emitted by an Observable, sequentially, and emit the final value * `Skip` -> suppress the first n items emitted by an Observable @@ -45,7 +45,7 @@ compile 'io.reactivex.rxjava2:rxandroid:X.X.X' * [FlowableExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/FlowableExampleActivity.java) - Using `Flowable` and `reduce` operator * [SingleObserverExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/SingleObserverExampleActivity.java) - Using `SingleObserver` * [CompletableObserverActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/CompletableObserverExampleActivity.java) - Using `CompletableObserver` -* [MapExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/MapExampleActivity.java) - Using `map` Operator +* [MapExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/MapExampleActivity.java) - Using `map` Operator. Blog: [RxJava Operator Map vs FlatMap](https://amitshekhar.me/blog/rxjava-map-vs-flatmap) * [ZipExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/ZipExampleActivity.java) - Using `zip` Operator * [BufferExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/BufferExampleActivity.java) - Using `buffer` Operator * [TakeExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/TakeExampleActivity.java) - Using `take` Operator. [Blog for reference](https://amitshekhar.me/blog/rxjava-interval-operator) From 0e1c933484d84ef62eacd26475b15939428f459f Mon Sep 17 00:00:00 2001 From: AMIT SHEKHAR Date: Tue, 11 Oct 2022 19:05:59 +0530 Subject: [PATCH 13/18] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c30894d..8af27ca 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ compile 'io.reactivex.rxjava2:rxandroid:X.X.X' * [SwitchMapExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/SwitchMapExampleActivity.java) - Using `switchMap` Observable * [IntervalExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/IntervalExampleActivity.java) - Using `Interval`. [Blog for reference](https://amitshekhar.me/blog/rxjava-interval-operator) * [RxBusActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/rxbus/RxBusActivity.java) - RxBus, RxJava2Bus, EventBus, RxEventBus -* [PaginationActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/pagination/PaginationActivity.java) - Pagination for loadMore in RecyclerView +* [PaginationActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/pagination/PaginationActivity.java) - Pagination for loadMore in RecyclerView. Blog: [Pagination In RecyclerView Using RxJava Operators](https://amitshekhar.me/blog/pagination-in-recyclerview-using-rxjava-operators) * [ComposeOperatorExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/compose/ComposeOperatorExampleActivity.java) - Compose operator for reusable * [Search Implementation](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/search/SearchActivity.java) - Using `debounce`, `switchMap`, `distinctUntilChanged` * [Implement Caching Using RxJava Operators](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/cache/CacheExampleActivity.java) - Using `concat`, `firstElement` From a7d4dc79e649c41734cb17cd2f8784d6b43badb3 Mon Sep 17 00:00:00 2001 From: AMIT SHEKHAR Date: Wed, 9 Nov 2022 16:15:23 +0530 Subject: [PATCH 14/18] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8af27ca..eceb305 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ compile 'io.reactivex.rxjava2:rxandroid:X.X.X' * [ComposeOperatorExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/compose/ComposeOperatorExampleActivity.java) - Compose operator for reusable * [Search Implementation](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/search/SearchActivity.java) - Using `debounce`, `switchMap`, `distinctUntilChanged` * [Implement Caching Using RxJava Operators](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/cache/CacheExampleActivity.java) - Using `concat`, `firstElement` -* [PublishSubjectExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/PublishSubjectExampleActivity.java) +* [PublishSubjectExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/PublishSubjectExampleActivity.java). Blog: [RxJava Subject - Publish, Replay, Behavior, and Async](https://amitshekhar.me/blog/rxjava-subject-publish-replay-behavior-async) ### Find this project useful ? :heart: * Support it by clicking the :star: button on the upper right of this page. :v: From 32432ed7b3672a73e3a08116a34e3af7764fc55f Mon Sep 17 00:00:00 2001 From: AMIT SHEKHAR Date: Wed, 18 Jan 2023 13:42:31 +0530 Subject: [PATCH 15/18] Update README.md --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index eceb305..fd6eca3 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,17 @@ * who is migrating to RxJava 2 * or just started with RxJava. +## About me + +Hi, I am [**Amit Shekhar**](https://amitshekhar.me), I have mentored many developers, and their efforts landed them high-paying tech jobs, helped many tech companies in solving their unique problems, and created many open-source libraries being used by top companies. I am passionate about sharing knowledge through open-source, blogs, and videos. + +You can connect with me on: + +- [Twitter](https://twitter.com/amitiitbhu) +- [YouTube](https://www.youtube.com/@amitshekhar) +- [LinkedIn](https://www.linkedin.com/in/amit-shekhar-iitbhu) +- [GitHub](https://github.com/amitshekhariitbhu) + ## [My Personal Blog - amitshekhar.me](https://amitshekhar.me/blog) - High-quality content to learn Android concepts. ### Just Build the project and start learning RxJava by examples. From a22bb87c2bb74e96bb096f07ad97f863e0c6c7c8 Mon Sep 17 00:00:00 2001 From: AMIT SHEKHAR Date: Sun, 7 Jul 2024 09:33:27 +0530 Subject: [PATCH 16/18] Update README.md --- README.md | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index fd6eca3..7d13459 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ ## About me -Hi, I am [**Amit Shekhar**](https://amitshekhar.me), I have mentored many developers, and their efforts landed them high-paying tech jobs, helped many tech companies in solving their unique problems, and created many open-source libraries being used by top companies. I am passionate about sharing knowledge through open-source, blogs, and videos. +Hi, I am Amit Shekhar, Co-Founder @ [Outcome School](https://outcomeschool.com) • IIT 2010-14 • I have taught and mentored many developers, and their efforts landed them high-paying tech jobs, helped many tech companies in solving their unique problems, and created many open-source libraries being used by top companies. I am passionate about sharing knowledge through open-source, blogs, and videos. You can connect with me on: @@ -17,7 +17,7 @@ You can connect with me on: - [LinkedIn](https://www.linkedin.com/in/amit-shekhar-iitbhu) - [GitHub](https://github.com/amitshekhariitbhu) -## [My Personal Blog - amitshekhar.me](https://amitshekhar.me/blog) - High-quality content to learn Android concepts. +## Join **Outcome School** and get high paying tech job: [Outcome School](https://outcomeschool.com) ### Just Build the project and start learning RxJava by examples. @@ -36,15 +36,15 @@ compile 'io.reactivex.rxjava2:rxandroid:X.X.X' # RxJava 2 Operators Examples present in this sample project: -* `Map` -> transform the items emitted by an Observable by applying a function to each item. Blog: [RxJava Operator Map vs FlatMap](https://amitshekhar.me/blog/rxjava-map-vs-flatmap) +* `Map` -> transform the items emitted by an Observable by applying a function to each item. Blog: [RxJava Operator Map vs FlatMap](https://outcomeschool.com/blog/rxjava-map-vs-flatmap) * `Zip` -> combine the emissions of multiple Observables together via a specified function and emit single items for each combination based on the results of this function * `Filter` -> emit only those items from an Observable that pass a predicate test -* `FlatMap` -> transform the items emitted by an Observable into Observables, then flatten the emissions from those into a single Observable. Blog: [RxJava Operator Map vs FlatMap](https://amitshekhar.me/blog/rxjava-map-vs-flatmap) -* `Take` -> emit only the first n items emitted by an Observable. [Blog for reference](https://amitshekhar.me/blog/rxjava-interval-operator) +* `FlatMap` -> transform the items emitted by an Observable into Observables, then flatten the emissions from those into a single Observable. Blog: [RxJava Operator Map vs FlatMap](https://outcomeschool.com/blog/rxjava-map-vs-flatmap) +* `Take` -> emit only the first n items emitted by an Observable. [Blog for reference](https://outcomeschool.com/blog/rxjava-interval-operator) * `Reduce` -> apply a function to each item emitted by an Observable, sequentially, and emit the final value * `Skip` -> suppress the first n items emitted by an Observable * `Buffer` -> periodically gather items emitted by an Observable into bundles and emit these bundles rather than emitting the items one at a time -* `Concat` -> emit the emissions from two or more Observables without interleaving them. [Blog for reference](https://amitshekhar.me/blog/rxjava-concat-operator) +* `Concat` -> emit the emissions from two or more Observables without interleaving them. [Blog for reference](https://outcomeschool.com/blog/rxjava-concat-operator) * `Replay` -> ensure that all observers see the same sequence of emitted items, even if they subscribe after the Observable has begun emitting items * `Merge` -> combine multiple Observables into one by merging their emissions * `SwitchMap` -> transform the items emitted by an Observable into Observables, and mirror those items emitted by the most-recently transformed Observable @@ -52,36 +52,37 @@ compile 'io.reactivex.rxjava2:rxandroid:X.X.X' # Highlights of the examples : -* [DisposableExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/DisposableExampleActivity.java) - Using `CompositeDisposable`. [Blog for reference](https://amitshekhar.me/blog/dispose-vs-clear-compositedisposable-rxjava) +* [DisposableExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/DisposableExampleActivity.java) - Using `CompositeDisposable`. [Blog for reference](https://outcomeschool.com/blog/dispose-vs-clear-compositedisposable-rxjava) * [FlowableExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/FlowableExampleActivity.java) - Using `Flowable` and `reduce` operator * [SingleObserverExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/SingleObserverExampleActivity.java) - Using `SingleObserver` * [CompletableObserverActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/CompletableObserverExampleActivity.java) - Using `CompletableObserver` -* [MapExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/MapExampleActivity.java) - Using `map` Operator. Blog: [RxJava Operator Map vs FlatMap](https://amitshekhar.me/blog/rxjava-map-vs-flatmap) +* [MapExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/MapExampleActivity.java) - Using `map` Operator. Blog: [RxJava Operator Map vs FlatMap](https://outcomeschool.com/blog/rxjava-map-vs-flatmap) * [ZipExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/ZipExampleActivity.java) - Using `zip` Operator * [BufferExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/BufferExampleActivity.java) - Using `buffer` Operator -* [TakeExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/TakeExampleActivity.java) - Using `take` Operator. [Blog for reference](https://amitshekhar.me/blog/rxjava-interval-operator) +* [TakeExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/TakeExampleActivity.java) - Using `take` Operator. [Blog for reference](https://outcomeschool.com/blog/rxjava-interval-operator) * [ReduceExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/ReduceExampleActivity.java) - Using `reduce` Operator * [FilterExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/FilterExampleActivity.java) - Using `filter` Operator * [SkipExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/SkipExampleActivity.java) - Using `skip` Operator * [ReplayExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/ReplayExampleActivity.java) - Using `replay` Operator -* [ConcatExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/ConcatExampleActivity.java) - Using `concat` Operator. [Blog for reference](https://amitshekhar.me/blog/rxjava-concat-operator) +* [ConcatExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/ConcatExampleActivity.java) - Using `concat` Operator. [Blog for reference](https://outcomeschool.com/blog/rxjava-concat-operator) * [MergeExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/MergeExampleActivity.java) - Using `merge` Operator * [DeferExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/DeferExampleActivity.java) - Using `defer` Observable * [SwitchMapExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/SwitchMapExampleActivity.java) - Using `switchMap` Observable -* [IntervalExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/IntervalExampleActivity.java) - Using `Interval`. [Blog for reference](https://amitshekhar.me/blog/rxjava-interval-operator) +* [IntervalExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/IntervalExampleActivity.java) - Using `Interval`. [Blog for reference](https://outcomeschool.com/blog/rxjava-interval-operator) * [RxBusActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/rxbus/RxBusActivity.java) - RxBus, RxJava2Bus, EventBus, RxEventBus -* [PaginationActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/pagination/PaginationActivity.java) - Pagination for loadMore in RecyclerView. Blog: [Pagination In RecyclerView Using RxJava Operators](https://amitshekhar.me/blog/pagination-in-recyclerview-using-rxjava-operators) +* [PaginationActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/pagination/PaginationActivity.java) - Pagination for loadMore in RecyclerView. Blog: [Pagination In RecyclerView Using RxJava Operators](https://outcomeschool.com/blog/pagination-in-recyclerview-using-rxjava-operators) * [ComposeOperatorExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/compose/ComposeOperatorExampleActivity.java) - Compose operator for reusable * [Search Implementation](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/search/SearchActivity.java) - Using `debounce`, `switchMap`, `distinctUntilChanged` * [Implement Caching Using RxJava Operators](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/cache/CacheExampleActivity.java) - Using `concat`, `firstElement` -* [PublishSubjectExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/PublishSubjectExampleActivity.java). Blog: [RxJava Subject - Publish, Replay, Behavior, and Async](https://amitshekhar.me/blog/rxjava-subject-publish-replay-behavior-async) +* [PublishSubjectExampleActivity](https://github.com/amitshekhariitbhu/RxJava2-Android-Samples/blob/master/app/src/main/java/com/rxjava2/android/samples/ui/operators/PublishSubjectExampleActivity.java). Blog: [RxJava Subject - Publish, Replay, Behavior, and Async](https://outcomeschool.com/blog/rxjava-subject-publish-replay-behavior-async) ### Find this project useful ? :heart: * Support it by clicking the :star: button on the upper right of this page. :v: Thanks -[**Amit Shekhar**](https://amitshekhar.me) +**Amit Shekhar**\ +Co-Founder @ [Outcome School](https://outcomeschool.com) You can connect with me on: @@ -90,11 +91,11 @@ You can connect with me on: - [GitHub](https://github.com/amitshekhariitbhu) - [Facebook](https://www.facebook.com/amit.shekhar.iitbhu) -[**Read all of my blogs here.**](https://amitshekhar.me/blog) +[**Read all of our blogs here.**](https://outcomeschool.com/blog) ### License ``` - Copyright (C) 2022 Amit Shekhar + Copyright (C) 2024 Amit Shekhar Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. From feaaf21a088d9cd732b21b2657b5df4676d74fd1 Mon Sep 17 00:00:00 2001 From: AMIT SHEKHAR Date: Tue, 12 Aug 2025 21:43:15 +0530 Subject: [PATCH 17/18] Delete .github directory --- .github/FUNDING.yml | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index 25c1f0e..0000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1,13 +0,0 @@ -# These are supported funding model platforms - -github: [amitshekhariitbhu] -patreon: # Replace with a single Patreon username -open_collective: # Replace with a single Open Collective username -ko_fi: # Replace with a single Ko-fi username -tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel -community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -liberapay: # Replace with a single Liberapay username -issuehunt: # Replace with a single IssueHunt username -otechie: # Replace with a single Otechie username -lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry -custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] From 74693e26ef44c59368b48a77d1600b1ff019b7a1 Mon Sep 17 00:00:00 2001 From: AMIT SHEKHAR Date: Wed, 28 Jan 2026 14:56:05 +0530 Subject: [PATCH 18/18] Update README.md --- README.md | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 7d13459..8aa4e01 100644 --- a/README.md +++ b/README.md @@ -8,16 +8,27 @@ ## About me -Hi, I am Amit Shekhar, Co-Founder @ [Outcome School](https://outcomeschool.com) • IIT 2010-14 • I have taught and mentored many developers, and their efforts landed them high-paying tech jobs, helped many tech companies in solving their unique problems, and created many open-source libraries being used by top companies. I am passionate about sharing knowledge through open-source, blogs, and videos. +Hi, I am Amit Shekhar, Founder @ [Outcome School](https://outcomeschool.com) • IIT 2010-14 • I have taught and mentored many developers, and their efforts landed them high-paying tech jobs, helped many tech companies in solving their unique problems, and created many open-source libraries being used by top companies. I am passionate about sharing knowledge through open-source, blogs, and videos. -You can connect with me on: +### Follow Amit Shekhar -- [Twitter](https://twitter.com/amitiitbhu) -- [YouTube](https://www.youtube.com/@amitshekhar) +- [X/Twitter](https://twitter.com/amitiitbhu) - [LinkedIn](https://www.linkedin.com/in/amit-shekhar-iitbhu) - [GitHub](https://github.com/amitshekhariitbhu) -## Join **Outcome School** and get high paying tech job: [Outcome School](https://outcomeschool.com) +### Follow Outcome School + +- [YouTube](https://youtube.com/@OutcomeSchool) +- [X/Twitter](https://x.com/outcome_school) +- [LinkedIn](https://www.linkedin.com/company/outcomeschool) +- [GitHub](http://github.com/OutcomeSchool) + +## I teach at Outcome School + +- AI and Machine Learning +- Android + +Join Outcome School and get a high-paying tech job: [Outcome School](https://outcomeschool.com) ### Just Build the project and start learning RxJava by examples.