Getting into the WWDC groove by investigating SharePlay support in @broadcastsapp. It’s trivially easy to implement, and it seems to just work
Bumped @broadcastsapp to v3.2 to account for the new watch app and SharePlay support, so I can bundle them together. Making sure to keep the scope of this update pretty small, as it's not intended to draw out into an iOS 17 update over the summer
I am still figuring out how other apps implement SharePlay, but I'm reasonably happy with how it works in @broadcastsapp now in this initial version. You can start up a session over iMessage, then any participant can start playback of a station. Station name/address/artwork is shared directly through SharePlay, doesn't need to already be in your library. Could make for a fun 'watch party' mode for audio-only streams like podcasts or live events
There's no visionOS SDK yet, but I can prepare for the ornaments API by making the @broadcastsapp layout more flexible. This may lead to bigger UI changes down the road to the iPad version, which I'll probably roll into a v4.0? For now, it's just decoupling some layout elements
On visionOS, I expect to place the @broadcastsapp playback toolbar in an ornament (simulated at the bottom of the window here instead), and the Now Playing screen to open as a new window — like the Mini Player on macOS. It took just a little bit of rewiring, and expanding code I had for Mac Catalyst, but getting these changes in now should hopefully mean when I build and run upon release of the visionOS SDK that everything ‘just works’
The redesign continues; I added a 'reality' device idiom (that corresponds to iPad) so I can test all my visionOS code paths at will. I'm trying to match what we saw of the visionOS Music app, and predict the navigational layout structure I'll need to light up properly when the SDK launches. I even have my ornaments prepped and ready, just ifdef'd out 😂
I added an AppKit target to the @broadcastsapp codebase just to experiment, and of 245 source files only 11 are portable 💀 All the pre-existing SwiftUI code is uncompilable, because even basic things like size classes don't have a macOS equivalent or translation. I continue to believe that the AppKit SwiftUI target is simply a dead end and needs to be rolled into the Universal app platform instead. I don't want to continue with this bringup experiment at all
If WWDC had got me thinking about SwiftUI again, even slightly, working on the @broadcastsapp watch app has definitively dissuaded me. I'm so unhappy with the development experience that I would discontinue the watch app in a heartbeat if it didn't have users. Every element is a battle, and I've wasted so much time trying to get it to work 'correctly’; if I had UIKit, I would have been done in a day and shipped months ago. Almost at the point where I git revert everything and go back to WatchKit
I think that's what I'm gonna do; shelve the updated watch app for the time being. There are other updates I want to ship and I don't want this holding me back, plus I don't have an actual Watch to do testing on anymore for such a significant revamp so it's probably for the best. Broadcasts v3.2 with SharePlay can continue on without it
Finally after 4 years I've renamed the Broadcasts Xcode project to 'Broadcasts’, and given the whole project structure a cleanup 😄
Tweaked my xrOS test scene to more closely simulate visionOS, so I can prototype my layouts and make sure the right code paths are firing

@stroughtonsmith do you know if it has complex gesture recognition? MKBHD mentioned that if you just look at a search box and speak, it started transcription without any physical input

I’m wondering if you could look at a filter icon, and make a hand motion/gesture to activate certain presets?

@Techronic9876 dedicated app spaces can do skeletal hand tracking. You have to enter an app to enable that, I believe — it doesn't just work in your shared space
@stroughtonsmith @Techronic9876 This makes sense since Apple will have its own defined gestures and apps like games and others will have the chance to define other gestures based on the videos I saw.