Using VS Code 1.39.0 In the cdr server package release 2.1692

So this is a bombshell.

I can run Microsoft VS Code on my iPad. Real, actual VS Code, down to the built-in git client, terminal, extensions and multi-file search. I was first alerted to the possibility by Owen Williams’ article back in June.

Well, don’t get too excited, it’s 90% the real thing.

Running VS Code (hosted) as a standalone web app.

You see, the earliest versions of VS Code were based on a fork of GitHub’s Atom, a JS based editor. And even though VS Code has come a long way, it’s interface is still just HTML, CSS and JS, even if the heavy lifting is dealt with behind the scenes (mostly in GO?). And that means it’s essentially a web app that can be served to a web browser and even linked from your home screen as a standalone web-app.

But the problem with it being not only a web-app but a relatively unsanctioned one at that, is that the developer experience has a few downsides:

You need to be online (or at least serve it from a separate computer).

You need to keep it running on the server (we’ll talk about this in a moment), as well as secure from other users.

Every time you return to the app, you briefly see a “reconnecting” dialog as the app wakes and looks for the VS code app server.

Your experience is directly related to the speed of connection to your server.

You can’t use any keyboard short-cuts (that’s a big ouch).

You can’t touch/drag scroll bars.

The settings menu is currently buggy (you can’t change any setting, but there’s a workaround here in the footnotes)

The main hamburger menu disappears once you’ve used it (oops).

Various repaint glitches, touch-targets not all sized for touch screen usage, other small weirdnesses of running a very complex beta web-app.

Extensions in VS Code. In terms of functionality, the hosted version is missing almost nothing over the app.

Many of these are purely beta-testing bugs, but there’s evidence that Microsoft are actively testing this set-up with iPads, so expect to see improvements in the future. Could this eventually be a native app? I’d venture that getting it to work in a native app package with the file picker API etc is definitely within sight, but forking the capabilities of the app to be so very different when running natively on the iPad (eg could the iOS version do debugging, git, terminal, extensions in the same way?) are more likely to be holding Microsoft back from launching it. Who knows, but if anyone could get Apple to bend rules to suit webdev, it’s 2020 Microsoft.

Now we’ve covered the downsides, what are the benefits?

Built in git-client, so you can pull, commit and push demo from your IDE directly on the remote server.

Built in terminal, so you can run your Node.js toolchain on the remote server from within your IDE.

err.. VS Code — that means a top-tier code editor with almost endless extensions and theming.

Multi file search and replace. One of many things missing in native iOS code editor apps.

In practice, once you’re set-up and in a flow, you’re pulling, editing, saving, running Node.js tool chains all within VS Code as a standalone web-app (without need to think that it’s all happening remotely), then alt-tabbing to Safari/Inspect Browser to check the results, then alt-tabbing back to VS Code exactly where you left it, to commit and push right there in the IDE. You’ll get used to briefly seeing the “reconnecting” dialogs, but on a good connection, it’s a minor annoyance. It’s surprisingly seamless.