Skip to content
Introducing AI Conversations: Natural Language Interaction for Your Apps! Learn More

MAUI Hosting Release Notes

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
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()
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 path
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