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

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:急ブレーキには気をつけないとですが。

VS Code の統合ターミナルで Bash on Ubuntu on Windows を使う

Tools

VS Code の統合ターミナルはよくできてました。

blog.kondoumh.com

Windows では標準でコマンドプロンプト、PowerShell も使えます。

Windows 10 なら Anniversary Update で搭載された Bash on Ubuntu を使いたいところですよね。

blog.kondoumh.com

VS Code の統合ターミナルで Bash on Ubuntu を指定する方法は↓のブログにありました。

pjdecarlo.com [ファイル] -> [基本設定] -> [ユーザー設定] で以下のように設定します。

    // Integrated.Terminal
    "terminal.integrated.shell.windows": "C:\\WINDOWS\\sysnative\\bash.exe",
    "terminal.integrated.shell.unixlike": "bash.exe"

設定が完了すれば Ctrl+@ キーを押すと統合ターミナルが bash で起動します。

起動時のディレクトリは/mnt/c/Users/<username>のように、bash 側から Windows ファイルシステムをマウントしているパスになっています。ですので、Windows の任意のフォルダを作業フォルダとして使うことができます。

bash を普通に起動したときは日本語入力ダメでしたが、統合ターミナルが対応してるので一応入力できます*1。テキストのコピペも統合ターミナルで新しくサポートされたコンテキストメニューからできますので、標準の端末より使い勝手はかなり上です。

tig や vi も普通に使えます。

f:id:kondoumh:20160904132207p:plain

これで Windows でも OS X でもほぼ同じ環境で作業ができるようになりました。

f:id:kondoumh:20160903121217p:plain

*1:キャレット位置がずれてしまうので今のところ実用的ではありません

マルチプラットフォームのコードエディタ Visual Studio Code に統合ターミナルがやってきた

Tools Programming

VS Code にターミナルが統合された

現バージョン(1.4) まで気づいてませんでしたが、統合ターミナル (Integrated Terminal) 機能は 1.2 で追加されていました。

  • バージョン 1.2 : 統合ターミナル機能追加
  • バージョン 1.3 : 複数のターミナルを開くことができるようになった
  • バージョン 1.4 : IME 対応、コンテキストメニュー実装

code.visualstudio.com

完成度上がってから知ったので、使ってみたインパクト大きかったです。

コードエディタにアドインされたターミナル機能

エディタに統合されたターミナルは新しい機能ではなく、Vim や Emacs にも実装されています。エディタを離れることなく OS のコマンドを実行したいというニーズは古くからあったということです*1。Mac 版 Emacs の場合だと OS X 標準のシェルである bash を実行する機能がありますが、結構不安定で快適に使えるレベルではありません。Emacs ネイティブの eshell を使うと Mac でも Windows でも安定した同じ環境が手に入りますが、Vim とか tig などのエスケープシーケンスの処理が必要なツールは使えなくて、パスが通っているコマンド実行にしか使えないので、結局 OS のシェルを起動することになります。ということで現在コードエディタに統合されたターミナル機能は今ひとつマイナー機能にとどまっていると言えます。

ATOM エディタにもターミナルを使える機能がありましたが、こちらも不安定でした*2

ssh で VPS とかサーバーにログインしてコードを書くときなどは、一つの端末で作業したいので tmux などのターミナルマルチプレクサを使って Emacs と bash をペインで切り替えて作業することが多いですが、切り替えにはワンアクションあるので面倒ですね。

blog.kondoumh.com

プラットフォーム毎のネイティブシェルサポート

VS Code の統合ターミナルはプラットフォームごとに標準のコマンドシェルを起動してくれて、環境変数などもちゃんと反映されているので、ネイティブのターミナルが文字通り統合された感じで使えます。設定を変更することなくデフォルトで使えるのはとても重要だと思います。

Mac だと Terminal とか iTerm2 とかを単独で起動するシーンが激減します。tig などのエスケープシーケンスを多用するツールも問題なく使えるんです。

f:id:kondoumh:20160903222613p:plain

Windows の場合は、コマンドプロンプトを起動するシーンが激減します。まあ、コマンドプロンプトですが・・。

f:id:kondoumh:20160903221055p:plain

PowerShell も普通に使えます。

f:id:kondoumh:20160903221501p:plain

PowerShell のコードを書く場合は ISE の方が捗るのであまり意味ない気もしますが。

blog.kondoumh.com

ライフチェンジングな VS Code 統合ターミナル

