
Explore RxJava, the reactive extension library for composing asynchronous, event-based programs with observable sequences, and learn how observing emitted values enables responsive Android development.
Explore the three core components of RxJava: observable, operator, and observer, and learn how values are emitted, transformed, and observed in Android apps.
Set up a new Android project and add RxJava 3 dependencies in Gradle, migrate from v2 maintenance, copy the dependency line, synchronize, and start using RxJava 3 in your app.
Learn how the just operator emits a value with an observable, subscribe an observer to handle onNext and onComplete, and log emissions in RxJava 3 for Android.
Explore core RxJava operators for Android development, including creating, transforming, and filtering observables. See hands-on examples of emitting values, managing observers, and handling lists.
Learn how to convert various objects into observables using the from array operator in RxJava for Android, and practice subscribing and handling on next, on error, and on complete.
Learn how the from iterable operator converts a list into an observable that emits each item in sequence, enabling item-by-item processing from collections in RxJava 3.
Learn about the range operator and refactor verbose code using lambda expressions, returning an observable sequence and subscribing with onNext, onError, and onComplete.
Explore the repeat operator in RxJava 3, repeating the emitted sequence (for example, range 1 to 10) a chosen number of times with subscribe and onNext/onComplete handling.
Explore RxJava 3 interval operator for Android, returning an observable that emits after an initial delay and then at a fixed period, with time unit control and takeWhile stop behavior.
Explore the timer operator in RxJava by creating a single emission after a specified delay, using initial delay and time unit, and observing completion after one emission.
Implement a custom create operator in RxJava for Android, wiring on next, on error, and on complete callbacks to emit transformed values by five and manage unsubscription.
learn how to use the RxJava 3 filter operator to emit only items that pass a test, filter lists of users by age or name, and observe results.
Master the last operator in RxJava for Android to emit the final item, use a default when empty, and note single versus observable behavior.
Learn how the distinct operator in RxJava 3 filters duplicate items emitted by an observable, provides unique values, and applies to whole object rather than a field to suppress duplicates.
Explore the RxJava 3 skip operator and how it suppresses the first items, skip last, and enables time-based and count-based skipping in Android development.
Within the RxJava 3 buffer operator, learn to group emitted items into fixed-size lists and emit them together, illustrated with buffering three items at a time.
Transform items emitted by observables using the map operator by applying a function to each item, turning a user into a user profile with an image.
Explore the flatMap operator in RxJava, transforming emitted items into new observables and flattening their emissions to fetch user profiles and lists seamlessly.
Learn how the RxJava 3 group by operator partitions an observable stream into groups by a key, such as age, and flatten results for consumption.
Master the merge operator by combining two observables into one stream, as user and profile data emit values that are merged into a single sequence.
Master the concat operator in RxJava 3 for Android, producing non interleaving, sequential emissions from multiple observables.
Explore the start with operator in RxJava 3 for Android, which prepends a default value before emitting items from a source, illustrated with numbers 1 to 100 and user data.
Explore how the zip operator combines emissions from multiple observables to emit a single result via a function, demonstrated by zipping user and blog lists to produce matched blog details.
Explore the different types of observables and observers in RxJava, including Single, Maybe, and Completable, and learn how operators apply to these building blocks.
Learn how the observer subscribes to an observable to emit multiple values, like download progress, using create and range operators.
Learn to implement a single observable and a single observer in RxJava 3, emitting one value for network calls or database operations, using onSuccess and onError (no onNext).
Explore maybe and maybe observer in RxJava 3, learning how a maybe emits a value or none and how to subscribe with on success, on error, and on complete.
Explore RxJava 3's Completable, which runs a task without emitting a value, and implement a CompletableObserver to manage onSubscribe, onComplete, and onError during subscription.
Explore flowable backpressure in RxJava 3 for Android, learn how backpressure strategies like drop, buffer, and latest control emissions and prevent missing backpressure exceptions.
Learn how to manage disposables in RxJava and RxAndroid by subscribing and disposing observers when activities or fragments are destroyed, using disposables and composite disposables for cleanups.
Learn how RxJava schedulers like io, computation, android extension, trampoline, and single manage threading for io-bound, cpu-intensive, and ui tasks, with subscribeOn and observeOn behavior.
Learn to implement RxJava and RxAndroid schedulers in an Android project, switch execution between the main thread and background threads, and configure dependencies for proper threading.
Understand that a cold observable starts emitting only after a subscriber subscribes, so each observer receives its own data items. Real-world examples include Retrofit and run queries.
Understand how a cold observable in RxJava 3 emits data only after subscription, returning the same list of users to every observer with no data loss. Contrast with hot observables.
Understand hot observables in RxJava and how they share a single emission source. Subscribers may miss previously emitted values depending on when they subscribe.
Examine hot observable behavior in RxJava with a connectable observable and the connect step. See how emission starts only after connect, and how subscribers may miss earlier values.
Discover how a connectable observable enables multicasting by starting emission only after a connect call, not on subscription. A single connectable source emits to all observers simultaneously when connected.
Explore the RxJava subject as a bridge that acts as both observer and observable, and preview the four subject variants with upcoming practical implementations.
AsyncSubject in RxJava 3 emits only the last value after the source completes, passing that final item to all subscribers, and emits an error notification if the source fails.
Explore async subject in RxJava 3 for Android, using it as both observer and observable. Learn that it emits only the last value upon completion.
When an observer subscribes to a behavior subject, it emits the most recently emitted item, then continues with subsequent items from the source. Explore a practical implementation in the Orizaba project.
Explore how to create and use a behavior subject in RxJava 3, observe emissions, and understand how the most recent item is delivered to new subscribers.
Explain how PublishSubject in RxJava 3 delivers items to observers only from subscription onward, risking loss of items emitted before subscribing, and not emitting to observers when an error occurs.
Demonstrates using PublishSubject to emit events, subscribe observers, and shows that items are delivered to subscribers only from the moment of subscription, with past emissions skipped.
ReplaySubject replays all prior emissions to every observer, regardless of subscription time, with optional time windows; avoid concurrent on_next calls to prevent nonsequential notifications and ambiguity.
Explore replay subject implementation in RxJava 3 by creating a subject and observers, subscribing at different times, and observing that all emitted items are replayed to every subscriber.
Build a database application using a persistent library, focusing on room persistence with RxJava for an Android project, including setting, saving, and editing records.
Create a new Android project and add Room and RxJava 3 dependencies to build a database app. Prepare to define entities and the database in the next lecture.
Create a room entity named student with a table name and a primary key, plus columns for name, age, and subjects, and a dao with insert, update, delete, and get-all.
Create a singleton database instance using a volatile companion object and synchronized block to prevent multiple instances across threads, building with application context and database builder.
Create a student repository by adding a repository class with a database service, implementing insert and get operations for a student entity, and preparing to use it in the view.
Create a view model to manage a student repository with insert, update, delete, and fetch all operations using RxJava 3, with loading, error, and success states.
Add the lifecycle and room dependencies to support the view model, initialize the view model with the application, and observe loading, errors, and data to drive the user interface.
Create a form layout in an Android activity, add text fields and constraints for name, idea, number, and subject, and integrate a dialog to present input and actions.
Implement an add dialog in an Android RxJava project by wiring a private function, configuring the dialog with positive and negative buttons, and handling user input and dialog sorting.
Learn to insert a new student record by creating a model with name and subject, converting inputs, and invoking the insert function, while observing table changes with an observable.
Implement a RecyclerView layout for the student list in an Android app, adjusting horizontal and vertical orientations, defining the student item layout, and outlining the upcoming adapter setup.
Build a recycler view adaptor for student entities, wiring the view holder and dataset, and set up the layout manager to reflect additions and updates.
Learn to add, edit, and delete items in an Android app using a button and card view, with practical UI event wiring.
Implement the edit flow by wiring the edit button in the adapter, showing a dialog with the student data, and updating the view model on submit through a dedicated listener.
Implement delete functionality by wiring the delete button in a dialogue to remove a record after a confirmation message, updating the list and handling title and message fields.
Demonstrates adding a progress bar in the main activity, adjusting color and layout constraints, and toggling visibility to reflect student progress via the view model.
Implement a success dialog flow in the RxJava 3 for Android developer masterclass by wiring updates, configuring the title and the message, and handling dismissal via an observer.
Implement a deleted dialog flow by wiring the view model to observe deletion status, show a dialog in the main activity, and handle success and error messages during deletion.
Implement an error dialog in RxJava 3 for Android by building a dialogue with a title and message, pass the message to the observer, and simulate errors using composite dispersement.
Clear the composite disposable when the view model is destroyed to cancel background tasks and database access, preventing memory leaks. This prevents memory errors from long-running background work.
Learn to automatically scroll a RecyclerView to a new record's position when adding items, ensuring the latest entry becomes visible, and test behavior with varying ages and subjects.
An introduction to the RxJava 3 for Android developer masterclass, guiding you to build the ZabaSearch app and implement its service in this section.
Build a database search query using a search view and menu in Android, wire the search field to a query function, and prepare the new model.
Implement a search query feature by wiring the search view to pass the query to the model, filter the student list, and handle results in the main activity.
Implement a search view in RxJava 3 by observing text input, emitting onNext values, debouncing for 1 second, and using distinctUntilChanged to prevent duplicate queries, reducing database calls.
Add a composite disposable to manage observables, dispose it when the activity is destroyed, and run background tasks on the correct scheduler to prevent leaks.
Learn how to use Retrofit to build a composite Android app, performing CRUD operations against an API with a task list that includes title, body, note, and status.
Create a new Android project with an empty activity, then add and configure Retrofit with RxJava 3 and Kotlin dependencies, including converters and logging, and synchronize to resolve build errors.
Set up a base URL and define endpoints for the API, configure build-time constants, and implement get all and add operations to fetch and manage data in the app.
Create a response model in a new data package under remote, generate the tax response class, and wire a list of tax responses into the app for handling incoming responses.
Create a Retrofit service by defining an internet service interface, annotate endpoints, and return a single response using Retrofit in an Android app.
Create a retrofit instance with the RxJava adapter and converter, configure the base URL and service, and enable RxJava calls via a call adapter factory and interceptor-based logging.
Extend the application class to initialize the networking service on app startup and expose a single shared network service accessible from anywhere.
Create a new task repository in the project and implement a function to fetch all tasks from the service, returning a Single suitable for the view model.
Create a new model and view model, wiring a networking service to fetch data and expose a tax list via RxJava, with loading and error handling and proper schedulers.
initialize viewmodel in android app using RxJava 3, pass application to ViewModel via factory, troubleshoot network access and data loading issues, test UI data population and error handling.
design and implement a recycler view item layout with title, body, status, and constraints, and wire up a reusable item view for list entries in Android.
Create and wire a RecyclerView adapter, including its core methods and binding steps. Run updates in a background thread to keep the UI responsive and manage the item list.
Implement RecyclerView to display a tax list by creating a data model, binding title, body, and status, and wiring a list adapter to render items.
design a layout to add a task, using a text input layout with a title and body, a dialog, hints, and a floating action button to submit.
Learn to implement and show an add task dialog in an Android app, configuring the dialog view, corner radius, cancelability, and its positive and negative buttons.
Implement an add task dialog by wiring the view model to set the title, body, and status, then trigger the add action and prepare endpoint and network service for integration.
Add a task request and an API endpoint. Build and serialize the request body with title and status, then route to the network service for a single response item.
Implement add task using the repository function and return task request with a user id. Subscribe and observe with schedulers, show loading, and verify the added value in the app.
Build the edit and delete view, implement the edit and delete buttons, and test the app using a real persistent library.
Implement an edit dialog to update tax data via a new endpoint, wiring a repository and view model to handle edits and reflect changes in the UI.
Implement the edit click listener to open a dialog, set the title and body text, handle the positive button to call a function, update data, and test the app.
Implement a delete task in an android app using rxjava 3. Build a delete request with user id and endpoint, wiring repository and view model to handle the response.
Implement delete task by configuring the dialogue title and message, then update the main activity and model to remove a record from the list. Test the deletion.
Design and test a progress bar in an Android app, observe loading behavior in the main activity, and validate add, edit, and update flows.
Implement a success dialog in an Android app by observing success and error messages, updating the dialog with the appropriate success message, and displaying it to the user.
Learn to implement search with a search view that queries the API, clears filters with a button, and shows API results using RxJava 3.
Build and wire a search endpoint in an Android app using RxJava 3, including endpoint creation, header handling, query passing, and repository integration with observe and subscribe.
Learn to integrate a search view in the app menu using Android X, inflate a search item, and wire it to search a data list.
Implement a RxJava search view in Android by wiring a PublishSubject input, debouncing text changes, filtering non-empty queries, and using switchMap to observe only the latest results.
Implement a clear search filter in an Android app by adding a top menu item and icon, wiring to a Retrofit API call, and enabling clearing to show all data.
Congratulates learners on completing the RxJava 3 for Android developer masterclass. Builds confidence in Java development for Android projects, while highlighting adaptive extension and dependency injection as career development topics.
Master the paging 3 library for Android by loading pages from local storage or network, reducing bandwidth and resource use, and integrating with data sources, view models, and adapters.
Learn to add Paging 3 dependencies to your Android project by copying the dependency block into the top-level build file and syncing the project for reliable data loading.
Create a network endpoint and a paginated get request with page and size parameters, headers, and a dedicated single response type to fetch and map data.
Implement RxPagingSource for Android by creating a network-backed paging source, mapping the server response to a model, and handling page keys, current and last pages, and refresh logic.
Build a repository and Beijing-specific data source, implement paging with a page config, and tune initial load size, page size, max size, placeholders, and distance for efficient data loading.
learn to create a new Beijing view model, extend the view model base, inject a repository, and return a Beijing data RPV trajectory with optional mapping and catch logic.
Implement a custom view model provider factory to create view models with constructor parameters, wiring a tax repository and network service through the create function.
Extend PagingDataAdapter to implement a Beijing data adapter with a view holder and binding. Bind items from the view model to the UI and handle data types with appropriate binding.
Implement a recycler view adapter and swap in a paging adapter, integrate with the view model to fetch API data across pages, and observe data loading tied to the lifecycle.
Implement a paging data adapter with a load state listener to show a progress bar during loading and handle errors by combining states from the data source and remote mediator.
Configure paging to preload enough pages on initial load before user scrolls, balancing distance and page size to reduce server requests and save bandwidth and resources.
RxJava is a very marketable skill, which is in high demand in the industry today. Most of the Android Developer Job require RxJava skill .Whether you are going to use Java or Kotlin for Android Development ReactiveX skill will be a big advantage for you. We will learn RxJava with Room Database and RxJava With Retrofit in two separate project.
This is a RxJava 3 and RxAndroid course for Android Developer . The aim of this course is to teach fundamental concepts of RxJava that takes you from a novice to intermediate RxJava developer. Every concept is explained in detailed manner with code examples.
If you have some basic experience in developing Android application with Kotlin then this course is for you. By the end of this course you should be able to implement RxJava in your Android application.