Plugin.Maui.Spine.Widgets
0.1.15
dotnet add package Plugin.Maui.Spine.Widgets --version 0.1.15
NuGet\Install-Package Plugin.Maui.Spine.Widgets -Version 0.1.15
<PackageReference Include="Plugin.Maui.Spine.Widgets" Version="0.1.15" />
<PackageVersion Include="Plugin.Maui.Spine.Widgets" Version="0.1.15" />
<PackageReference Include="Plugin.Maui.Spine.Widgets" />
paket add Plugin.Maui.Spine.Widgets --version 0.1.15
#r "nuget: Plugin.Maui.Spine.Widgets, 0.1.15"
#:package Plugin.Maui.Spine.Widgets@0.1.15
#addin nuget:?package=Plugin.Maui.Spine.Widgets&version=0.1.15
#tool nuget:?package=Plugin.Maui.Spine.Widgets&version=0.1.15
Plugin.Maui.Spine.Widgets
Home-screen widgets, Live Activities and Control Center / Quick Settings controls for .NET MAUI, built from C#. The app builds a small view tree, Spine serializes it, and a generic native renderer draws it: SwiftUI in a WidgetKit extension on iOS (compiled with swiftc during the app's build, no Xcode project) and RemoteViews on Android. No app-specific Swift, no Android platform code.
dotnet add package Plugin.Maui.Spine.Widgets
builder
.UseSpine(options => options.AddAssembly(typeof(MauiProgram).Assembly)); // registers Widgets too
// .UseSpineWidgets(o => o.OpenWith<HomePage>()) // only to change the options
<ItemGroup>
<SpineWidget Include="next-start" DisplayName="Next start" Families="Small,Medium" />
</ItemGroup>
[Widget("next-start")]
public sealed class NextStartWidget(IRaceService races, IWidgetService widgets) : IWidgetProvider
{
public async Task<WidgetTimeline> BuildTimelineAsync(WidgetContext context, CancellationToken cancellationToken)
{
var start = await races.NextStartAsync(cancellationToken);
return WidgetTimeline
.Single(new Dictionary<WidgetFamily, WidgetNode>
{
[WidgetFamily.Small] = W.VStack(6,
W.Text("Next start").Caption().Secondary(),
W.Timer(start.Time).Title().Bold()),
})
.Refresh(TimeSpan.FromMinutes(30))
.OpenUrl(widgets.LinkFor(context.Kind));
}
}
Controls — a toggle or a button in iOS 18's Control Center, on the Lock Screen and the Action button, and an Android Quick Settings tile — come from the same package: a <SpineControl Include="goal-alerts" Type="Toggle" /> item and a [Control("goal-alerts")] class implementing IControlProvider. A tap runs the provider's OnActionAsync in the app's process without opening the app.
On iOS the app needs an App Group entitlement shared with the extension; the package's build targets write it. The documentation covers the developer-portal steps device builds need.
Platforms: iOS 17+ (home-screen and Lock Screen widgets, Live Activities; controls on iOS 18+) and Android 5+ (home-screen widgets; Live Activities on Android 16+ as Live Updates; Quick Settings tiles on Android 7+). Every other platform, Mac Catalyst included, gets no-op services and IWidgetService.IsSupported == false.
Documentation
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0-android36.0 is compatible. net10.0-ios26.0 is compatible. net10.0-maccatalyst26.0 is compatible. net10.0-windows10.0.19041 is compatible. |
-
net10.0-android36.0
- Microsoft.Maui.Controls (>= 10.0.50)
- Plugin.Maui.Spine (>= 0.1.15)
- Plugin.Maui.Spine.Common (>= 0.1.15)
-
net10.0-ios26.0
- Microsoft.Maui.Controls (>= 10.0.50)
- Plugin.Maui.Spine (>= 0.1.15)
- Plugin.Maui.Spine.Common (>= 0.1.15)
-
net10.0-maccatalyst26.0
- Microsoft.Maui.Controls (>= 10.0.50)
- Plugin.Maui.Spine (>= 0.1.15)
- Plugin.Maui.Spine.Common (>= 0.1.15)
-
net10.0-windows10.0.19041
- Microsoft.Maui.Controls (>= 10.0.50)
- Plugin.Maui.Spine (>= 0.1.15)
- Plugin.Maui.Spine.Common (>= 0.1.15)
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 |
|---|---|---|
| 0.1.15 | 44 | 10/16/2026 |
| 0.1.14 | 86 | 10/9/2026 |
| 0.1.13 | 81 | 10/8/2026 |
| 0.1.12 | 99 | 9/28/2026 |
| 0.1.11 | 103 | 9/23/2026 |
| 0.1.10 | 102 | 9/20/2026 |
| 0.1.9 | 102 | 9/20/2026 |
| 0.1.8 | 109 | 9/20/2026 |
| 0.1.7 | 109 | 9/19/2026 |
| 0.1.6 | 102 | 9/19/2026 |
| 0.1.5 | 102 | 9/19/2026 |
| 0.1.4 | 108 | 9/15/2026 |
| 0.1.3 | 97 | 9/15/2026 |
| 0.1.2 | 110 | 9/14/2026 |
| 0.1.1 | 101 | 9/14/2026 |
| 0.1.0 | 99 | 9/14/2026 |