2014年にiPad Air 2を買ってから、リビングや出先ではノートPCやiMacの代わりにタブレットを使う場面が増えた。ブラウジングや読書に関しては、MacBookやiMacよりもiPadの方が素直に快適だと感じるようになった。そして今回、新しいiPad Proを購入したので、もう一度iPadでプログラミングもできないか挑戦してみようと思う。
この半年間は転職の関係もあり、Go言語を書くことが多くなったので、今回はiPad上でGo言語アプリを書くことに挑戦してみようと思う。まずは先行事例を調べてみる。
Working Copy + エディタ + ビルド/テスト用サーバーという構成
Coding on an iPad – Marc Hedlund – Medium
2015年の記事だが、この記事で紹介されているやり方は下記のような構成だった。
- Working CopyでGitレポジトリからプロジェクトをiPad上にcloneする
- Textasticでコードを編集する
- コードをbuild / test用のサーバーに転送する
- サーバーにSSH接続し、サーバー上でbuild / testして動作確認する
- 問題無かったらWorking Copyでコードをコミットし、GitレポジトリにPushする
他にも最近の記事もいくつか読んでみたが、アプリは違えど基本的なプログラミングスタイルはこの構成が主流のようだったので、まずはこの内容に従って試してみた。Working Copyは、簡単にGitHubアカウントと連携できるようになっており、GitHub上のレポジトリをcloneしてきてTextasticで編集、GitHubにpushするという作業までは至ってスムーズに行えた。
Textasticでの編集は、シンタックスハイライティングなどが使えるとはいえ、コード補完やgofmt、golintなどが使えないのはストレスだ。普段MacでVSCodeの快適な補完に慣れているとなかなか辛いが、頑張れば書ける…。
Textasticの最新版(Textastic 7)にはSFTPでのファイルアップロードの機能、SSHクライアントの機能が搭載されているので、PromptとTransmitは不要だった。SFTP/SSHの機能は微妙に不便な部分もありつつも、実用上使えるものだった。なお、goのbuildができるサーバーは自前で用意しなければいけない。今回は、ちょうどGoの実験用に使っていたVPSサーバーが一台あったので、それを使った。
エディタの補助の弱さとビルド/テストのためのステップの多さがネック
しばらくこの構成でGo言語のコーディングをやってみたが、出先で簡単なプログラムを書く、あるいは既存のプログラムのごく一部をちょっとだけいじりたい、というレベルであればこの構成でもやっていけそうだ。
問題点はコード補完やフォーマットなどのエディタの補助が弱いことと、テスト実行までのステップが多い点だ。前者はプロジェクトの大小関係なく発生する。後者はプロジェクトの規模が大きくなり、ソースコードファイルの数が多い場合に顕著に問題になる。
エディタの補助が弱い点については、Goで書かれた各ツールをそのままiPad上で動かすことができないという問題がある以上、各エディタの改善で根本的に解決できるような問題ではなく、今後もあまり期待を持てない。これらのツールをAPI化してネット経由で使えるようにすれば、多少解決はできそうだが、あまりそのような試みはなさそうだ。iOSのDocument Providersの機能を使えば、良い感じにできそうな気もするので、今度少し検討・実験してみようと思う。
ファイルの転送〜build / testの実行のためのステップの多さは、UIや機能によって解決できる見込みがある箇所だし、実際過去の記事を読む限りでは、この1-2年でも大きく改善してきている部分の一つのようだ。実際、もしエディタ上に「変更があるファイルをアップロードして、SSHログインしてテストを実行する」という一連の処理をタップ一つでできるような機能が搭載されたら、劇的に作業の効率は改善されそう。こちらは技術的な難易度が高い話ではないため、今後の改善にとても期待したい。
しばらくはなるべくiPad Proで積極的にGo言語のコードを書いてみて、アプリやツールを作るというオプションも含めて、快適な開発環境にたどり着きたい。