人事「情報漏洩防止のためにノートPCは持ち込み禁止です。もちろん寮でも禁止です。」
新入社員「ええ~っ!!!」
人事「スマホ、タブレットならいいです。」
新入社員「なんじゃそれ」
用意するもの
- スマホ or タブレット
- Bluetoothキーボード
Hacker's keyboardというアプリを使えばソフトウェアキーボードでもできるそうですが、ソフトウェアキーボードでプログラミングするのは現実的ではありません。
使用するアプリ
今回はTermuxというターミナルエミュレータを使います。
https://play.google.com/store/apps/details?id=com.termux&hl=ja
Termuxのメリット
- aptでパッケージが管理できる。
- ドキュメントがそこそこ落ちている。
- アップデートが新しい。
- vimがデフォルトで使える。
他には「Android Terminal Emulater」というものがあるそうです。古いバージョンのAndroidはこちらしか対応していませんが、アップデートも2015年で止まっているようです。
環境構築
ストレージにアクセスできるようにする
インストールした時点では、権限の問題でTermuxからAndroidのstorageにアクセスすることはできません。そのため、アクセスできるようにするには設定が必要になります。
とはいえ全く難しいことではなく、termux-setup-storage
と唱えるだけです。するとTermuxにファイルアクセスを許可するかAndroidからプロンプトが出るので、許可するとホームディレクトリにstorageというディレクトリができ、その下にリンクが張られます。
ホーム直下に置きたい場合は、普通のリンクとして扱えばいいだけなので、mv
で移動しましょう。
パッケージ群
全部aptでできます。デフォルトでvimが使えますが、Emacs派の人はEmacsもインストールできます。
clangコンパイラ
Termuxでは現在gccが使えません。代わりにllvmとclangを使います。
apt install libllvm clang
Cのソースファイルのコンパイルはgcc
ではなくclang
とします。
clang mysrc.c
C++の場合はclang++とします。
clang++ mysrc.cpp
Python
Python本体はaptでインストールでき、pipも使えます。しかしライブラリの整備が結構面倒です。pythonのライブラリはCでビルドするものも多いので、上述のclangのインストールが必要です。
NumPy
インストールに7分くらいかかります。
pip install numpy
matplotlib
libpngとfreetypeがいります。またfreetypeはpkg-configがないとmatplotlibをインストールできません。
pip install matplotlib```
# 問題点
* GCCが使えない。ゆえにfortranは使えない。
* Emacsが重い。起動に5秒以上かかる。
* Emacsでは日本語が使えない。
* ファイルストレージ上ではファイルを実行できない。```chmod u+x```ができない。
* ハードウェアキーではバックスラッシュが打てない。ゆえに改行記号などはその都度ソフトキーを出して打たなければならない。
とはいえSSHが使えるので、最悪VPSでも借りてSSHでやりましょう。
# 参考サイト
Termux-setup-storage
https://wiki.termux.com/wiki/Termux-setup-storage
freetype cannot be found by build #3029
https://github.com/matplotlib/matplotlib/issues/3029