VS Code の統合ターミナルは非常に素晴らしい。Microsoft はマルチプラットフォームに OS のネイティブコマンドシェル環境と高機能コードエディタを見事に統合してくれています。地味ながらこれまでにない画期的な機能と言えます。これまで OS X や Windows で Emacs に引きこもってましたが、これからは VS Code に引きこもることになりそう。

ということで、今後 Node.js のコード書くときなどは VS Code 一択になりそうです。さよなら Sublime Text。Emacs は捨てられないですが。

blog.kondoumh.com

VS Code は Electron のトップキラーアプリに躍り出たという印象です。

electron.atom.io

Microsoft がこのエディタを提供しているというのが隔世の感があります。Visual Studio という 高機能 IDE のネーミングを冠したマルチプラットフォームなコードエディタ VS Code ですが、IDE に近づいていくのでしょうか?

マーケティング的な展開も気になるところです。Visual Studio のブランドを外して Microsoft Code などにリネームされる可能性もあるのではないかと考えました。

追記:続編も書きました。

blog.kondoumh.com

f:id:kondoumh:20160903121217p:plain

*1:Emacs はどの OS でもコード書きと実行、そしてメールの読み書きもできる OS 内 OS 的な統合環境として愛用されてきました

*2:ATOM 自体使わなくなってしまったので最新版を検証したわけではありません

Bash on Ubuntu on Windows 10 の可能性

PC Tools

Windows で Ubuntu のバイナリパッケージがネイティブに動作

Windows 10 Anniversary Update の目玉である Ubuntu On Windows。当初「Bash が使える」っていうニュースばかりでスルーしている人も多いと思いますが、Windows NT 系で昔から実装されている POSIX 互換 API を使って Linux のバイナリを動作させる技術です*1。ネイティブに Ubuntu のバイナリが実行できるので高速です(API 変換のオーバーヘッドはあるはずですが)。

VMware のように仮想マシンを起動する必要もなく、10年ぐらい前に流行った coLinux のように別途サービスを起動する必要もありません。Microsoft と Canonical がコラボして Windows に Ubuntu のフルセット機能を提供してくれるという大盤振る舞い。これが熟成してくると CygwinMinGW を使うシーンが減っていきそうです。

ディベロッパーが Mac から Windows マシンにスイッチする流れが

Ubuntu on Windows がカバーする領域は、

  • Linux ネイティブ技術での Web アプリ開発 (Rails とか Node.js とか Perl とか Python とか) をやりたい
  • Rust とか Julia のような LLVM の最新言語を使いたい
  • clang や GCC のツールチェインを使いたい
  • Hadoop とか Spark などの OSS の分散処理系の開発をしたい

などのユースケースです。これまでは Windows なら VMware や VirtualBox の仮想マシン使ってたところをほぼネイティブに近い使い勝手(起動の速さやフットプリントの小ささ)に置き換える技術ということができます。マシンの増強をしなくても良いのです*2。Web デベロッパーは MacBook Pro/Air で Homebrew / MacPorts のようなパッケージ管理システムで開発環境を整えるのが一般的でしたが、今後は Windows ラップトップも有力な選択肢になっていくでしょう。iOS / macOS アプリ開発者以外は積極的に Mac を選ぶ理由がなくなります。

WIndows で Ruby や MySQL など Unix 由来のテクノロジーを使う場合、これまでは個別にインストーラーをダウンロードしなければならず、Linux 版との挙動の違いや機能制限に悩まされました。今後はそのようなことで消耗する必要ははなくなるはずです。

開発環境が OS X(macOS) でプロダクション環境が Linux という場合、どうしても開発時には気づかない環境の差異が表面化することもありますが、開発時点から Linux 環境であればそのようなリスクも少ないでしょう。

導入の流れ

Windows 10 Anniversary Update を導入後*3、設定で開発者モードにした上で Windows Subsystem for Linux を有効化します*4。しかしリリースされたのにまだベータ版?

f:id:kondoumh:20160824004552p:plain

コマンドウィンドウにも「ベータ」の文字が。。

f:id:kondoumh:20160824005046p:plain

本体のインストールは数分で終わります。

f:id:kondoumh:20160824005056p:plain

f:id:kondoumh:20160824005105p:plain

Ubuntu パッケージのインストール

普通に sudo apt-get install でいけます。

Emacs 動きました。

f:id:kondoumh:20160824005120p:plain

f:id:kondoumh:20160824005140p:plain

Git の Text-mode interface である tig も動きました。

f:id:kondoumh:20160824060913p:plain

f:id:kondoumh:20160824060925p:plain

