Currently, Windows 10 (UWP) and Android (Xamarin) are supported. The core library also works fine on iOS, Mac and Linux.

How does the new modular architecture work?

The Core library remains the most important part. It contains C# implementations of various beacon formats, including Eddystone™, an open Bluetooth® beacon format from Google, as well as proximity beacons comaptible to the iBeacon™ format by Apple.

The library parses the bytes of the Bluetooth advertisment frames and manages the beacons discovered so far. As a result, a current list of nearby beacons is always accessible to your app.

The UWP and Android extension libraries provide the interface to the Bluetooth implementations of the operating systems. These libs parse the data received through the platforms and pushes it into the cross-platform processing core of the library.

I’ve designed the NuGet package in a way so that your development environment automatically chooses the correct packages for your platform. Therefore, the library is a single NuGet package, which you can easily add to your app through e.g., the Visual Studio NuGet Package Manager.

For more background on the beacon standards, check my previous blog posts How to Parse Bluetooth Beacons and the Video: Everything You Need To Know About Bluetooth 5 & Beacons.

Example Apps

In addition, the full download from GitHub comes with two new example apps, showcasing the use of the lib in a Xamarin app for Android and Windows 10.

Eddystone EID

Recently, Google has also introduced another new frame type: Eddystone-EID transmits an encrypted ephemeral identifier. I’ve added a C# implementation that recognizes and parses the frame contents. In a future version, the library might also add support for the en/decryption of the broadcasted ephemeral ID.

Future

It’s amazing to see the power of the open source community. Advancing the cross-platform Universal Beacon Library together with other experienced developers around the world like Chris Tacke ensures that future apps can get even more interoperable, improving technology accessibility for users.

Multiple next steps have been identified for the library. These include: