關於 ipad 上 coding 這件事
用過的人應該都知道很痛苦. 螢幕小其實其次, 重要的是 key mapping & compile. 既然這麼痛苦, 為何還要用 ipad, 不用 air, android, 甚至 chromebook ?
我喜歡移動工作, 站著工作, 到不同環境工作, Notebook 實在太重, 最輕的 Air 也有 1kg. Asus 的變形金剛之類是 Arm 體系, 算不上是正統 pc. iPad + Apple Bluetooth Keyboard 才 600 g 左右, 如選擇更輕的鍵盤, 可以減少到 400g 沒問題? 比如 TextBlade 鍵盤 : 更多關於, 實在是又小又輕. 而且 Notebook 有太多誘惑 ( 自己裝太多奇怪的東西 ), 可多功, 容易分心.
Android 上想要寫程式應該好上許多. Android 上的 App 我是不清楚, 很少用, 了解的歡迎告知. 這裡討論的是將 android root 裝 linux. 一樣是 arm devices, 在 odroid-u3 之類的安裝過 xfce, 跑起來很順. 接個外接螢幕完全就是一台電腦, vnc 也完全沒問題. 所以 android tablet 除了可能會有些硬體的 driver 不好搞之外, 應該沒問題.
至於 Chromebook, 沒用過. 雖然也很輕, 是 Arm 體系, 但要在上面 coding 似乎不太容易, c9 等雲端 coding 之類的似乎會比較適合. 如果要整個重裝成 ubuntu, 那意思和用 odroid, android 差不多.
不過無論是 Android 或是 Chromebook, Arm 系列整體來說會有很多問題. 尤其是當你越寫越底層, 比如要改 ruby source code, 或一些硬體 tuning. 而如果你需要維護兩套, 不管是環境設定或是程式, 任誰都不會想的.
回來說 iPad, 目前最好的 app 似乎是 Textastic, Koder, Coda 之類的 app. 如果只是做簡單的修改也許還 ok, 但要長時間 coding 就完全沒辦法. 像 Textastic 需要先 local dump 一份所有檔案, 很花時間. 這類的 app 或多或少都有用不習慣的地方, 有些是 keymap 比如開檔案需要點那個檔案, 沒辦法用快捷鍵開啟. 有些是用起來不順手, 像 Coda 比較適合 php 之類的人士. 有些則是 highlight 不支援 (比如 elixir) . 但多數都是只能 local 做編輯, 需要跑程式的話, 本身幾乎是完全無解, 需要搭其他 App, 比如 Dropbox + Prompt. 這類的 App 目前只看到一個比較令人期待的 : Binary App 不過還在 Beta.
除了 native app, 其實也試過 c9, codeBox, codeAnyWhere, Koding, Nitrous 等 數十個雲端 coding. 雖然可以雲端 compile, 無奈仍有許多問題. 多數的 Key mapping 都不夠好. 有些則會直接當掉, 或 loading 很久, 可能是 js 用太大, ipad 撐不住. 比如 Nitrous, 幸運的話等 3~5 分鐘可以載入 editor, 很多時候是 browser 直接當掉. 如果過了 App 生命週期, 常常需要重新登入網頁, 重新啟動 editor, 很費時. 所有的 cloud coding 來說 CodeBox 最好. 還有 mac, windows 的 local coding editor, 可以雲端, ipad 上不會當. 只是 key map 不夠好, 雖然可以設定 ace, 但某些 key 仍找不到設定的方法, 不支援 apple bluetooth kb 的 cmd 就更不用說了.... 不過這類雲端 coding 其實我最忌諱的還是把 source code + env 全部給他們了...
花了這麼久, 我覺得最好的解決方案還是原始的 vnc. 透過 Realvnc app, 然後在 digital ocean 上花個 $5 裝個 ubuntu, 裝一下 xfce4. 除了有 key mapping, compile, 還有 sublime 可以用. Linux 下也有 Zeal (Dash Doc) 可以用, 可隨時查文件. 不需關機, 隨時連上去, 隨時是上次的 state. 而且要什麼東西都可以裝, 因為是 64 bit, 環境可以搞得跟 production 一模一樣, 做一次功就好.
如果覺得記憶體太小, cpu 太慢, $10 就很夠用. 需要的時候, 開啟 dropbox 或 git push, 可以轉到 air 上或其他電腦繼續工作.
滑鼠也許是一個問題, 用習慣 trackpad 的人, 連接大螢幕時可以拿 ipad 當 trackpad, 排除手感, 其實很方便. 當在外面 ipad 就是螢幕時, 只能用 ipad 觸控. 習慣 vim, 應該沒什麼問題, 可以直接 keyboard 工作, 甚至不需要裝 gui, 直接用 ssh 連進去工作. (笑 不習慣 vim 但可以接受快捷鍵的, 我使用 keynav 這套軟體在必要情況下用鍵盤控制滑鼠. 很必要時會碰螢幕觸控, 不過更多是透過快速鍵就可以操作.
VNC server 裡面, 個人覺得 vnc4server 是最好 & 最穩定的. 其他像 tightvnc 也許是自己不會設定, 反正遇到一堆奇怪的問題無解.
至此, 應該沒有任何問題, 在外面可以輕鬆的手不離鍵盤 coding. 在家也只要接上大螢幕, 用起來就像 local linux 順利工作. 如果會有問題, 應該是網速太慢會 lag 的問題. :p
我喜歡在 ipad 上工作, 除了移動, 一方面也是因為它多數情況下 (聽音樂不算的話) 只能單工, 可以很專心. Linux 上雖然也有 Game, 但應該沒有人能接受 VNC 的 latency, 閹割的操控性, 及有限的處理能力. 以上, 單純希望能幫助一些想在 ipad 上寫程式的朋友.
















