Gone Mobile

96: Selling Jon on Reactive Extensions

March 1st, 2024

In this episode, Jon and Allan discuss Reactive Extensions (Rx) and its advantages over traditional event handling. They start by addressing Jon's resistance to dependency injection and his concerns about taking dependencies on external libraries. Allan introduces Rx as a solution to handle events more effectively and efficiently. They explore the benefits of Rx, such as composability, filtering, and transforming events. The conversation delves into the implementation of Rx in different platforms and its integration with Maui. They also discuss challenges and solutions in using Rx, including canceling requests and validating input. Overall, the episode highlights the power and versatility of Rx in simplifying event handling and improving code readability. In this conversation, Jon and Allan discuss Reactive UI and Reactive Extensions. They explore the features and benefits of Reactive UI.net and how it simplifies event handling and data binding in UI development. They dive into topics such as throttling and transforming events, filtering empty or invalid values, canceling and restarting events, and handling complex use cases. They also discuss the challenges and limitations of Reactive Extensions, including assembly size and reflection usage. The conversation concludes with a discussion on identifying use cases for Reactive UI and plans for future discussions on the topic.


  • Reactive Extensions (Rx) is a powerful library that simplifies event handling and provides a more composable and efficient way to work with events.
  • Rx offers advantages over traditional event handling, such as the ability to filter, transform, and compose events, as well as handle asynchronous operations.
  • RxUI is an open-source project that integrates Rx with Maui and other platforms, providing additional features and simplifying event handling in user interfaces.
  • Using Rx can help address common challenges in event handling, such as memory leaks, complex event patterns, and managing asynchronous operations.
  • Regular expressions can be used with Rx to validate and filter input, improving the quality and reliability of user interactions. Reactive UI.net simplifies event handling and data binding in UI development.
  • Reactive Extensions provide powerful tools for manipulating and transforming events.
  • Throttling and filtering events can improve performance and reduce unnecessary processing.
  • Reactive UI and Reactive Extensions have limitations and may require careful consideration in certain scenarios.


  • Hosts: Jon Dick, Allan Ritchie
  • Audio Engineer: Jim Heath


  • 00:00 Introduction and Small Talk
  • 01:07 Jon's Resistance to Dependency Injection
  • 02:21 Introducing Reactive Extensions (Rx)
  • 03:45 Advantages of Rx and Issues with Events
  • 08:34 Rx in Different Platforms
  • 10:00 Transforming and Filtering Events with Rx
  • 15:29 Understanding Observables and Observers
  • 19:21 Simplifying Event Handling with Rx
  • 22:21 RxUI and its Integration with Maui
  • 25:03 Challenges and Solutions in Using Rx
  • 28:26 Implementing a Search Feature with Rx
  • 31:03 Handling Continuous Typing and Caching Results
  • 33:32 Validating Input with Regular Expressions
  • 34:09 Introduction to Reactive UI and Reactive Extensions
  • 34:38 Exploring Reactive UI.net
  • 35:11 Throttling and Transforming Events
  • 36:25 Distinct Until Changed
  • 37:12 Filtering Empty or Invalid Values
  • 37:45 Subscribing to Events
  • 38:13 Canceling and Restarting Events
  • 39:05 Complex Use Cases and Limitations
  • 40:08 Using Reactive Extensions with Async
  • 41:23 Challenges with Reactive Extensions
  • 42:21 Assembly Size of System.Reactive
  • 43:16 Reflection and Dynamic Usage
  • 44:34 Considerations for Mobile Apps
  • 48:35 Benefits of Reactive UI in UI Development
  • 51:08 Identifying Use Cases for Reactive UI
  • 54:04 Reactive UI and Reactive Extensions as Picks of the Week
  • 55:06 Conclusion and Future Discussion

Episode Comments