Skip to content

Repository files navigation

BusySocialBattery

An iPhone app that turns your phone into the dial for a Busy Bar social-energy meter. Pick one of seven levels, from critical to full, and the matching 72×16 artwork appears on the bar's front LED display — and stays there until you change or clear it.

This is a port of the desktop Social Battery app (MIT-licensed, artwork included) to iOS, built on the same app skeleton as BusyWords.

How it works

  • The seven original PNG states are bundled with the app and uploaded to the bar's user_assets via POST /api/assets/upload (once per launch — they're tiny).
  • Tapping a level draws that image on the front display via POST /api/display/draw as an image element with timeout: 0, so your level persists even after the app closes. Re-sends replace the element in place — no flicker.
  • Rapid taps are coalesced: newest level wins, at most one request in flight.
  • The bar's scroll wheel works too: while the app is open, it listens to the bar's status stream (like the desktop app) and each dial detent steps the level up or down.
  • The app also polls the bar's screen every few seconds and adopts whatever level is showing, so changes made by another client appear on the phone.
  • Status/error text under the picker clears itself after 30 seconds, or as soon as you tap something new.

Setup

  1. Open BusySocialBattery.xcodeproj in Xcode 16 or later.
  2. Select the BusySocialBattery target > Signing & Capabilities and pick your development team.
  3. Build and run on your iPhone (the simulator works too if your Mac is on the same network as the bar).
  4. On first launch the app asks for a Busy account API token (required — create one at docs.busy.app/bar/dev/api-tokens). All traffic goes through the Busy Cloud.
  5. Tap Send test draw to verify, then pick your level.

The token is stored in the iOS Keychain, not in UserDefaults. Local Wi-Fi mode still exists in the code as the testing transport (no UI) — see DEVELOPMENT.md.

Notes

  • The level stays on the bar on purpose. Use Clear Busy Bar display to take it down.
  • Priority: draws default to 50, above the built-in apps (10). While a BUSY work session is active the firmware refuses draws at any priority — see DEVELOPMENT.md.
  • The app asks for local network permission on the first send; until you accept, sends appear to time out.
  • Don't run the desktop Social Battery app at the same time — both draw the same element on the bar and the last writer wins.

License

The battery artwork comes from the BUSY-Bar-Custom-Apps repository under its MIT license.

Releases

Packages

Contributors

Languages