Not that long ago Apple introduced trackpad and mouse support in iPadOS 13.4, so I decided to connect my Magic Mouse to my iPad Pro 11" (2018) and even though some apps didn't include real trackpad support yet, it worked like a charm! Even the hover and drag events worked in Safari!.
I decided to try running VS Code on the iPad, and with a mouse it worked almost flawlessly!
Quite a few people asked me how I did that and the answer is code-server.
Run VS Code on any machine anywhere and access it in the browser.
- Code on your Chromebook, tablet, and laptop with a consistent development environment.
- Develop on a Linux machine and pick up from any device with a web browser.
- Take advantage of large cloud servers to speed up tests, compilations, downloads, and more.
- Preserve battery life when you're on the go as all intensive tasks runs on your server.
- Make use of a spare computer you have lying around and turn it into a full development environment.
For a full setup and walkthrough, please see ./doc/guide.md.
We have a script to install code-server for Linux, macOS and FreeBSD.
It tries to use the system package manager if possible.
First run to print out the install process:
curl -fsSL https://code-server.dev/install.sh | sh -s -- --dry-run
Now to actually install:
It works by running the language server (debugger and IntelliSense), extensions and the file system part in the cloud on a VPS, and rendering the UI in your browser. It is able to do that because VS Code is actually written using web technologies and packaged with Electron.
It can be a Mac Mini in your attic, a rented server from AWS or anything that runs Linux or macOS, some people have even tried using a Raspberry Pi with an iPad and it works like a charm.
Download the latest prebuilt binary from the GitHub Releases to your server. Untar/unzip it somewhere.
cd into the code-server directory. There will be an executable file called
Variant A. If you don't want to set up SSH forwarding (faster, more convenient, requires a registered domain, less secure)
First of all, get an SSL certificate
You can get one for free from Let's Encrypt using acme.sh. Their README is pretty easy to follow, so I won't get into much detail.
Then, you can run code-server with
PASSWORD="correct-horse-battery-staple" ./code-server --host 0.0.0.0 --port [PORT] --cert ~/.acme.sh/[DOMAIN]/[DOMAIN].cer --cert-key ~/.acme.sh/[DOMAIN]/[DOMAIN].key
Et voila! You can now open your browser, enter the password you set in the environment variable and code
In your SSH client, run
ssh -L [PORT]:localhost:[PORT] root@[YOUR SERVER]
An SSH session will open, where you can start code-server with
./code-server --host 127.0.0.1 --port [PORT] --auth none
http://localhost:[PORT] in your browser and code!
If you have a keyboard and a mouse, the experience is flawless... almost. Here are a few quirks:
- Custom fonts installed via iFont don’t work in Safari (fixed by loading them via CSS)
- Scrolling wheel doesn’t work in editor (arrow keys and scrollbar to the rescue)
- Lack of escape key (ctrl+[ works, or you can remap ESC and Caps Lock in iPadOS Settings)
Yeah! I am a backend developer by day, and it's great coding on an iPad. Frontenders will disagree because iPad Safari lacks devtools, but let's hope that will change in iPadOS 14 :)
This is my first article on dev.to and I'd love it if you share your feedback in the comments! Also, feel free to ask any questions :)