✦開發者故事

我用 iPad 寫完了一整個 App,做法在這裡。

Xcode。Interface Builder。iOS 模擬器。一個包含 47 個檔案的完整 Swift 專案。全都在咖啡廳裡透過我的 iPad Pro 執行。沒有妥協,也沒有權宜之計。完整的經過如下。

「在 iPad 上寫程式」的問題

Apple 每年都讓 iPad 更強大:M 系列晶片、Liquid Retina XDR 顯示器、巧控鍵盤。而每年開發者都會問同一個問題:這東西真的能寫程式嗎?

答案一直都是「算是吧」。你可以透過 GitHub Codespaces 在瀏覽器裡使用 VS Code,可以用 Blink Shell 以 SSH 連進伺服器,也可以用 Swift Playgrounds 這類 App 做基本的小實驗。但只要你需要真正的工具,例如 Xcode、Android Studio、Visual Studio,或是載入了你個人設定檔的完整終端機,你就卡住了。

這些並不是隨意的限制。Apple 不允許在 iPadOS 上執行完整的 IDE。Xcode 永遠不會原生執行在 iPad 上(至少完整版不會)。而瀏覽器版的編輯器不管再怎麼進步,本質上仍受限於瀏覽器分頁能做的事。

所以我換了個做法:與其把 IDE 帶到 iPad 上,不如把 iPad 帶到 IDE 前面。

我的配置:Remio + Mac mini + iPad Pro

我的配置簡單到有點不好意思:

我在 iPad 上打開 Remio,輸入 Mac mini 上顯示的 PIN,兩秒內就看到我的 Mac 桌面。完整解析度、完整色彩,整個開發環境就停在我離開時的樣子。

不用設定 VPN,不用維護 SSH 通道,不用建立帳號。只要一組 PIN 和一條連線。

為什麼這比瀏覽器寫程式更好

我把所有替代方案都用過了,真的是全部。以下是 Remio 搭配真正的 Mac,勝過我試過的每一種瀏覽器方案的原因。

GitHub Codespaces / VS Code Web

Codespaces 用來做網頁開發確實令人印象深刻。但它跑在 Linux 容器裡:沒有 Xcode、沒有 Interface Builder、沒有 iOS 模擬器、沒有 Core Data 模型編輯器。如果你要開發 iOS 或 macOS App,它根本不是選項。就算只做網頁開發,你也受限於瀏覽器的沙盒:不能存取本機檔案、沒有原生終端機,也無法執行任意的背景程序。

SSH + 終端機編輯器

我愛 Vim,真的。但要在終端機編輯器裡開發一個有 47 個檔案、xib、素材目錄和 Core Data 模型的 SwiftUI App,那不是生產力,而是自虐。程式碼補全、重構、即時預覽和視覺化除錯器這些 IDE 功能,是有道理才存在的。

雲端桌面(AWS WorkSpaces、Shadow PC)

你可以每個月花大約 50 到 100 美元租一台雲端 Mac。但你已經擁有一台 Mac 了,為什麼要花錢租一台更差的?用 Remio,你使用的是自己真正的機器,有你真正的檔案、真正的工具鏈、真正的環境。而且延遲更低,因為你的 Mac 在你家的網路裡,而不是在維吉尼亞州的某個資料中心。

真實工作的一天

讓我帶你看看實際的一個工作日是什麼樣子:某個星期二在咖啡廳。

上午 8:30坐下、連線、接續工作

我在咖啡廳坐下,拿出 iPad 和巧控鍵盤,打開 Remio,連到家裡的 Mac mini。Xcode 已經開著昨晚的專案,每個中斷點、每個分頁、每項尚未提交的變更都停在原處。

上午 8:35撰寫 SwiftUI

我正在寫 SwiftUI 程式碼。程式碼補全運作完美,因為這是真正的 Xcode,跑在真正的 Mac 上,用的是真正的 Swift 編譯器。每個按鍵都感覺即時,Remio 的原生輸入處理,讓按下按鍵到字元出現之間沒有可感知的延遲。

為什麼感覺像在本機

原生輸入直接送達主機:在區域網路上約 8 毫秒的處理時間(內部測量),其餘則是你的顯示器自己的 60 Hz 更新節奏。

上午 9:15在 iOS 模擬器上執行

我需要在 iOS 模擬器上測試。我按下 ⌘R,模擬器在我的 Mac 上啟動,我在 iPad 螢幕上看到它。我可以用 iPad 上的觸控手勢操作模擬的 iPhone,意外地自然。點一下、滑動、捲動,一切順暢。

上午 10:00在 Interface Builder 裡做介面

該來做介面了。我打開 Interface Builder,拖曳限制條件、調整版面、預覽不同的裝置尺寸。這正是瀏覽器版編輯器做不到的工作,視覺化工具是無可取代的。

