-
Notifications
You must be signed in to change notification settings - Fork 390
Description
Summary | Status |
---|---|
Customer / job-to-be-done: App developers need to keep their users informed about number of new items/etc via badges on the taskbar regardless of whether their app is currently open Problem: Win32 apps have a different API for using badges on taskbar, with completely different functionality than UWP apps. Win32 apps can't simply set a number (they have to use custom icons), and UWP apps can only use preset badge/number options (they can't use custom icons). How does our solution make things easier? All types of apps will benefit from a single, easy-to-use badge API, that supports straightforward numbers and common symbols in addition to custom icons. |
❌ Problem validation ❌ Docs ❌ Dev spec ❌ Solution validation ❌ Implementation ❌ Samples |
Target customer
Packaging | App types |
---|---|
✅ Packaged apps ✅ Unpackaged apps |
✅ WPF ✅ Win32 (C++) ✅ WinForms ✅ Console ✅ UWP ⚠ Cross-plat (Electron, MAUI, React Native, etc) ⚠ PowerShell |
While this work should be consumable by cross-platform platforms to improve experiences there, we should have a separate feature specifically for ensuring badges are built in "natively" and developers don't have to do additional custom work to access the Windows native layer.
Customer's job-to-be-done
Developer needs to keep their users informed via badges regardless of whether their app is currently open. They may need advanced functionality like custom icons, or might just need simple functionality like setting a number.
Problems that exist today
Problem | Validated? |
---|---|
TODO: Fill this out | ❌ TODO |
Summary
Converge badge APIs across Win32 and UWP, and also provide objects for the APIs rather than XML (bring in the Toolkit helpers into Reunion itself).
public class BadgeUpdater
{
public void Update(byte newValue) {...}
public void Update(BadgeGlyph newValue) {...}
//...
public enum BadgeGlyph
{
None,
Activity,
Alarm,
//...
}
//...
}
Rationale
Manipulating XML
text doesn't seem either compile-time safe nor adequate when programming in a programming language.
XML
isn't a programming language, it's a serialization medium, like YAML
, JSON
or plain text.
Editing plain text in terms of XML doesn't provide compile-time safety nor does it support IntelliSense.
Hence, for API purity I suggest do add these two type-safe overloads to the API, basically implementing the two functions documented in the documentation.
Additional ask for this here: microsoft/microsoft-ui-xaml#1919