iPad Proでシステム開発

2020-06-11

iPad ProとMagic Keyboardを購入して、なんとしてでもこのマシンでWebやアプリの開発を快適に行いたいと考えている今日この頃。

私はまだまだニワカではあるが現在のiPadでの開発環境をご紹介する。

はじめに

2020年現在、iPadで開発とは言ってもほぼ全てのファクターでデスクトップPCやラップトップPCには遠く及ばないと思う。以下はあくまで『iPadでもPCと同様のことができる』レベルに主眼を置いている。

対象はWeb開発、バックエンド開発、簡単なインフラ開発・保守。なので以下のものは抑えたい。

  • SSHクライアント
  • SQLクライアント
  • FTPクライアント
  • テキストエディタ
  • IDE環境

またiPad端末内のみで考えるとすぐに限界にぶち当たるので、サーバー環境を構築してリモート操作を前提としている。

ターミナル(SSHクライアント)

Blink

SSH接続などのためのターミナルアプリは「Blink」で良いでしょう。2,000円を超えるが、買い切りアプリだ。ローカルでの擬似的なターミナル操作が可能で、ssh keygenコマンドでキーファイルも作成可能。configファイルを作成してsshコマンドを使用していた自分にとっては「Blink」のような味気ない方がかえって好きだったりする。「Termius」も使用していたが私は断然「Blink」だ。

SQLクライアント

TablePlus

DBに接続するクライアントは、複数使ってみたけど「Table Plus」がもっと出来がいいと感じた。これひとつでDB系の操作は事足りそう。問題は買い切り価格がなく、月額450円または年額4500円かかる。

テキストエディタ

Textastic

プログラムコードをガッツリ書くこと以外にちょっとしたテキストを書いたり、一時的なスクリプトをなぐり書きするときに使うエディタは「Textastic」で良いと思う。Windowsでのサクラエディタとか、macでのcot editorのような位置づけで使用するイメージ。後述するがこの「Textastic」はFTPクライアントとしても使用する。

正直メモ帳代わりにしては少しお高めのアプリ。私はあまり使いません。

FTPクライアント

FTP(SFTP)も正直ほとんど使わない。基本的にgithubやgitlabのCIでデプロイするのが基本なので。またそれほど凝る必要がないプロジェクトの場合は、SSH接続で手動でgit pullで良いでしょ。

稀に大きなサイズのファイルやバイナリファイルをアップしたいときにSFTPを使用するので、これは「Textastic」で行う。秘密鍵は前述の「Blink」で作成したものを使用する。

IDE環境・コードエディタ

code-serverかVScodespaces

code-serverとVScodespacesどちらもVSCodeをブラウザで操作するためのものだ。2020年6月現在ではiPad用のVSCodeアプリは存在しないのでVSCodeを使用したければリモートで行う必要がある。(もちろんJetBrainのintelliJもない)

とは言っても通常の通信環境であればエディタの動きや操作性はPCアプリ版とさほど変わらず気にならないレベル。問題は料金だと思われる。

visual studio code spaces(旧VSCode online)はmicrosoft azure が提供するクラウド上でのVSCodeのサービスだ。

https://azure.microsoft.com/ja-jp/pricing/details/visual-studio-online/

2020年6月現在では、一番小さいサイズのプランでの最低料金は$0.085+$0.0088=$0.0938/hになる。日本円にすると1時間あたり10円くらいか。しかもUSリージョンでの価格だ。少しでも操作感をローカルVSCodeに寄せたいのに、USリージョンは論外だ。

一方、code-serverは自前で立てたサーバーでVSCode(のような何か)を起動できるオープンソースのシステム。私の場合は完全に自由な環境を使用してさらにVScodespacesより少し安く構築できそうだったのでcode-serverを立てることにした。まぁAWSやGCPでlinux系のサーバーを立てらるなら簡単にできます。

https://github.com/cdr/code-server

GCPでcode-server

GCPでcode-serverを動作させるためだけのインスタンスを作成すると、ノーマルな環境は東京リージョンで$0.07/hくらいで構築できる。あとIPアドレスは頑張ってエフェメラルで運用している。インスタンスの起動時にcode-serverを起動するスクリプトを設定しておけば、GCPのアプリでインスタンスのスイッチをONOFFで使用する時だけ簡単に起動できる。

そしてインスタンスにdockerをインストールしてあらゆる環境を構築してVSCodeから操作できる。例えば.Net Core環境とかNodeJSでVueJSコンパイルとかpython環境とか。

またこの環境のメリットとしてインスタンス環境のスペックを自在に変更できることだ。仮に50GBものメモリを食う処理をしたい時でもボタン一つで一時的に実行可能環境を構築できる。また、TPUをすぐに立ち上げて機械学習のtrainingなども簡単にできる。

code-server用のブラウザ

このcode-serverを表示するブラウザについてはsafariを使用している。理由は上下のツールバーのほとんどを最小化できて、変な動きが少ないと感じているからだ。これに関してはどのブラウザが一番適しているか調査中。
以下はipad Pro11inchのsafariで開いたcode-server。
ipad pro-11inch safariでのcode-server

iPadで開発のまとめ

操作感について

上記で紹介したアプリや環境は『Magic Keyboard』を使用する前提だ。でないと使いにくさは格段に上がってしまう。

その上ではっきりと書くが、「TablePlus」以外はPCでの操作性には遠く及ばない。iPadローカル内のディレクトリを自由に操作できない時点でもう敵わないのだが。

全体の価格

上記のアプリ、環境を1年間使用する場合のコストは以下だ。

価格(2020年6月現在)
Blink 2,440円(買切)
TablePlus 4,500円(年額)
Textastic 1,220円(買切)
Code-server 12,775円(年額)
(1日5h毎日起動する場合)
1年目のコスト 20,935円

PCなら上記と同様のことをするのに一切コストは発生しないはずだ。やはりiPadでのシステム開発はまだまだ時期尚早なのか。