Introduction
STILL UNDER CONSTRUCTION - Please remember, this is not a product and it is just one person doing this for fun and his professional work. You are a consumer, not a customer, so please be respectful of that
iOS & Android
Shiny for the client side has its own hosting model to allow it to work across the whole .NET client side ecosystem by providing a common platform with all the services you need out-of-the-box. Shiny is more of a framework with plugins built aroundit, than it is a “one off” plugin for a XF or MAUI application. It is recommended not recommended you take a dependency on Shiny for a single plugin.
The best way to get started with Shiny application is to use out templates
dotnet new install Shiny.Templates
However, if you have an existing application, please try ourApp Builder to help generate all of the pieces you need.
Shiny Modules currently include
- Bluetooth LE Client & Host
- Background Jobs
- Local & Push Notifications
- HTTP Transfers (background) with progress
- GPS & Geofencing
- and more…!
Mediator (.NET Client Apps & Server)
Mediator is a behavioral design pattern that lets you reduce chaotic dependencies between objects. The pattern restricts direct communications between the objects and forces them to collaborate only via a mediator object.
Shiny Mediator is a mediator pattern implementation, but for built with ALL .NET apps in mind. We provide a TON of middleware out-of-box to get you up and rolling withhardly any effort whatsoever. Checkout ourGetting Started guide to see how easy it is. Imagine using 1 line of code to add offline, caching, or validation to your code!
Features
Section titled “Features”- A Mediator for your ALL .NET Apps
- Request/Response Handling
- Event Publication
- Async Enumerable Stream Requests
- Request & event middleware with some great “out of the box” scenarios for your app
- Instead of Assembly Scanning, we have source generators to automatically wireup the necessary registrations for you!
- Think of “weak” message subscriptions without the fuss or mess to cleanup
- Lightweight, No external dependencies, tiny bit of reflection
- Help remove service overrun and reduce your constructor fat
- Easy to Unit Test
- Built-In Telemetry & Observability via Microsoft.Extensions.Diagnostics
- Checkout ourMAUI,Blazor, &Uno Platform
- Integrations allow your viewmodels or pages to implement an IEventHandler interface(s) without them having to participate in the dependency injection provider
- Middleware built for apps including caching, offline support, & more
- We still have a “messagingcenter” type subscribe off IMediator for cases where you can’t have your current type implement an interface
- Save the Boilerplate + Receive the Power of Middleware
- Dapper Extension for Easy Query Handling
- HTTP Extension for Easy API handling - OpenAPI Contract Generation takes it even one step further
- Map contracts directly to handlers with ourASP.NET Extension
- Plug-in Observability & Telemetry withSentry
- Epic Out-of-the-Box Middleware
Works With
Section titled “Works With”- .NET MAUI - all platforms
- Uno Platform - all platforms
- Dapper, ASP.NET, and more
- MVVM Frameworks like Prism, ReactiveUI, & .NET MAUI Shell
- Blazor - Work In Progress
- Any other .NET platform - but you’ll have to come up with your own “event collector” for the out-of-state stuff
GoneMobile Podcast/YouTube
Sponsors
SpeedyDock is an essential application for drystack marinas, boat clubs, and their clientele, streamlining the process of scheduling and monitoring boat launch requests, reservations, and additional services. It offers a user-friendly alternative to the frequent calls customers used to make, enabling electronic scheduling around the clock. Since its initial release in 2016, SpeedyDock has been accessible across iOS, Android, and web platforms, seamlessly integrating Xamarin and Shiny to manage native functionalities.
A core component of SpeedyDock’s efficiency is Shiny. It powers the app’s capability to work with permissions requests, local notifications, geofencing, and Firebase push, ensuring customers are consistently informed about their request statuses. For marina operators, these timely notifications are instrumental in enhancing service quality when customers set foot on the premises. Shiny has expertly bridged the gap between iOS and Android, offering a structured way to organize and share code, which, in the absence of such a tool, would be intricate due to variances across platforms and different OS versions. It has streamlined our development process for new features and minimized the edge case bugs typically associated with varying Android versions.
Shiny isn’t just a tool for SpeedyDock; it’s a cornerstone of our mobile app development. Its integration has empowered us to deliver a top-tier app with a native experience. Looking ahead, we’re eager to continue our journey with Shiny, leveraging its capabilities for upcoming projects and refining the SpeedyDock experience. It has undeniably been a key factor in our app’s success story.