Shiny.NET
v2.0.2639 (May 5, 2021)

Core

  • [BREAKING] Jobs no longer return Task of bool, they now only return Task
  • [BREAKING][Android] All previous monikers have been removed, only android 10+ targets are supported now, this includes only AndroidX compatibility
  • [BREAKING] Caching has been removed. Use Microsoft.Extensions.Caching
  • [FEATURE] Source Generators - Generate all of the boilerplate needed by Shiny for iOS & Android with nothing more than a single assembly attribute. Simply install Shiny (not Shiny.Core) on your head iOS & Android projects
  • [BREAKING] All Shiny logging has been replaced with Microsoft.Extensions.Logging
  • [BREAKING] Settings is now gone - enter key/value stores with file, memory, settings, and secure storage

BluetoothLE

  • [BREAKING] The original library has been split into 2 separate libraries (Client - Shiny.BluetoothLE and Server - Shiny.BluetoothLE.Hosting) with some common ties
  • [BREAKING] DiscoverServices is now called GetServices and returns IEnumerable instead of a single service
  • [BREAKING] DiscoverCharacteristics is now called GetCharacteristics and returns IEnumerable instead of a single characteristic
  • [Feature] You don't like RX - there are new async extensions to skip the RX
  • [Feature] ManagedScan now properly manages an observable collection of peripherals using all the best practices for safely updating the collection and even removing peripherals that haven't been seen for a configured time period
  • [Feature] ManagedPeripheral now manages everything during the reconnection process like resubscription to characteristics and all of the internal discovery is done for you. No more mass setup per peripheral connection.

Beacons

  • [BREAKING] Beacons are now separated into 2 different injection points, services.UseBeaconMonitoring()/IBeaconMonitoringManager and services.UseBeaconRanging()/IBeaconRangingManager
  • [Feature][Android] Uses foreground services to achieve real time beacon scanning while your app is in the background
  • [Feature] ManagedScan now properly manages an observable collection of beacons using all the best practices for safely updating the collection and even removing beacons that haven't been seen for a configured time period

Locations

  • [BREAKING] IsListening is gone in favor of CurrentListener configuration
  • [Feature][Android] Now uses foreground service to achieve fast "background" GPS
  • [Feature] Minimum Distance is now supported on Android and iOS

Notifications

  • [BREAKING][Feature] Channels - this exists to fit with the Android channels model and iOS category model
  • [Feature][Android] More Android specific configuration added

Push

  • [BREAKING] Delegate now returns a type of PushNotification for OnReceived
  • [BREAKING] Delegate now returns a type of PushNotificationEntry for OnEntry
  • [BREAKING] WhenReceived foreground listener returns type of PushNotification
  • [Feature] New Firebase provider for iOS and Android (Shiny.Push.FirebaseMessaging)
  • Azure Notification Hubs provider is now fully released

NFC

  • Full Release