Platforms¶
ReactiveUI's core package holds view models, commands, routing and activation. None of it depends on a UI framework. A platform package connects that core to one UI framework. It adds:
- base classes for your windows, pages and controls, so each one is an
IViewFor<TViewModel>with aViewModelproperty the framework can bind to; - hosts that show a view for a view model: a routed host that follows a router's navigation stack, and a view model host that shows whatever view model you give it;
- an activation fetcher, which tells
WhenActivatedwhen a view appears on screen and when it leaves; - a main-thread sequencer for the framework's UI thread. This gets results to the UI on the right thread (see Scheduling);
- a
With<Platform>()call for the app builder that registers all of the above.
Each page below starts from a runnable example app. Most examples build on any operating system. The Windows ones build only on Windows, the Apple ones build only on Windows or macOS, and the Android one runs on a device or an emulator.
| Platform | Package | Example app |
|---|---|---|
| WPF | ReactiveUI.WPF, plus ReactiveUI.Blend and ReactiveUI.Drawing | A university grade book |
| Windows Forms | ReactiveUI.WinForms | A library loans desk |
| WinUI | ReactiveUI.WinUI | A weather-station dashboard |
| .NET MAUI | ReactiveUI.Maui | A recipe book |
| Blazor | ReactiveUI.Blazor | A to-do list |
| Android | ReactiveUI.AndroidX | A school timetable |
| Apple platforms | ReactiveUI (ios, maccatalyst, macos, tvos) | A library catalog |
Each package also ships as ReactiveUI.<Platform>.Reactive, built from the same source for apps that use
System.Reactive.
To add a package to a project, follow Installation for your platform.