0x00 前言
之所以讨论这个话题,是因为我经常在手机上研究分析 Github 开源的代码。最初,我觉得偶尔查看代码时,Github App 的文本编辑器已经足够使用。
然而,随着时间的推移,我发现手机屏幕的局限性使得无法直接查看代码的全貌,也无法进行函数跳转。
当代码较长且逻辑链跨越多个文件时,需要花费大量脑力去推演代码,而且由于无法调试,往往只能依靠猜测。
于是,我开始探索屏幕更大的 iPad 是否适合进行开发。
0x10 云开发产品
其实早在五年前,我就写过一篇《如何使用浏览器进行远程开发》,其中提到:
- 可以在云主机上部署 vscode-web-docker(code-server) web 服务
- 将需要编辑的代码挂载到容器中
- 最后通过浏览器访问 web 服务,实现云端开发
当时可选的产品并不多,不过随着移动办公需求的增加,云开发领域涌现出了越来越多的新产品:
0x11 免费额度
这些产品大多提供了一些免费额度:
产品 | 免费时长(普通账号) | 免费存储空间 | 官方链接 |
---|---|---|---|
CodeSandbox | 每月 40 小时 | 工作区是沙盒环境,无限制 | 价格说明 |
Coding Cloud Studio | 开发:每月 1280 核时 构建:每月 160 核时 集成:每月 10 核时 |
10 GB | 价格说明 |
Github Codespaces | 每月 120 核时 | 15 GB | 价格说明 |
GitPod | 每月 10 小时(关联 LinkedIn 账户有 50 小时) | 工作区是临时环境,无限制 | 价格说明 |
code-server | 云主机租赁时长 | 云主机存储空间 | Github 源码 |
TitanIDE | 云主机租赁时长 | 云主机存储空间 | 功能说明 |
0x12 云产品分类
我尝试了这些产品,从使用角度可以大致分为三类:
- 需要从其他平台导入 Git 仓库的克隆,从克隆仓库生成云开发环境,但编辑代码不会影响原平台的代码仓库:
- CodeSandbox: 国外版本
- Coding Cloud Studio: 国内版本,背后是鹅厂
- 与 Github 强依赖,从 Github 源码生成云开发环境,编辑代码后需要通过 git push 直接提交到 Github 仓库:
- Github Codespaces: Github 原生更香
- GitPod: 通过 url 前缀
https://gitpod.io/#${Github仓库地址}
可快速生成工作区,但价格和使用都没有优势
- 需要部署到云主机启动,然后将 Git 仓库源码下载并挂载到工作区,编辑代码后需要通过 git push 直接提交到 Git 仓库:
- code-server: 低配的云主机即可
- TitanIDE: 对云主机配置要求较高
在 iPad 上进行开发时,第 2 类和第 3 类产品更为适合。
我个人使用下来,综合体验和价格最好的应该是 Github Codespaces 和 code-server。
0x13 Github Codespaces
我的代码项目主要托管在 Github 上,Codespaces 可以帮助我在沙盒中创建临时工作区:
Codespaces 的工作原理是将 Github 源码仓库 git pull 到容器中,通过浏览器即可访问工作区。
工作区的 IDE 是 VSCode,自带了 Copilot,因此我一般的开发模式是:
- 使用 Copilot 进行辅助开发
- 通过 VSCode 的 Linux 终端 git push 提交代码
- 仓库本身的 Actions 脚本触发流水线,自动进行 CI/CD 发布
这一套组合拳合理地白嫖了 Github 的生态,随时随地都能进行轻量开发。
0x14 code-server
如果你觉得 Codespaces 的免费额度无法满足移动开发需求,可以考虑用续费 Codespaces 的钱租一台云主机部署 code-server。
它们的工作原理差不多,核心区别在于 code-server 的【沙盒】需要自己部署到云主机。
为了方便部署,五年前我还特意封装了 docker 版本: https://github.com/EXP-Tools/vscode-web-docker
code-server 支持任意平台的代码仓库,如 GitLab、Gitee 等。
值得一提的是,在 iPad 上通过 Safari 打开工作区页面,可以通过【添加到主屏幕】将其变成一个桌面应用:
0x20 本地开发产品
然而,有时云开发环境会有延迟,本地开发也是一个不错的选择。
当使用港版账号登录 iPad 的 App Store 时,可以搜索到一款名为 Code App 的应用,一次性售价 HK$38:
它相当于是 VSCode 的阉割版:
- 支持读取本地源码仓库
- 支持通过 ssh/ftp 读取远程代码仓库
- 支持打开 terminal 终端
0x30 终端产品
iPad 系统的核心是 Unix,开发少不了命令输入的终端,这里推荐两款 terminal 工具:
- ShellBean
- ShellBox
这两款工具的功能差不多,主要区别在于 UI,个人感觉 ShellBean 的界面更为美观。
0x31 ShellBean
查看远程服务器状态:
ssh 远程终端:
ftp 文件管理:
0x31 ShellBox
查看远程服务器状态:
ssh 远程终端:
ftp 文件管理: