Repository navigation
docs(reactiveui): document the remaining public API and add the Apple platform page - #1000
Merged
Merged
Conversation
…WinUI members; rewrite extending IViewFor
…utput from a real Windows run
…contract set later
…eadability pass on guideline and install pages
Merged
3 of 4 tasks
glennawatson
added a commit
to reactiveui/ReactiveUI
that referenced
this pull request
Sep 27, 2026
#4526) ## Summary **Every public ReactiveUI member now has a documentation example or a reviewed reason why app code never calls it, including the Apple platforms.** - **Core examples.** Activation through `IActivatableViewModel.Activator`, and an `IObserver<T>` witness subscribed straight to a `ReactiveCommand` and through `ReactiveCommandBase`. - **Platform examples.** New coverage for AndroidX (the `IReactiveObject` surface on views, `ReactiveActivity` results, USB permission requests, the fragment `WireUpControls` overload), MAUI and WinUI hosts and converters, WinForms panel and table set-method converters, WPF host properties, every `TransitioningContentControl` transition, the explicit-view `WhenActivated` overloads, and Blend behaviour properties. - **New `Pages/platform-apple` project.** An iOS and macOS library app covering the view controllers, views, hosts, suspension, and the UIKit table and collection sources, cells and section information. The iOS and macOS workloads exist only on Windows and macOS, so on Linux the project compiles a one-line placeholder. - **Extending `IViewFor`.** A `view-location` example that bridges a third-party base class to `IViewFor<TViewModel>` with its own activation fetcher. - **ReactiveUI.Binding 8.5.0.** Picks up the fix for the generated `BindCommand` on AppKit `NSButton` targets, so the macOS example binds its button with `BindCommand`. - **SourceLink is off for example projects.** Examples are never packed, and SourceLink warned when an example built from a copy of the repository without `.git`. Libraries are unchanged. ## Why **A fresh audit of the public surface after the recent Binding, source generator and routing changes found members with no example.** - The handbook pages on reactiveui/website quote these examples verbatim; the matching page changes are in reactiveui/website (linked below). ## Breaking changes **None.** - Only example projects and the example build settings change. ## How this was verified **Every console page's `// Output:` blocks match a real run; the platform apps were run on their platforms.** - WPF, WinForms, Blend and WinUI ran on a Windows machine, and their printed output matches the blocks and the pages. Android ran on an emulator, and every quoted log line appears in the real log. The Apple project was built for iOS and macOS on Windows. It has not run on a simulator. ## Notes for the reviewer **Start with `Pages/platform-apple` (new) and `src/examples/Directory.Build.props`; the rest adds methods to existing page projects.** - `src/Directory.Build.props` gains one condition: the SourceLink package is skipped when `EnableSourceLink` is `false`, which only the examples set. - Two library defects surfaced and are documented as current behaviour, not worked around: WinUI's `ViewModelViewHost` never uses an app-set `ViewContract`, and macOS `ReactiveWindowController` has no `IViewFor<TViewModel>` form, so `WhenActivated` cannot target it. - Companion website PR: reactiveui/website#1000 ## Checklist - [x] I have read the [Contribute guide](https://www.reactiveui.net/contribute/index.html) - [x] The PR title follows [Conventional Commits](https://www.conventionalcommits.org/) - [x] Tests cover this change, or the summary says why they do not - [ ] New or changed public API has XML documentation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What are the main goals of this change?
Is this change related to any reported issue? (Optional)
Companion to reactiveui/ReactiveUI#4526, which adds the examples these pages quote. Merge that first; the page excerpts match its source.
Notes (Optional)
The ReactiveUI handbook now documents every public member, with a new Apple page and a Markdown-only landing page.
handbook/platforms/apple.md, which covers iOS and macOS controllers, views, hosts, suspension, and table and collection sources. It is linked from the platforms index.view-location/extending-iviewfor.mdbridges a third-party base class instead of the old hand-built popup page.data-binding/avalonia.mdnow covers ReactiveUI.Avalonia with named controls.ViewModelViewHostdoes not choose a view by a contract set later.RoutedViewHostis the host that does. This is a reproduced library defect.reactiveui/index.mdis plain Markdown (no raw HTML), at grade 8, with a view, view model and model diagram.CLAUDE.md: gains the soft-tone Material 3 diagram style: the palette, the roles and the rules.