自分は使ってませんが Rails のインストールもいけるっぽいです。

qiita.com

動作イメージ

Ubuntu サブシステムを起動するスピードはコマンドプロンプトと変わらないし、CPU やメモリの負荷も低い感じです。

前述の coLinux は仮想マシンではありませんが、ホスト側の Windows と隔離されたプロセス空間を必要としました。

blog.kondoumh.com

この10年前のエントリでは、メモリ 512MB の ThinkPad X40 で100MBぐらい coLinux 側にメモリを配分するなど苦労しています。そういう苦労はもう過去のものです。

Ubuntu on Windows が coLinux と違うところは、Ubuntu 上のプロセスも Windows のプロセスとして認識されるところです。bash で Emacs を起動すると、タスクマネージャにも bash と emacs が表示されています。

f:id:kondoumh:20160824211323p:plain

こういうの見ると、Cygwin っぽい動作イメージに見えます*5。Cygwin との違いは Microsoft と Canonical が最適なランタイムを提供してくれるところとビルドで苦労しなくて良いところですね。

コマンドプロンプトと同じシェル環境で動くので、フォントが MSゴシックじゃないと日本語表示がちゃんとできません。あと日本語入力は効かないです。putty とかで ssh 接続すればいいのですが、OS X のターミナル感覚で使いたいのでなんとか改善してほしいところです*6

node.js / npm も一応インストールできました。Windows で Node.js を使ってると、プロジェクトフォルダ配下の node_modules のパスが深くなりすぎてパスの長さの条件を超えてしまって詰むということがありますが、Ubuntu on Windows では大丈夫なのかとか懸念はあります。

コマンドプロンプトや PowerShell はどうなる?

Bash on Ubuntu が Windows で普通に使えるようになると、CMD.exe とか PowerShell は今後どうなっていくでしょうか? Windows のネイティブ環境のシェルスクリプティングについては、PowerShell の利便性は圧倒的であり、Ubuntu on Windows は PowerShell を置き換える存在ではないと僕は考えます。

blog.kondoumh.com

CMD.exe にはそろそろ引退していただきたいですが。

*1:昔 SFU (Windows Service for Unix というサブシステムで Unix 互換環境が使用できました

*2:即座にそのような状況になるということではなく熟成が進めばの話ですが

*3:現時点で降ってこなければインストーラをダウンロードして手動アップデートも可能です。

*4:開発者モードを有効にしたら自動で使えるようにして欲しいですね

*5:実際ファイルシステム周りの性能はまだ Cygwin の方が有利という情報も目にしました

*6:ConEmu で使っている人もいるようです。Bash on Ubuntu on Windowsのいろいろ - Qiita

Emacs org-mode で GTD

Tools Job

Emacs の org-mode

Emacs にはタスク管理用のメジャーモード org-mode があり Emacs の パッケージシステムで簡単にインストールできます。

orgmode.org

org は organize (整理する) の意です。公式サイトによれば、

Org-mode は、ノートの保存、TODOリストの管理、プロジェクト計画のためのモードです。高速で効率的なプレーンテキストのシステムを使ってファイルを編集します。

とあります。プレーンテキストを扱うため、あらゆるテキストエディタで閲覧・編集が可能ですが、org-mode で操作することで、ノートやタスクをカラフルにオブジェクトとして扱うことができます。

拡張子が .org のファイルが org-mode 用のファイルとして認識されます。

強力なアウトラインプロセッサ機能

見出しと本文をインラインで自在に編集可能で、見出しの折り畳みと展開も Tab で簡単にトグルできるため、強力なアウトラインプロッセッサとして機能します。

f:id:kondoumh:20160715002851p:plain

末尾に ... が付いている見出しは折り畳まれています。上のイメージでは分かりにくいですが、見出しの階層と順序がエディタ内でキーボードだけで操作できるため、思考を妨げられることなく推敲に集中できます。

Wiki 的機能

Wiki や Blog では各プログラミング言語のシンタックスハイライトが使えるものが多いですよね。Org でもちゃんとサポートされています。 #+BEGIN_SRC <言語> 〜 #+END_SRC でマークアップすることで、サンプルコードを文書中に挿入できます。

file:xxx.png の記法で画像埋め込みも可能。

f:id:kondoumh:20160715003303p:plain

HTML , PDF, Markdown へのエクスポートもサポートされています。簡易な DTP として利用できます。

f:id:kondoumh:20160715003358p:plain

GTD 機能

TODO を見出しとしてサブタスクを箇条書きで階層的に管理して、サブタスクの完了/未完了状態をエディタ内でチェックボックスのような UI で管理できます。こんな感じ。

f:id:kondoumh:20160715002447p:plain

チェックボックスの状態は C-c C-c でトグルでき、サブタスクの消化率も連動して更新されます。サブタスクの追加/削除にも連動してくれます。

自分のミッションを TODO とサブタスクに分解して、一つ一つ潰していく感じです。

進捗はサブタスクの消化率と TODO のステータス(TODO/DOING/DONE) で把握できます。 GTD ツールとしては非常に高い水準にあると思います。

f:id:kondoumh:20160715003648p:plain

モバイル連携機能

Emacs はパソコンでしか使えないので、モバイルとの連携が気になるところですが、公式とサードパーティからアプリが出ています。

MobileOrg : What is MobileOrg?

公式は MobileOrg。Dropbox で連携するのですが、同期が面倒で変なタグがいっぱい埋め込まれてしまうという難点があります。

最近見つけたのが Orgzly。

www.orgzly.com

こちらは、シンクロが簡単で、変なタグ埋め込みもなく良い感じ。今のところ iOS には同等のアプリはないようです。

モバイルでもさくさく編集してシンクロ出来たらかっこいいのですが、閲覧に特化した使い方しかしてません。

Torrello といえば OrgMode から Torrello のタスクを操作できるというツールがあるそうです。

org-trello

最後に、僕の org-mode 設定を晒しておきましょう。

;; org-mode
(setq org-src-fontify-natively t)
(setq org-startup-truncated nil)
(setq org-return-follows-link t)
(setq org-todo-keywords '((type "TODO(t)" "DOING(i)" "|" "DONE(d)" "SOMEDAY(s)" "WON'T(w)")))

TODO の遷移定義ぐらいしかしてません。

f:id:kondoumh:20160714003748p:plain

今更ながら PowerShell に覚醒

Programming

最近仕事で PowerShell で色々とスクリプト書くことが増えてきました。

MS-DOS 時代からあるバッチファイルで頑張るのは厳しくなってるんですが、PowerShell は Windows 7 から標準装備(XP とか Vista にもあったのかも)。Unix のシェルと同様パイプが使えて、Unix 相当のコマンドは完備されており、しかもパイプにオブジェクトが渡せて Map / Filter を駆使して関数型プログラミングも可能。これまでちゃんと使おうと思わなかったのが不思議な感じです。

Windows 7 でも Update すれば PowerShell 4.0 が使えます。ISE (Windows PowerShell Integrated Scripting Environmentnt) でコード補完(IntelliSense)とフォント設定が効くようになるので可能な場合は Update しましょう。

Visual Studio でプロジェクト作るとファイル単位でのお手軽さが失われるし、デバッガも ISE の方がいい感じです。

Visual Studio のプロジェクトファイルを xpath 駆使して変換するための Tips を Qiita に投稿しました。

ファイルを列挙し、読み込んで処理するのは超簡単で XML も xpath とプロパティで簡単に操作できるので非常に生産性が高いです。.NET のクラスも使えるので C# で書いてコンパイルしてアセンブリ配置するとか不要。OS に統合されたスクリプト言語の強みですね。

こういう自動化にぴったりです。

プロダクトコードに疲れた時にシェルを書くのは癒しになります。

最終的に 300行ぐらいのツールになりました。

新しい現場では、Mattermost っていう Slack クローンを導入していて、Jenkins のビルド結果を通知する Bot とかがあるのですが、Excel ファイルを監視して通知してくれる Bot なども PowerShell で作成したりしています。

Mattermost

最近の PowerShell はコマンドヒストリをファイルに保存できたりします。キーバインドについてはサードパーティ製のツールに期待することになりそうですが、ps1 ファイルを ISE で実行するのが標準的な使い方なので、コマンドプロンプトを置き換える存在にはならないかもです。

ちなみに Windows 10 Anniversary Update では Ubuntu サブシステムが使えるようになり Bash などが普通に使えるようになりますが、これは、PowerShell を置き換えるものにはならないと思っています*1

PowerShell は Windows のファイルシステムとか .NET ライブラリとの親和性が高く、Windows での開発や自動化に適しています。Jenkins にも PowerShell プラグインが提供されており、ビルドプロセスに組み込みことも簡単です。

[追記]

PowerShell はプラットフォームとの親和性を活かして、IIS とか Azure の設定を自動化する Infrastructure as Code の基盤としての側面もあります。Chef などのツールに該当するものですね。実行環境の構築に有効活用していきたいところです。

www.powershellmagazine.com

f:id:kondoumh:20160410125254j:plain

*1:Windows で Node とか Rails 開発したい人向けのソリューションだと考えてます

iPad Air と Magic Keyboard JP の組み合わせは最強 2in1 です(断言)。

iOS Keyboard Gadget Android

指先が痛くなる

昨年末に購入した Magic Keyboard.

blog.kondoumh.com

半年ほど自宅でメインに使っていたのですが、最近なんていうか指先が痛いです。普通のキーボード叩く感覚で入力してると、ストロークが浅いので跳ね返りがきついのかなと。ピッチは広くて Mac に最適化されてて良いのですが、痛いものはしかたないので Filco の Magestouch 使うようにしました。案の定指の痛みは和らぎました。

普段職場ではかなりの鍵圧でキーボード叩いているので、利用時間の少ない Magic Keyboard に自分の体を最適化するのはやはり無理があったのでしょう。

しかし、1万円以上出して購入した Magic Keyboard をキーボード墓場*1送りにするのは勿体ない。ということで、モバイルへの転用を検討。

Nexus 6P で使ってみる

Nexus 6P で使えるかペアリングさせてみました。まず、日本語と英語の切り替えが画面タップしないとできない。これは面倒です。ATEN CS533 で Realforce を使ってると漢字キーで切り替えられました。

blog.kondoumh.com

109 キーボードと認識させても、構造上漢字キー相当のアサインができないのでしょう。あと、 | (パイプ) , ¥ , _ (アンダースコア) が入力できない。これはコード書く上では致命的です。

そういえば、BootCamp の Windows でもアンダースコア入力できない問題がありました*2

ということで Android デバイスとのペアリングは厳しいという結論です。

iOS の JP 配列サポート

iOS の物理キーボードのサポートは US 配列のみとずっと思ってました。アプリによっては JP 配列を認識するものもあるので全く使えないというわけではないですが。

iPad Pro の純正キーボードカバーは US 配列だし、過去 Wireless Keyboard をペアリングした時も アプリによって US 配列と認識されて使いにくかった記憶があったのです。

iPad Air で使ってみた

モノは試しということで iPad Air にペアリングしてみました。

これは、予想外でした。キーマップは完璧で Prompt のような ssh アプリでもちゃんとキートップの記号と入力される記号が一致するじゃないですか。Wireless Keyboard の時よりも精度が上がっています。

iPad で物理キーボード使うと、入力モードが日本語か英語かという情報はどこにも表示されず、入力開始しないと判然としないのですが、かなキーを押すと必ず日本語、英数キーを押すと必ず英語になるので、現在のモードを覚えるという脳への負担がなく作業効率が格段に上がります。

アプリによりますが OS X の Emacs ライクなキーバインドもかなり使えるし、Ctrl キーが A の左にあるので ssh でターミナル使う時もストレスフリーです。

blog.kondoumh.com

この投稿では Wireless Keyboard US を使ってダメだったのでソフトウェアキーボード使ってましたが、もはやそんな苦労は要りません。

Function キーでビデオ再生のオンオフや音量を調整できたり、iPad と共通の Lightning ケーブルで充電できたりと Magic Keyboard は iPad のコンパニオンデバイスとして最高じゃないかと思います。

さらに Magic Keyboard は 充電式になって、薄く軽くなっているため Mobile にも適合します。出張や帰省のお供に、リビングコンピューティングに最適ですね。

こうなると今まで出番が少なかった風呂蓋カバーも俄然折りたたみ可能なスタンドとしての用途が出てきます。持ち歩くときはこんな感じですね。

入力デバイスがよくなるだけで、iPad Pro じゃなくても十分にプロダクティブなデバイスになれることが分かります。

なんか 2in1 なデバイスに進化した気がします。

自分は初代 iPad Air のパフォーマンスでも不満ありませんが、Air 2 / Pro 9.7 inch ユーザーにもお勧めな使い方ではないでしょうか*3

もうすでに活用している方がいらっしゃいました。

estpolis.com

モバイル用途なら浅すぎるキーストロークも許容範囲ですね。でも調子に乗って打ってるとやはり指先が痛いですw

追記) 現在の自宅作業環境

*1:Apple Wireless Keyboard US/JP などが眠ってます。

*2:Wireless Keyboard なら、BootCamp 環境で問題なく使えてたのでそのうち対応されるとは思いますが。

*3:Air と Pro の風呂蓋は下位互換性がないかもですが