⬅   Back to Projects

Swift macOSBluetooth

Gauntlet Gauge

The native Bluetooth menu on MacOS only displays the first reported battery level regardless of how many battery levels are reported by the device. There is no way to view the other battery levels, even by editing your settings or changing the Bluetooth settings.

This is a problem I wanted solve for those with split wireless keyboards. Since we connect our keyboard to the computer as one Bluetooth device, it’s hard to monitor the battery level of the peripheral keyboard especially since my keyboard doesn’t have any battery level indicators on it.

Overview

Gauntlet Gauge is a MacOS I developed that creates a menu bar item showing the battery level of both the main and peripheral sides of the keyboard. There is also an option to receive low battery notifications at an adjustable level.

Design Goals

First and foremost I wanted to make sure the app was developed natively in MacOS and have sensible defaults so most users can simply download the app and have it working. I kept all the menus as simple as possible and only added things that were necessary for the function of the app.

Architecture

While this was a pretty simple app, I learned how to use a bunch of different device apis that I wasn’t familiar with:

  • Bluetooth device discovery via macOS IOBluetooth APIs
  • Status bar UI using NSStatusItem
  • Notifications managed through UserNotifications

Challenges

After completing the app, I struggled to get it listed on the app store due to Apple’s rigourous review process. I had to go through a couple iterations with their support team but it was taking a while to get responses.

Links:

⬅   Back to Projects