A cross-platform .NET framework for device services and background processing on iOS, Android, macOS, and Windows.
Shiny is a cross-platform .NET framework that simplifies working with device hardware services and background processes on iOS, Android, macOS, and Windows. It handles platform-specific complexities like permissions and main thread traversal while providing a clean, testable API for features like Bluetooth LE, location services, and push notifications.
.NET developers building mobile or desktop applications that require background processing or device hardware access across multiple platforms, particularly those using Xamarin or .NET MAUI.
Developers choose Shiny because it provides a consistent, testable API for device services and background processing across all major platforms, handles platform-specific complexities automatically, and brings proper infrastructure patterns like dependency injection and logging to background code.
.NET Framework for Backgrounding & Device Hardware Services (iOS, MacCatalyst, Android, & Windows)
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a unified API for device services across iOS, Android, macOS, and Windows, handling platform-specific complexities like permissions and main thread traversal automatically, as highlighted in the README.
Brings dependency injection and structured logging to background processes, making background code more maintainable and testable, which is a core part of Shiny's philosophy.
Supports a wide range of device services including Bluetooth LE, location tracking, geofencing, and push notifications with multiple providers like Azure and Firebase, as listed in the features.
Offers a clean and testable API surface for your code, ensuring reliability and ease of development, which is emphasized in the README.
Locked into the .NET stack, making it unsuitable for projects using other technologies or requiring multi-language integration, limiting flexibility for mixed-technology teams.
Requires platform-specific configurations and initial setup that can be more complex compared to lighter alternatives, potentially slowing down project starts.
The abstraction layer for cross-platform compatibility might introduce minor performance trade-offs compared to native implementations, especially for resource-intensive tasks.
As a niche framework, it may have slower adoption of new platform features or fewer community resources compared to mainstream alternatives, which could affect long-term support.