Screen Sharing Apps Compared

VNC vs. Sidecar vs. Luna Display vs. TeamViewer

 

The concept of thin clients - devices which contain minimal state, but instead perform most of their functions thanks to a persistent network connection - has always fascinated me. Theoretically these devices can be lighter, cheaper, and easier to manage. With the cloud growing in capability, shrinking in cost, and with networks getting faster, thin clients are certainly a more viable option than ever before.

screensharing.jpg

My long-held vision for an ideal thin client could be described as a “Mac in the sky” - with the hardware I’m holding in my hand being nothing more than a portal to the Mac on my desk. And in recent years, I have been able to get closer to this dream.

Though I do use laptops I'm very much in the desktop camp, partly because they feel like a true “home base”. (Apple’s mid-2000’s digital hub strategy really resonated with me. Their 2010’s strategy of “demoting the Mac to ‘just another device’”, not so much.)

Even as our household has expanded to include multiple desktops, laptops, and iOS devices, I have still held on to the "home base" mentality of my desktop Mac. Over time I've even transformed my primary desktop (a Mac Pro) to a thin client of sorts, moving almost all of my data to a headless Mac Mini server with a Thunderbolt 3-attached RAID. This Mini’s sole purpose is to be my “Mac in the sky”. And it works great! I can jump on any device in the house, access the Mini, and have everything I need. No syncing required.

How I access the Mini depends on what I'm doing. Just browsing files? Mounting a few SMB shares works fine (though Apple's SMB stack is atrocious - perhaps a rant for another time). Listening to Music? AirFoil is amazing. Watching some home videos? Plex does the job. Running some scripts? SSH. But anything more than that, and we enter the realm of screen sharing. Ideally through an iPad.

But whether at home or on the road, on a laptop, an iPad, or even an iPhone, there are lots of options for sharing a computer's screen. And I have tried many of them. However the viability of each is heavily dependent on the use case.

VNC/Screen Sharing

If you can tolerate some lag, Screens 4 is an excellent VNC client for iPadOS

Virtual Network Computing is a standard network protocol for viewing and controlling a different computer's GUI. (At this point I also want to acknowledge that RDP exists, though being on Mac, I don't use it.)

VNC works anywhere on the local network and can be made available on the internet via either VPN or port forwarding (though I wouldn't suggest the latter).

The performance of VNC is acceptable. Depending on network speed, you may have some image artifacts, but you can adjust the quality of the image if necessary.

As a Mac user, the configuration of VNC couldn't be simpler since the server is built into macOS. There is also a built-in client program (Screen Sharing), but third party options – like Screens 4 – offer better features, and are available for Mac, iPhone, and iPad. In fact, on iPadOS Screens has full cursor support, which makes controlling a host Mac with a trackpad or mouse feel almost entirely native.

Because of the frequent lag and image issues, VNC is only good for utility purposes. Video, design, gaming, or really any prolonged usage are all out of the question.

Sidecar

Sidecar, triggered by Shortcuts, Keyboard Maestro, and AppleScript

In macOS Catalina, Apple introduced Sidecar, allowing you to see and control a Mac's screen on your iPad. Unfortunately the scope of this feature is very narrow. Not only do you need to be on the local network, but you need to be within close proximity of the host Mac. That being said, the performance is excellent.

Sidecar is a modern, native screen broadcasting implementation. It supports retina resolutions on your iPad even if your Mac doesn't. But the iPad is the only client, and it is not meant for remote access, just for extending your desktop.

Sidecar does not support touch interaction, nor does it support the iPadOS cursor, leaving the Apple Pencil as the only input method. But I've even had problems with the mapping of the Pencil to the host Mac's cursor. Sometimes there's an uncorrectable offset that makes everything very hard to control. The final nail in the coffin might be that Sidecar needs to be initiated by the Mac...unless you're willing to toy around with Shortcuts, Keyboard Maestro, and AppleScript:

The following AppleScript will launch System Preferences, open the Displays pane, and click the drop down menu to select the iPad.

tell application "System Preferences"
    set current pane to pane "com.apple.preference.displays"
    
    activate
end tell

delay 1

tell application "System Events"
    tell process "System Preferences"
        
        click pop up button 1 of window 1
        delay 1
        click menu item "$YOUR.IPADS.NAME" of menu 1 of pop up button 1 of window 1
    end tell
end tell
delay 1
tell application "System Preferences"
    quit
end tell

This AppleScript is embedded into a Keyboard Maestro Macro. I then have a Shortcut on my iPad which triggers the Keyboard Maestro Macro over SSH, thus activating Sidecar from the iPad itself. But the other limitations of Sidecar remain.

Luna Display

Luna's image quality is excellent, but some peculiarities prevent me from using it daily.

While Sidecar and VNC are "free", Luna Display is an actual hardware product. Like Sidecar, Luna only works on your local network, but I've found the proximity limitations more forgiving than Sidecar.

lunadongle.jpg

The comparisons to Sidecar don't end there, with Luna Display having very good performance with only occasional glitches.

Unlike Sidecar, Luna can be initiated from the client - either an iPad or another Mac. Unfortunately there's no iPhone client, and you do need to keep the helper app running on your host. Additionally, there's no "windowed" mode on the Mac client - Luna will only let you take over your entire screen. And while Luna does support the iPadOS cursor, it's not as sophisticated as Screen 4’s. Luna's host app also likes to automatically display a lot of its own windows – whether you need them or not.

If you're going to be connected to your host Mac for a while, doing work where low latency is important, Luna is a great choice. However, if you're just jumping in to do some housekeeping, VNC is the better tool.

TeamViewer

I mean, it works. But TeamViewer's iPadOS app is a dumpster fire.

There's a whole universe of cloud-based screen sharing tools, the most popular of which might be TeamViewer. Having a cloud service sitting in the middle (managing IPs, authentication, quality, etc.) means you don't need to think much about access range. As long as your network is fairly ordinary, the range is the whole damn internet.

Performance-wise, you're looking at something closer to VNC rather than Luna or Sidecar. It's not bad all things considered – at least when used Mac-to-Mac. On iPad, the TeamViewer app is clumsy and ugly. There is no cursor support, and the accuracy of touch and Pencil support is hit-or-miss.

TeamViewer can be a really good tool for providing remote support since the app is rather easy to download and setup. Though, as of Catalina, the security exceptions required are a nightmare. The very first time it runs, you'll need to configure several permissions in System Preferences.

Which leads me to TeamViewer's overall security: Using a middleman for screen sharing opens up all sorts of privacy questions. Running TeamViewer on a computer 24/7 – on the off-chance you might want to connect to it – is just asking for trouble.

There's no perfect solution to screen sharing, but most of the time VNC is my go-to. It's quick, easy, and works well enough across all platforms. In fact, using the Screens 4 app on iPadOS with a trackpad and keyboard is shockingly close to having a Mac in an iPad form factor. If VNC isn't working, I'll fall back to Luna or Sidecar.

My dream of a “Mac in the sky” is certainly a bit niche. It’s equal parts home server and thin client. I wouldn’t necessarily expect there to be a completely perfect approach to what I’m trying to achieve. Though with Apple Silicon Macs on the way, who knows? Maybe we’ll see an ultra-thin tablet hybrid that can NetBoot from a local server and run macOS nativ– Oh who am I kidding?

Paul Sahner