Introducing AI Conversations: Natural Language Interaction for Your Apps! Learn More
MAUI Hosting Release Notes
4.1.1 - May 31, 2026
Section titled “4.1.1 - May 31, 2026” Enhancement
IAppSupport.OpenSettings - helper to deep-link to the app’s system settings page. Android uses
Intent.ActionApplicationDetailsSettings; iOS/macCatalyst uses UIApplication.OpenSettingsUrlString; Windows opens the app’s “Manage my device” page in the Settings app Enhancement
Bindable store objects are now more easily testable through CreateTestScope
4.1 - May 29, 2026
Section titled “4.1 - May 29, 2026” BREAKING Feature
The static host accessor
Host has been renamed to ShinyHost. Update Host.Services references to ShinyHost.Services Feature
IAppStore.RequestReview() — presents the platform’s native in-app review prompt without leaving the app (iOS/macCatalyst SKStoreReviewController, Windows StoreContext). The OS may throttle or silently suppress the prompt, so a true result means the prompt was requested, not that the user saw or completed it. Android has no dependency-free in-app review API and falls back to OpenReviewPage()4.0 - May 27, 2026
Section titled “4.0 - May 27, 2026” BREAKING Feature
AddInfrastructureModules no longer auto-wires AppSupport or AppStore. Opt into each piece explicitly via AddAppSupport() and AddAppStore() so apps only pay for what they use BREAKING Feature
Removed
AddPlatformLifecycle(), ILifecycleExecutor, and the per-platform lifecycle interfaces (IAppForeground, IAppBackground, IContinueActivity, IOnFinishedLaunching, IOnApplicationCreated, IOnActivityOnCreate, IOnActivityRequestPermissionsResult, IOnActivityNewIntent, IOnActivityResult). Platform lifecycle is dispatched by UseShiny() from Shiny.Hosting.Maui; register handlers against Shiny.Core’s IIosLifecycle.*, IMacLifecycle.*, and IAndroidLifecycle.* interfaces instead Feature
IAppSupport — device info (AppVersion, DeviceManufacturer, DeviceModel, PlatformVersion), OpenBrowser and OpenMap helpers, plus the change-detection services below Feature
IAppSupport.CurrentOrientation and OrientationChanged event surfaced through MAUI’s DeviceDisplay on iOS, Android, macCatalyst, and Windows Feature
IAppSupport.SetOrientation / ResetOrientation — programmatic orientation lock. Android uses Activity.RequestedOrientation (sensor variants); iOS 16+ uses UIWindowScene.RequestGeometryUpdate; Windows uses DisplayInformation.AutoRotationPreferences Feature
IAppSupport.CurrentCulture and CultureChanged event. iOS/macCatalyst hooks NSLocale.CurrentLocaleDidChangeNotification; Android registers a BroadcastReceiver on Intent.ActionLocaleChanged; Windows uses SystemEvents.UserPreferenceChanged; bare TFMs poll on a 30-second timer Feature
IAppSupport.CurrentTimeZone and TimeZoneChanged event. iOS/macCatalyst hooks NSSystemTimeZoneDidChangeNotification; Android registers a BroadcastReceiver on Intent.ActionTimezoneChanged; Windows uses SystemEvents.TimeChanged; bare TFMs poll on a 30-second timer Feature
IAppStore — cross-platform store info and deep links. GetCurrent returns store version, release notes, ratings, release date, and minimum OS version where supported. OpenStore and OpenReviewPage deep-link via itms-apps://, market://, or ms-windows-store:// Feature iOS
App Store lookups via the iTunes Search API (
itunes.apple.com/lookup?bundleId=…). Auto-caches the discovered trackId back into options so OpenStore works without configuration after the first lookup Feature Android
Play Store lookups via HTML scrape of
play.google.com/store/apps/details with two GeneratedRegex strategies (JSON-LD softwareVersion plus legacy AF_initDataCallback pattern) Feature Windows
Microsoft Store lookups via the DisplayCatalog API (
displaycatalog.mp.microsoft.com/v7.0/products) Feature
AddAppStore(Action<AppStoreOptions>? configure = null) and convenience overload AddAppStore(string? appleAppId, string? androidPackageName, string? windowsProductId, string? countryCode) for inline configuration Enhancement
Bundle / package identifiers now resolved via
Microsoft.Maui.ApplicationModel.AppInfo.PackageName instead of native APIs — fewer #if branches and a single cross-platform code path2.0 - March 9, 2026
Section titled “2.0 - March 9, 2026” Feature
Initial release of Shiny.Extensions.MauiHosting
Feature
IMauiModule interface for modular MAUI app configuration — Add(MauiAppBuilder) for service registration, Use(IPlatformApplication) for post-build initialization Feature
Static
Host.Services property for accessing the service provider from anywhere after app initialization Feature
ILifecycleExecutor for dispatching platform lifecycle events to registered handlers with error handling and logging Feature
Shared lifecycle interfaces:
IAppForeground and IAppBackground Feature iOS
Apple lifecycle interfaces:
IContinueActivity, IOnFinishedLaunching Feature Android
Android lifecycle interfaces:
IOnApplicationCreated, IOnActivityOnCreate, IOnActivityRequestPermissionsResult, IOnActivityNewIntent, IOnActivityResult