上午 11:30除錯並行問題

我正在除錯一個棘手的並行問題。我設定中斷點、逐步執行程式碼、在除錯器裡檢視變數。LLDB 運作完美,因為我用的是真正的工具,而不是網頁版的近似品。

下午 1:00切換到 Android

午餐後,我切換到 Android 專案。關掉 Xcode,打開 Android Studio。同一條連線,同樣的設定。Remio 不在乎你在執行哪個 App,它串流的是整個桌面。

晚上 7:00今日成果

一天結束時,我寫了大約 400 行 Swift、修掉三個 bug、把一個建置版本送上 TestFlight,並審閱了兩個 pull request。全都是在咖啡廳用 iPad 完成的。整個過程不需要任何特殊設定,也沒有任何妥協。

讓這一切行得通的細節

鍵盤快速鍵

這正是大多數遠端桌面 App 垮掉的地方。Remio 能正確轉送每一個鍵盤快速鍵:⌘B 建置、⌘R 執行、⌘⇧O 快速開啟、⌃⌘Space 叫出表情符號(對,連這個也行)。巧控鍵盤的修飾鍵與 Mac 的修飾鍵一對一對應,沒有轉換層,也不會有按鍵重新對應造成的混亂。

文字呈現

程式碼是小字,而且很多。一個會讓文字模糊或產生雜訊的遠端桌面 App,對開發來說完全無法使用。Remio 搭配文字最佳化設定的 H.265 編碼,讓程式碼清晰銳利。語法醒目提示的顏色準確,字體粗細也正確。以 iPad Pro 的解析度來看,真的就像 Xcode 在本機執行一樣。

切換螢幕

我的 Mac mini 有一個虛擬的第二螢幕。Remio 讓我點一下就能切換要看哪個螢幕:一個放程式碼,另一個放模擬器。在 iPad 上,我可以在兩者之間滑動,或用「台前調度」來安排我的工作區。

剪貼簿與檔案傳輸

需要從主控台複製一則錯誤訊息,之後再搜尋嗎?Remio 的剪貼簿同步讓這件事很順:在一台裝置上拷貝文字,到另一台上貼上。而當我想把參考檔案放進專案資料夾時,直接從 iPad 傳到 Mac 就好。

我的工作流程小撇步

以這種方式寫了六個月的程式之後,我養成了一些習慣,讓體驗更好。

  1. 讓你的 Mac 使用有線連線。我的 Mac mini 以乙太網路接到路由器。這消除了影響串流品質最大的變數。
  2. 讓 iPad 使用穩定的 Wi-Fi。咖啡廳的 5GHz Wi-Fi 通常夠用。如果連線不穩,Remio 的自適應畫質會自動調整,但穩定的連線意味著文字始終清晰。
  3. 把 Xcode 的字型大小設為 13 到 14 pt。透過 Remio 在 iPad Pro 的顯示器上,這個大小讀起來很舒服,不需要縮放。
  4. 所有事都用鍵盤快速鍵。IDE 操作越少用觸控或滑鼠,你就越快。這個建議對本機開發也一樣適用。
  5. 在 iPadOS 設定中開啟「減少動態效果」。這會稍微降低 iPad 端的動畫負擔,讓 Remio 多一點點效能餘裕。

我做不到的事(老實說)

為了完全坦白,以下是它的限制。

這些取捨是真實存在的。但對我來說,能把整個開發環境裝進一台 700 公克的平板帶著走,遠遠超過這些代價。

iPad 開發者的夢想,實現了

多年來,我一直在等 Apple 把 Xcode 帶到 iPad 上。後來我意識到,這件事也許永遠不會發生,至少不會是完整的專業版。所以我不再等待,找到了更好的答案。

Remio 並沒有把 Xcode 放到你的 iPad 上,而是把你的整台 Mac 放到你的 iPad 上。每個 App、每個工具、每個檔案,加上讓你覺得 Mac 就在眼前的畫質和輸入反應,因為在所有重要的方面,它確實就在眼前。

最好的開發配置,不是馬力最強的那個,而是你真正帶在身邊的那個。

搭配 Remio 的 iPad Pro 是我用過最好的開發機器,不是因為它的規格,而是因為它跟著我到任何地方,而我完整的開發環境也跟著一起來。

如果你是同時擁有 Mac 和 iPad 的開發者,試試 Remio 吧。設定只需兩分鐘,不需要帳號。如果你對遊戲這一面好奇,可以看看我們的指南:在 iPad 上玩電腦遊戲,讓寫程式行得通的同一套低延遲技術,也讓遊戲體驗出色。

Remio App 圖示

親自試試 Remio。

把你的整台 Mac 裝進 iPad 帶著走。設定只需兩分鐘,不需要帳號,原生輸入讓打字感覺就像在本機。

免費使用不需帳號30 秒完成配對