Juno 1.1

February 14, 2024

If you’re new, Juno is a visionOS app for YouTube!

Juno’s initial launch blew my socks off. It was such a cool feeling to release an app on day one of the Apple Vision Pro’s launch, and having people be so excited about it and have such great feedback made it that much better. After coding like crazy all week to get it submitted, then driving 10 hours to New Hampshire from Canada, sitting down and reading all the comments in my hotel room made me really happy and even more excited to keep building onto the app for this cool new platform.

It was a little brutal though realizing the long drive back I had to finish first before I could get much work done though, but I made it home just in time for a delightful snowstorm!

After that, I got to work, and one week later Juno 1.1 is now available and addresses a bunch of the great feedback given and makes the app that much better. I’ve also got some fun stuff cooking for 1.2 and beyond, being able to actually use it on the device makes building it that much more fun. :)

Here are the changes in 1.1:

Quality options

Video of Casey Neistat video playing in Juno with the new quality options overlaid

Juno makes a best guess at what resolution to play back at, and while that’s still present it felt a bit better in the simulator than it did on the real device so a lot of folks requested manual control over the playback quality, and Juno 1.1 adds exactly that! Want 4K? Have at it! 240p aficionado? Got you covered too.

Volume control

Added quicker access to volume controls, so now you can tweak Juno’s volume right from the video player (you can still also change it by reaching up to the top of the device’s dial and then look at the volume icon to adjust). Right now this affects the video player’s volume specifically, not the whole system’s, but I’m looking into how to improve that.

Drag and drop support

If someone sends you a funny YouTube video, just drag and drop the link onto Juno to open it!

Captions/subtitles

Video of Sanago video playing in Juno in Korean with English subtitles showing

Haven’t quite learned Korean yet but still want to know what the person is saying? Or simply want some auto-generated captions for your own language? Juno has you covered now.

URL scheme

If you want to open a video in Juno via Shortcuts or another app, simply change the https:// part of the URL to juno://, so for instance https://www.youtube.com/watch?v=dtp6b76pMak becomes juno://www.youtube.com/watch?v=dtp6b76pMak.

Redesigned end of video screen

When a video ends you can now quickly close the video or restart the video with a friendly little screen.

Even faster video load times

Found an area of my code that I was able to increase the efficiency of substantially and videos should load even faster now! 🏎️

Video player UI improvements

  • You can now more easily jump between playback speeds
  • Improved video scrubbing control (volume control also uses it) with a new custom view that expands on selection called JunoSlider (planning to open source soon).
  • Corner radius is less dramatic during video playback so as to crop out less of the video
  • When video playback controls fade out, the system ‘grab bar’ now also fades out as it could be distracting to your immersion

Less accidental input

This is a funny one. When designing Juno I had a bunch of fun ideas to make video playback nicer, and most of them went over well!

On the other side, I had the idea to make it so you could “scrub anywhere” on the video screen to go backward and forward in time, a beloved feature in Apollo which worked great in the visionOS simulator with a mouse and keyboard, but on the actual device when you’re pinching and looking around at all sorts of stuff it introduced a lot of accidental input and was much more of a pain than an actual feature. So I nixed this one, and instead made the video scrubber control at the bottom even better.

Another feature similar to that was how on iOS if the video controls are hidden, and you tap the middle of the screen, it assumes you want to pause and does so. I added this to Juno, because it felt great in the simulator, but yeah, same situation where a lot of people thought this was also an annoying bug, and just looking at the pause button is already pretty fast, so not much need for this one.

A better memory

Juno now remembers your playback speed and volume settings from the previous video and automatically applies them.

Bug fixes

In addition to the above there’s also a bunch of bug fixes for things folks with keen eyes were kind enough to point out!

  • Fixed bug where you could be signed out temporarily if tapping on the Home button
  • Fixed bug where video controls (like the close button) could disappear sometimes, particularly after resizing
  • Fixed bug where video title could sometimes be wrong
  • Fixed bug where you couldn’t tap the video categories at the top of the home page
  • Fixed bug where video could get cropped down on resize
  • Fixed bug where video controls would still automatically fade away when paused
  • Fixed bug where the icon for going forward could be backward
  • Fixed bug where playback bar could be stretched
  • Fixed bug where video controls could persist after closing video
  • A bunch of other smaller fixes and tweaks

Thank You ❤️

The receipt to Juno really has been phenomenal and kind, I really thank you for that, it’s been a ton of fun developing and hearing what you think.

If you’re enjoying the work, leaving a positive review on the App Store would be awesome, and if you haven’t checked it out yet, I’d love if you did and let me know what you think.

I’ve got a bunch of more fun ideas cooking for Juno! Keep the feedback coming!

juno.vision 🥽