この記事はITRC Advent Calendar 2021 の7日目の記事となっております。
前の記事はこちら
次の記事はこちら
前書き
結構前にiPadProを購入しました。
ApplePencilを使ってノートを取りつつ教科書を開く
みたいな事ができるので、持ち歩くものが減ってめっちゃ便利やな!!!!って思ってます。
しかし自分はITの民である為、iPadPro1台だけですべてをこなす事は厳しく、どうしてもLaptopを持ち歩く必要が出てきます。
今回はその問題を解決した際のお話となっております。
なお、この話の本題は題目3となっているので、1,2は適当に流し見しても大丈夫です。
はじめに
Laptopを持ち歩かずにiPadProだけで作業ができる様にするには、まず何をすべきなのかを考えました。
- ファイルサーバーなどにアクセスできるようにする
- Linuxなどのshellを操作できるようにする
- VSCodeのような開発環境を開けるようにする
ローカルネットワークに置いてあるファイルサーバーにアクセスできるようにします。
これの解決方法は簡単で、SoftetherなどのVPNサーバーを構築し、L2TP/IPsecでトンネルを掘ればOKなので、今回は省略します。
次にLinuxなどのshellを操作できるようにする方法について考えてみました。
自分は自宅サーバー勢なので、サーバーに作業用のインスタンスを構築して、SSHして作業するようにすればいいかなと考えていました。
iPadには公式のターミナルアプリは有りません。OpenSSHをインストールしてSSHできる様にするという解決方法は取れません。
ですが非公式のSSH Clientアプリがゴロゴロしています。
そのソフトを一つ一つ吟味していくのも良いかもしれませんが、数が数だしさすがに面倒なので、この手法は使いません。
(SSH Serverは鍵認証になっている為、鍵をインポートしたりと初期設定は結構面倒でした)
作業用のサーバーにWebShellを設置してsafariなどのブラウザからwebshellにアクセスして作業をするのはどうでしょう?
ページを開いてログインすれば使えるようになるので、この方法は意外と良さそうなのではないでしょうか。
1の問題を解決するためにVPNを使用している前提となっているので、webshellでも何も問題はなさそうです。
VSCodeのような開発環境を開けるようにする
やっと本題へ入りました。
この開発環境を開けるようにする方法なのですが、
最初は素直にiPadPro用のテキストエディタを使おうと思っていたんですね。
iPadProやしVSCodeくらいあるやろ〜〜〜って思ってたら普通にありませんでした。
アプリを入れて対応できないならwebからなんとかすればいいじゃない
パッと思いつくだけでも以下の三種類の方法が思い浮かびました。
- VPNを使用してローカル環境に立っている開発環境に接続して開発する方法
- VPSなどを借りてpublicな場所に開発環境を構築する方法
- クラウドサービスなどの既存の環境を利用する方法
それぞれにどのようなメリットデメリットがあるか考えてみました。
VPNを使用してローカルな環境に立っている開発環境に接続して開発する方法
この方法は、最初の環境構築の段階が一番面倒臭いですが、環境構築が完了すれば自由にカスタマイズ可能なのが魅力だと思いました。
例えばIDEのような開発環境だけではなく、JenkinsのようなCI/CD環境をローカルに用意したり、git serverを用意したり、リソースの許す限り好き放題できます。
自分はローカル環境にVS Code onlineと、JupyterNotebookをエディタとして運用し、Giteaをlocalのgit serverとして構築し、Jenkinsと紐つけて動かしています。
PythonユーザーならJupyterNotebookだけでも十分かもしれないですね。
VPSなどを借りて開発環境を構築する方法
さくらのVPSやConoHaなど、安いVPSをレンタルして開発環境を構築する方法はどうでしょうか?
月500円くらいの最安値のプランではエディターを動かすだけでギリギリそう・・・っていう風に思いました。
実際にVPSに立てて動かしたことはないですが・・・
ただ、必要最低限の環境を用意することはできそうですね。
これはそのうち検証してみます。
クラウドサービスを利用する方法
これが一番賢いんじゃないかな〜って思います。
色々なサービスを連携して環境を構築する為、ちょっと複雑になってしまいます。
1のローカル環境に開発環境を構築する場合は、雑に環境を作って雑に開発をする事ができるのですが、クラウドサービスを利用する場合はそうはいかず、
ちゃんとGitHubにリポジトリを立てて、エディターのサービスにプロジェクトをimportして、開発をして、テスト環境と連携する設定をして・・・となり、雑に使うことが難しくなります。
ただコードを書くだけなら別ですが・・・
ちなみに、自分が作業をするときは、
- GitHubにリポジトリを立てる
- Gitpodで先ほど立てたGitHubのリポジトリをimportする
- Gitpodでworkspaceを作成する
- 開発する
- GitHubにpushする
見たいな感じになります。
フロントエンドの開発をおこなっている際はこの流れの後に
CircleCIからVercelやNetlifyにデプロイするフローが入ります
物によってはHerokuにデプロイするように設定したりもします。
JupyterNotebookの代わりに、GoogleColaboratoryを使用したりと、
利用するサービスの種類が増えればできる事の幅が広がります。
あとがき
とりあえず書いてみたんですけど、書いてる最中に何がしたかったのか分からなくなってきてしまったので、雑に〆て次回にリベンジという事で
やりたかったこと
iPadだけで作業ができる様にしたい
やった事
自宅サーバーに開発用のインスタンスを立てた。
開発用インスタンスにJupyterNotebook、VSCodeOnline Self-Hosted、を構築
GitpodやColaboratoryのようなクラウドサービスのセットアップを行い、人に見られても困らないような開発環境を用意
コメントを残す