はじめに
ふとした時に、プログラミングをしたい!!コードを修正したいと思っても、パソコン今持ってないからプログラミングができない!!!イライラ!!!
そんなことを思ってしまう方ににお勧めです。ここではあくまでiPadだけでプログラミング!ではなくPCを持ち歩かなくてもiPadさえあればプログラミングができるのかについてを書きます。
俺的iPadプログラミング環境
iPadでプログラミングするために使っているもの。
iPad pro 2019 11インチ
iPadアプリ
termius (ssh接続用)
https://apps.apple.com/jp/app/termius-ssh-client/id549039908
openVPN (vpn接続用)
https://apps.apple.com/jp/app/openvpn-connect/id590379981
Texstatic (テキストエディタ)
https://apps.apple.com/jp/app/textastic-code-editor-9/id1049254261
working Copy(github用)
https://apps.apple.com/jp/app/working-copy-git-client/id896694807
適当なLinuxパソコン (Linux mint mate20)
導入ソフトウェア
openssh server
git
linux serverが必要
そもそも論、iPad(iPad OS)には基本的にプログラミング言語を実行するためのコンパイラが提供されていません。一部アプリにはそれぞれの言語専用のコンパイラが提供されていますが、実際の開発に使えるレベルとは言えません。また、テキストエディタ(PC でいえば、Visual Studio codeやXcode)もあまり種類がなくPCとの互換性も低いです。そのため、iPad単体でプログラミングをするということはそもそも難しいです。そこで現れるのがLinux serverという存在です。Linuxというのはオープンソースで開発されているOSです。基本的に無料で使うことができ、ほとんどのハードウェアにも対応しています。LinuxにはUbuntu系,Read hat系など数え切れないほどのディストリビューションが存在しますが、各自自分のPCのスペックとOSの機能を見比べて選んでください。では本題であるLinux Serverですが、作り方はたくさんの記事があるので一部を紹介します。
(Linuxのインストール方法)
https://qiita.com/technopocket/items/0ff4dd2a09b0538b726c
(open ssh serverの立て方)
https://qiita.com/sango/items/816136188387221f05b3
(ルータのポートフォワーディング設定方法)
https://www.asus.com/jp/support/FAQ/114093/
linux server + temiusで出来ること。
この二つがあれば、iPadはiPadの形をしたLinuxマシンとなります。なのでiPadがLInuxPCなったと考えて大丈夫です。基本的に処理はサーバー側だけで行い、iPadは通信と画面の表示だけを行うことになります。ではiPadがLinuxになりましたが、これはあくまでCLIのLinuxであり皆さんがいつもプログラミングを行っているGUIの画面ではありません。しかしiPadでプログラミングするときくらいCLIでつよつよエンジニアになった気分でプログラミングを楽しんでみてもいいじゃないですか?
コードを編集する
一つ目の方法としてはtermiusを使いssh接続環境でviもしくはVimでコードを編集する。
もう一つは、Texstatic + Working copyを使い、ローカル環境でコードを編集する。
実行方法
termiusを用いて、Python や C言語のファイルをデバッグ、実行する際は、Python qiita.pyなどで実行できます。また、各種jsを使ったwebページなどをローカルホストを立ててデバッグする際は、termius上で、いつも通りyarn serve(vue.js)を行い,自宅LAN環境にVPN接続し、ローカルホストが立てたページを参照することができます。
図解
最後に
ここで紹介したのはあくまで俺的環境です。Windowsのリモートデスクトップを使いiPadでプログラミングをする方法などiPadの可能性は無限大です。その活用方法を自分で模索していくのが楽しいと思える人がやることであり、あくまでプログラミングをやるならPCだと私は考えています。またここに書いてあることはかなり雑で詳しい説明を省いています。iPadでごりごり開発したいと思ってしまったエンジニアならわかってくれるだろうと思い書いているので、何言ってんだこいつと思った方はぜひいろいろググっていただきネットワークやPC、プログラミングについての知識を深めていただけると幸いです。