読者です 読者をやめる 読者になる 読者になる

kondoumh のブログ

- とあるソフトウェアエンジニアのめったに更新されないブログ -

iPad でコードを書くAgain 2

iOS Keyboard Programming Tools Gadget

通勤時間の有効活用

3月に VPS + iPad の作業環境を整えました。

blog.kondoumh.com

この時は数日の出張や帰省の荷物を軽くしたいというモチベーションでした。一応コード書けるけど、iPad 1台では作業が完結しないという結論でした。

最近、勤務地が変わり通勤時間が往復3時間を超えてしまいました。読書やゲームなどの消費活動だけだと間が持ちません。MacBook Pro を持ち歩いたりしてみたのですが、座れないことが多くほとんど使えません。そこで再び iPad Air を生産活動に活用すべく試行錯誤中です。iPad Pro ではなく手持ちの Air で頑張ってみるというテーマです。

物理キーボードは使わない

blog.kondoumh.com

Magic Keyboard と iPad の相性はとても良いのですが、膝上に置いて使えません*1。iPad Pro のキーボードカバーは Air では使えないので Amazon レビューで評価の良かった廉価なキーボードカバーを2つほど試しました。

見た目は MacBook っぽくなってよさげなのですが、本体と合わせるとそこそこ重くなり、付け外しも面倒です。苦手な US 配列しかなく*2 Ctrl キーの位置が全然ダメ。キーピッチが狭いため、フットプリントは MacBook とさほど変わらないのにタイプしづらい。

ということで物理キーボードは今のところ決定打がありません。やはりソフトウェアキーボードをポートレイトで使うのが現実的という結論に達しました。ポートレイトは iPad 使いの最もメジャーな操作スタイル。iPad Air の 9.7 インチというのはポートレイトでもタイプしやすいギリギリのサイズで画面も広く使えます。取り出してすぐ使えるし、立ってても使えます。

かなり使えるピクチャ・イン・ピクチャ

iPad でマルチタスク的なことができれば、作業は格段に捗ります。3月時点では iOS 8 だったので使えませんでしたが、iOS 9 *3からはピクチャ・イン・ピクチャという、画面右側からスライドインしてオーバーレイする領域で別アプリを使うことができます*4

次のスクリーンショットは Prompt で VPS に接続し、とある言語の REPL を動かしているところです*5

f:id:kondoumh:20160921014232p:plain

次がピクチャ・イン・ピクチャで iBooks をオーバーレイし ePub*6 を表示しているところ。ページめくりやテキストの選択コピーもできます。Prompt は Foreground で動作してるので ssh が切れることもないです。

f:id:kondoumh:20160921014255p:plain

iPad 1台あればプログラミング言語の解説書を参照しながら、コードを打ち込み実行することができます。これ、プログラミング言語学習環境としてはかなりイケてる気がします。

ピクチャ・イン・ピクチャは Twitter アプリをスライドインするぐらいにしか使えないと思っていたのですが、意外と有用でした。オーバーレイする画面の比率は変更できませんが、全画面アプリの切り替えに比べ操作が楽でストレスが格段に低いです。

その他のアプリのピクチャ・イン・ピクチャ対応状況を少し調べました。

  • Chrome / Safari:普通に使えます。Web でチュートリアルや Stackoverflow などのページを参照・コピーしつつコードを試せます。
  • Google Play Books:Google 製の ePub リーダー。使えます。。が iOS に最適化できていないからか、ページ読み込みに時間がかかったりして快適とは言えません。
  • iBooks:上記のように普通に使えます。ページめくりスムーズ。iOS ネイティブアプリの強みでしょうか。
  • Kindle:使えません(選択肢に出てこない)。
  • Slack:普通に使えます。チャットで打合せしながら文章の推敲や校正するなどの作業に有効そう。
  • Textastic : テキストエディタ。普通に使えます。エディタで下書きして、Word とか Pages で体裁を整えるといった使い方ができそうです。
  • Working Copy : Git クライアント。普通に使えます。テキストエディタと組み合わせると色々と捗りそう?

オーバーレイするアプリはフル機能使えるので、アプリの組み合わせ次第でコード書き以外の作業にも有効活用できそうですね。iOS 9 以降、iPad Air は軽量かつオールインワンな生産性デバイスとしてハイポテンシャルになっていることに気づかされました。iOS 8 で止まってる人は更新してみるとよいかも。

Local web server で開発中のアプリをプレビューしてみた

ブラウザをピクチャ・イン・ピクチャできるなら開発中の Web アプリのプレビューも行けそう。ということで、gulp-webserver と gulp-watch でタスクを書いて、Emacs を画面分割し、コード編集、Eshell で Gulp task を実行してみました。Three.js を使ったサンプルですが、コードで座標データなどを編集すると、オーバーレイしているブラウザに自動リロードされ、即時再レンダリングされます*7。Tips としては gulp-webserver を外部からアクセスするために host プロパティを localhost とかではなく 0.0.0.0 に指定する必要があります。 iOS のブラウザには開発者モードがないので JavaScript のデバッグはできないですが、iPad 1台でコード修正から動作確認までできてしまうのはけっこうすごいことだと思います。

f:id:kondoumh:20160921013504p:plain

まとめ

iOS のソフトウェアキーボードとピクチャ・イン・ピクチャを駆使すれば、ちょっと混雑した電車内でも作業できます*8。iPad Air まだまだ現役です。

*1:Kick Starter あたりで Magic Keyboard 用 iPad マウンターが出たらマジで Back したいです。

*2:この価格帯のキーボードカバーはグローバルに薄利多売されるものでローカライズされにくいのでしょう

*3:記事書いてるうちに 10 になりました。

*4:iPad Air 2 以降なら スプリット・ビューで画面分割して2つのアプリを同時に表示して完全マルチタスクで使えるのですが、iPad Air は残念ながら対応してません。

*5:Elm の elm-repl です

*6:Manning の Elm in Action です。

*7:iOS の WebView でも WebGL のレンダリングができるいい時代になりました

*8:急ブレーキには気をつけないとですが。