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.
- The seven original PNG states are bundled with the app and uploaded to the
bar's
user_assetsviaPOST /api/assets/upload(once per launch — they're tiny). - Tapping a level draws that image on the front display via
POST /api/display/drawas an image element withtimeout: 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.
- Open
BusySocialBattery.xcodeprojin Xcode 16 or later. - Select the BusySocialBattery target > Signing & Capabilities and pick your development team.
- Build and run on your iPhone (the simulator works too if your Mac is on the same network as the bar).
- 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.
- 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.
- 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.
The battery artwork comes from the BUSY-Bar-Custom-Apps repository under its MIT license.