🧵 Since this feature got sherlocked before I even launched it, here are a few demos I captured a while back of the desktop widgets feature I've been working on for @airbuddy for over a year 😂 (I'll probably still ship this for macOS 12 and 13)
🧵 Since this feature got sherlocked before I even launched it, here are a few demos I captured a while back of the desktop widgets feature I've been working on for @airbuddy for over a year 😂 (I'll probably still ship this for macOS 12 and 13)
One of the biggest challenges was dealing with other things obstructing the widgets and vice-versa. Here’s how I handled the PiP window, AirBuddy's own Action HUD and changing the Dock position
Something I like about my implementation is the ability to use a pinch gesture to change the size of the widget, and the subtle jell-o effect when dragging them for rearranging. There's a satisfying haptic feedback on the Magic Trackpad/Mouse when they detach. This demo also shows the same set of widgets being mirrored between separate displays (but they can be configured to have different sets on separate displays)
@_inside this is the first time I’ve noticed Ivory not displaying inline videos.
Here's how I implemented the configuration, borrowing a lot from how they worked in Notification Center
But definitely my favorite part about the project is my Now Playing widget, which uses subject detection in the artwork in order to create some interesting transitions and UI effects
And here's my Now Playing widget in the small variant, where the controls are themed according to the artwork and blend with the subject in interesting ways
I started on this project because when Apple brought WidgetKit to macOS, it pretty much ruined my ability to have decent AirBuddy widgets, so the solution was to come up with my own system. Hopefully WidgetKit has improved enough in macOS 14 and I'll be able to adopt it and use my own system only for previous OS versions. We'll see…
@_inside wow! That’s some next level attention to detail and dedication. I wish one day to work on something like that!
@_inside That transition is amazing! How did you manage to couple subject detection with it, and do it so fluidly?
@via I wouldn't call myself a fan, but I listen to a lot of K-Pop, including Twice 😅
@samspencer It happens asynchronously (of course) and the widget delays showing the next track until the artwork layers are ready, which usually takes under a second. If it takes too long, the widget skips the transition altogether. Both subject detection and color cube results are also cached for each artwork it displays.