Aquila.UpdateManager
1.0.0
dotnet add package Aquila.UpdateManager --version 1.0.0
NuGet\Install-Package Aquila.UpdateManager -Version 1.0.0
<PackageReference Include="Aquila.UpdateManager" Version="1.0.0" />
<PackageVersion Include="Aquila.UpdateManager" Version="1.0.0" />
<PackageReference Include="Aquila.UpdateManager" />
paket add Aquila.UpdateManager --version 1.0.0
#r "nuget: Aquila.UpdateManager, 1.0.0"
#:package Aquila.UpdateManager@1.0.0
#addin nuget:?package=Aquila.UpdateManager&version=1.0.0
#tool nuget:?package=Aquila.UpdateManager&version=1.0.0
Aquila.UpdateManager
Aquila.UpdateManager is a lightweight, production-ready cross-platform update checker for .NET MAUI applications. It supports Android (Google Play) and Windows (Microsoft Store) and is designed to integrate cleanly with your existing UI layer (Snackbars, Toasts, Dialogs, etc.).
โก Built for real MAUI apps ๐งฉ Clean separation of logic & UI ๐ฆ NuGet-ready, multi-targeted library
โจ Features
- โ Cross-platform (Android + Windows)
- ๐ Async update check (
CheckAsync) - ๐ฃ Event-based notification (
OnUpdateAvailable) - ๐ช Store redirection (Play Store / Microsoft Store)
- ๐งฑ Platform-specific implementations using conditional compilation
- ๐งฉ UI-agnostic (works with Aquila.MsgBits, CommunityToolkit, custom UI)
- ๐งช Easy to extend with real server APIs
๐ฆ Supported Platforms
| Platform | Target Framework |
|---|---|
| Android | net8.0-android |
| Windows | net8.0-windows10.0.19041.0 |
๐ฅ Installation
Via NuGet (Recommended)
dotnet add package Aquila.UpdateManager
or via Visual Studio โ Manage NuGet Packages.
๐ Quick Start
1๏ธโฃ Subscribe to update events
using Aquila.UpdateManager;
UpdateManager.Current.OnUpdateAvailable += (_, version) =>
{
Console.WriteLine($"New version available: {version}");
};
2๏ธโฃ Trigger update check
await UpdateManager.Current.CheckAsync();
3๏ธโฃ Open store manually (optional)
UpdateManager.Current.OpenStore();
๐ Example: Integration with Aquila.MsgBits
Aquila.UpdateManager does NOT depend on UI libraries by design. You decide how to notify the user.
Example using Aquila.MsgBits.Snackbar
using Aquila.UpdateManager;
using Aquila.MsgBits;
UpdateManager.Current.OnUpdateAvailable += (_, version) =>
{
Snackbar.Show(
$"Update available (v{version})",
actionText: "Update",
action: UpdateManager.Current.OpenStore
);
};
โ Clean โ Decoupled โ Testable
๐ง How It Works
๐ Version Check Flow
- Reads installed app version from the platform
- Fetches latest version (currently simulated)
- Compares versions using
System.Version - Fires
OnUpdateAvailableif a newer version exists
๐๏ธ Architecture Overview
UpdateManager (Shared)
โ
โโโ IUpdateService
โ
โโโ Android UpdateService
โ โโโ Uses PackageManager + Play Store URI
โ
โโโ Windows UpdateService
โโโ Uses Package.Current + Microsoft Store URI
โ Platform logic isolated โ Shared API stays clean
๐งช Simulated Version Check
By default, the latest version is hardcoded for demonstration:
return new Version("1.1.0");
๐ Recommended Production Upgrade
Replace this with:
- REST API
- Firebase Remote Config
- App Center
- Custom backend
Example:
var latest = await httpClient.GetStringAsync("/api/app/version");
return new Version(latest);
๐ช Store Redirection
Android
- Opens Google Play via:
market://details?id=your.package.name
- Falls back to browser if Play Store app is unavailable
Windows
- Opens Microsoft Store via:
ms-windows-store://pdp/?productid=YOUR_PRODUCT_ID
โ ๏ธ Important Notes
- The library does not force UI
- No dialogs, snackbars, or popups are shown automatically
- You have full control over UX
- Suitable for:
- Enterprise apps
- White-label apps
- Store-distributed apps
๐งฉ Extending the Library
You can easily add:
- ๐ HTTP-based version provider
- ๐งฉ Dependency Injection support
- โฑ๏ธ Scheduled / background checks
- ๐ฒ Android in-app updates (Play Core)
- ๐งช Unit-testable version sources
๐ License
MIT (Restricted) ยฉ Aquila Innovations
Unauthorized copying, modification, distribution, or reuse of this code or its logic is strictly prohibited without permission.
๐ Summary
โ Production-ready MAUI update checker โ Clean, extensible architecture โ Android + Windows support โ UI-framework agnostic โ Perfect for NuGet distribution
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0-android34.0 is compatible. net8.0-windows10.0.19041 is compatible. net9.0-android was computed. net9.0-windows was computed. net10.0-android was computed. net10.0-windows was computed. |
-
net8.0-android34.0
- Aquila.MsgBits (>= 1.1.4)
- Microsoft.Maui.Controls (>= 8.0.100)
- Microsoft.Maui.Controls.Compatibility (>= 8.0.100)
-
net8.0-windows10.0.19041
- Aquila.MsgBits (>= 1.1.4)
- Microsoft.Maui.Controls (>= 8.0.100)
- Microsoft.Maui.Controls.Compatibility (>= 8.0.100)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 136 | 2/2/2026 |