前言

iPad被知乎、b站很多人标榜为生产力,其实很早之前我一直觉得surface go才算生产力,毕竟可以编程。自己很偏激的把iPad看作电子垃圾。

但是,由于预算有限,我还是买了ipad2020 128G🤡,毕竟同等价位买surface go2的话,只能买个乞丐版的,而且还是裸机。

ipad买了之后我就有点小后悔,因为我发现我平时用ipad干的最多的就是读pdf,看视频。这完全可以被一个更便宜的安卓平板代替。

后来在想ipad上可不可以像surface go2那样配个键盘编程,于是就花买了一个罗技的蓝牙键盘,手感还不错,ipad、笔记本都可以用。一开始,我发现可以在leetcode网页上在线编程,但是这种在线编程有些难受;我便开始寻找新的解决方案。在ipad搜到了几个编程软件,但是都要付费,还挺贵,我就犹豫了。

就在今天,我刷知乎的时候,看到了github上的一个开源项目【code-server

code-server

code-server 实际上就是专门为浏览器设计优化的 VS Code,可以直接通过浏览器访问。

在远程 Linux 服务器上面部署 code-server 之后,code-server 实际上就相当于一个「中转站」,为我们提供一个直接在 Linux 服务器上面修改文件、访问数据库、执行指令等等操作的「窗口」,而由于这一「窗口」同样在 Linux 服务器上面运行,使用任何一个浏览器都可以打开,所以 iPad 也不例外。

这样,我们就能够借助在远程服务器上运行的 code-server,直接使用远程服务器上面的各种资源(包括服务器上强大的原生 Linux 环境、CPU / GPU 等计算资源、「无尽」的电量等等)进行开发工作。(当然,这也要求我们 iPad 端全程拥有网络连接。)

所以说需要你有个服务器,非常巧的是我服务器基本上算是吃灰的状态,上面就跑了两个网址的服务。

准备

我的服务器系统是ubuntu,在github【code-server release】中下载最新版的压缩包,并上传到服务器。

我选的是code-server-3.10.0-linux-amd64.tar.gz

然后,你要在服务器上下载好screen,如果没下的话,执行一下快速安装命令就好

sudo apt-get install screen

安装

进入code-server压缩包的目录,然后执行解压命令

tar -xvzf code-server-3.10.0-linux-amd64.tar.gz

再进入解压后的目录

cd code-server-3.10.0-linux-amd64

然后使用screen后台运行

screen -S vscode

然后运行code-server

export PASSWORD="yourpassword" && ./code-server --port 888 --host 0.0.0.0 
  • export PASSWORD="yourpassword"可以指定密码,将yourpassword替换为你的密码,引号不要去掉

    不加的话会默认生成一个,可以在运行后看到yourpassword为你的密码

  • --port 888为 指定端口运行,我这里是运行在888端口

  • --host 0.0.0.0 默认是127.0.0.1,只能本地访问,无法外网访问,所以得改成0.0.0.0,才能各个浏览器都能访问


之后访问你的服务器公网ip:端口号就可以访问了,当然也可以用nginx 代理到自己的域名上。

其他的操作和vscode没什么区别。

我自己配置了编写java用到的插件和配置。

下面是用到的插件

image-20210517200928040

下面是配置文件,主要是"java.home": "java.requirements.JDK11Warning" "java.semanticHighlighting.enabled"这几个。

{
    "java.home": "/usr/java/jdk1.8.0_121",
    "java.requirements.JDK11Warning": false,
    "java.semanticHighlighting.enabled": true,
    "files.exclude": {
        "**/.classpath": true,
        "**/.project": true,
        "**/.settings": true,
        "**/.factorypath": true
    },
    "java.completion.importOrder": [
        "java",
        "javax",
        "com",
        "org"
    ],
    "java.completion.favoriteStaticMembers": [
        "org.junit.Assert.*",
        "org.junit.Assume.*",
        "org.junit.jupiter.api.Assertions.*",
        "org.junit.jupiter.api.Assumptions.*",
        "org.junit.jupiter.api.DynamicContainer.*",
        "org.junit.jupiter.api.DynamicTest.*",
        "org.mockito.Mockito.*",
        "org.mockito.ArgumentMatchers.*",
        "org.mockito.Answers.*"
    ]
}

在ipad上编程

那么,怎么在ipad上运行呢。有两种方法:

  1. 直接在浏览器访问你服务器code-server的网址。
  2. 在ipad App Store上搜索 Servediter

我推荐第二种,Servediter是一款专门为 iPad 优化的用来连接 code-server 的 iOS 原生应用。我们使用 VSApp 可以直接连接我们自己的 code-server 实例,自动登录,打造畅快的在线 VS Code 体验。

Servediter原本是仅支持连接至它的开发者所部署的 code-server 上面的,因此也包含了 App 内购,最近才更新支持自部署服务器的连接。既然我们都已经自己部署了自己的 code-server,那么我们直接在菜单中选择「Self Hosted Server」,并依次填写:

  • 我们刚刚部署 code-server 的:

    • code-server URL 刚刚在 Safari 中打开的 URL:{服务器 IP 地址}:{code-server 端口}
    • Instance password 刚刚开启 code-server 时设置的密码
  • 以及,我们服务器自己的:

    • Host:服务器 IP 地址
    • Username:默认登录用户名
    • Port:登录 SSH 端口(默认 22 端口)
    • Authentication:登录服务器时使用的密码或公钥私钥对
image-20210516204421041

这样,就可以愉快的在ipad上写代码了。

QQ图片20210516204848