iPadだけで江添亮のC++をお勉強する(iSH)

# はじめに
最近話題の[江添亮のC++入門](https://www.amazon.co.jp/dp/4048930710/)を買いました。
ハロワの前にmakeを教えるのとかすごい好きです。
しかもこれwebで[全文公開されてる](https://ezoeryou.github.io/cpp-intro/index.html)んですよね。 すごい。 (本文はGPLv3)
単純なhtmlなのでどこでも読めちゃいます。 よい。

最初はふつうに机では紙書籍、ゴロゴロしながらmacやiPadで読んでたのですが、
iPadでg++がさらっと動いちゃって これiPadだけで完結できるんじゃ... →できた\\('ω')/
ので記事にしました。

ついでにネット環境のないオフラインでもローカルなhtmlを表示がうまくいったので織り込みました。
(もちろんアプリとかでやってもいいと思います)


# 手順
## 1. iPad買う
* キーボード付きケースがいいかんじ
* もちろんUSB頑張って繋げて外付けしてもいいです
* ソフトウェアキーボードは...
* Androidは知らないです \_(:3 」∠ )\_ 

## 2. [iSH](https://ish.app/)入れる
iSHは現在(2019/09/30)ベータテスト中
1. [TestFlight](https://apps.apple.com/jp/app/testflight/id899247664)を入れる
1. [https://ish.app/](https://ish.app/)の「Join the TestFlight beta!」の下のアイコンをタップする  
(もし入らなかったらTestFlightのテストユーザー数制限10,000人のせいかも...)

## 3. apkで諸々入れる `apk add vim` みたいにインストールできる
1. iSHを開く
1. `apk add vim git make g++ php bash`する
  * 宗教上の理由で`emacs`が使いたい方は  
    `echo "alias emacs=vim" > .bashrc; source .bashrc`する(冗談)
  * もちろん`apk add emacs`でもよい
1. あと好きなのいれる（ないかも）
1. 初期のシェルがashなのでお好みで`echo "bash" > ~/.ash; bash`とかする

## 4. [江添亮のC++入門](https://ezoeryou.github.io/cpp-intro/index.html)をありがたくwgetする
1. 真心込めて`wget https://ezoeryou.github.io/cpp-intro/index.html`  
   を実行し、聖書をゲットする
  * 宗教上の理由で`Curl`の方が心がこもる方は  
    `curl https://ezoeryou.github.io/cpp-intro/index.html`する  
    ただし入ってるかは知らない（確認してないだけ入ってると思う）
1. `php -S localhost:80`して、お好みのブラウザで[http://localhost/](http://localhost/)を開く
1. htmlが見える\\('ω')/ か確認する
1. 確認できたら、一旦`Ctrl-C`して閉じる
1. 適当なところに下記のようなシェルスクリプトを用意して(`local_server.sh`とか)  
   `index.html`のあるディレクトリで実行する。  
   .bashrcとかに`bash local_server.sh`みたいに書いてログイン時に自動実行してもいいかもしれない  
   あんまり詳しくないので まさかり待ってます \_(:3 」∠ )\_ 

```
#!/bin/bash
php -S localhost:80 > /dev/null 2>&1 &
```

## 5. ありがたく写経する
1. iSHを開きながら聖書見る 詳しくは[iPad でマルチタスク機能を使う](https://support.apple.com/ja-jp/HT207582)を参照
  1. Dock(正式にはApp スイッチャーというらしい)にお好みのブラウザを入れる
  1. iSHを開く
  1. Dockを出してお好みのブラウザを触ったまま上にドラッグしてマルチタスク状態にする
1. 気の赴くままに写経をすすめる  
雰囲気はこんな感じです
![005A1920-0974-44F6-9587-AE217CB72883.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202726/1a00a6d1-d1b1-16b3-1036-f56bb4bc9e11.png)

# めも
* iPad Pro 12.9inを買った よい
  * iSHというターミナルエミュレーターがつよい
    * いわゆる脱獄、root化はいらない
    * iPadの中でgit,gcc,g++,clang,python,phpなどなど動いた
    * どこまで出来るかは調査中
* 最近話題の[江添亮のC++入門](https://www.amazon.co.jp/dp/4048930710/)を買った よい
  * [全文公開されている](https://ezoeryou.github.io/cpp-intro/) 太っ腹
  * 書籍も買ったので実質電子書籍と(紙)書籍の両方を使えることになる
  * 書籍は700ページ弱で1kg超の重さがある 持ち歩くにはつらい ← 移動先全てに配備？
  * デスクトップでは書籍、他はmacなりiPadなりで読み進める
* iPadでg++が動いた(激震)
  * これiPadだけで全部できるんじゃないかな → できた\\('ω')/
  * 最近のiPadつよい...

# おわりに
* 今や聖書を石板にwgetする時代
* iPadがつよくなってる (Androidは知らない)
  * gcc8.3.0 clang8.0がapkで入る
  * vim8.1がapkで入る (emacsはC-x,C-cしか知らない子です \_(:3 」∠ )\_ )
  * vimのプラグインも動く deinであっさり つよい
     * vimprocのコンパイルのみmakefileいじった
  * ローカルのhtml表示はphpだとうまくいったけどpythonだとエラーになった
  * 昨今PC持ってない学生が問題になってるけど、確かに垣根が低くなってる。
      * でも物理的なキーボードは必須だと思う...
* 時代はなんでもオンライン、かもだけどネットなしで動く信頼性は侮れない
  * Qiitaの様に編集中に`問題が起きたため、このWebページが再読み込みされました`とかならない  
      * ほんと勘弁して欲しい  0(:3　)～ ('､3_ヽ)_ ← 保存しろ
  * そもそもオンラインでよければ[[Wandbox]三へ( へ՞ਊ ՞)へ ﾊｯﾊｯ](https://wandbox.org/)がある
      * 三へ( へ՞ਊ ՞)へ これなに...
  * アプリがiSHだけで完結するのはそれはそれでよい (TestFlightは見えない (๑>◡<๑) )
* 初投稿だけどQiitaの使い方あってるだろうか...
* golangが動かない `This program can only be run on processors with MMX support.`
  * iPadでgolangが動けば更につよつよになると思う
  * 一応[to-doリスト](https://github.com/tbodt/ish/projects/7)にあるので、そのうち対応されるかも...
  * armじゃなくてx86をエミュレートしているらしい つよい
* iSHはβ版で、TestFlightにはテストユーザー数10,000人の制限があるらしいので、  
  もしかしたら使えないかも\_(┐「ε:)\_
* iPadは過渡期にある感じかも
  * ダム端末としては今までもsshで使えたけど、これからはコンパイラが動く よい ⸜(๑’ᵕ’๑)⸝
  * [Pythonista3](https://apps.apple.com/jp/app/pythonista-3/id1085978097)とかもいいけど iSHの方が正統進化な感じがする
  * ネイティブなGUIアプリの開発ができるようになる日も近いかも
      * electronなら開発だけは一応いけそう（ただしiSHではnode.jsはまだ動かない）
* 江添亮さんに感謝


# 履歴
2019/09/30 Qiita初投稿 下書き 気が向いたらまともな文章にする