Aquila.UpdateManager 1.0.0

dotnet add package Aquila.UpdateManager --version 1.0.0
                    
NuGet\Install-Package Aquila.UpdateManager -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Aquila.UpdateManager" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Aquila.UpdateManager" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Aquila.UpdateManager" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Aquila.UpdateManager --version 1.0.0
                    
#r "nuget: Aquila.UpdateManager, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Aquila.UpdateManager@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Aquila.UpdateManager&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Aquila.UpdateManager&version=1.0.0
                    
Install as a Cake Tool

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

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

  1. Reads installed app version from the platform
  2. Fetches latest version (currently simulated)
  3. Compares versions using System.Version
  4. Fires OnUpdateAvailable if 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");

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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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