Shiny is a Xamarin Framework designed to make dealing with device & background services easy by bringing things like dependency injection, logging, and lots of utilities to bring your workflows to the background in friendly, testable, way!
Shiny isn't all about backgrounding, DI, RX, and all of that cool stuff. It actually provides a ton of utility functions as well.
Beacons are low powered IoT devices that emit a signal over Bluetooth advertising that contains a specific (and very small piece of data) that is like an address. You attach that address to a "location" of some type. They are like an invisible light house. If you have a device that can "see" those signals, you can find out how close you are to it.
GPS & Geofencing is a common need for mobile and IoT platforms alike. However, mobile platforms with backgrounding in this area are always painful and that is being nice. We've tried several plugins over the years, but they have all some sort of pain point. Shiny aims to solve all of these as it provides a lot of base infrastructure to make things... shiny ;)
Performing background jobs on mobile is a necessity these days whether you are synchronizing data with your background, triggering notifications to say happy birthday, or just tracking your user for every step they make. With Shiny, I set out to make this process a breeze. Android has such a beautiful scheduled jobs engine that keeps improving. iOS is painful mainly because Apple hates your code that isn't UI. UWP does have a background tasks which work quite well, but lack some structure. I attempted to bring most of the "pretty" from Android to Xamarin cross platform!
Ever wanted to write a backgrounding experience that is consistent across all of the .NET platforms you work with? Between Xamarin Android, Xamarin iOS, and the Universal Windows Platform (UWP) - there are a variety of issues that I've seen commonly occuring that makes this difficult. As .NET developers, we often want our dependency injection, our async/awaits, and our general way of doing things in our ecosystem. The mobile platforms really flipped us on our head. Android has services & broadcast receivers, iOS has too many different ways of coming at backgrounding, and UWP is somewhere in between.