幾天前讀到李如一的文章,剛好文中提到的獨立 app 我也有一些,其中我特別喜歡 Bike Outliner,決定把去年寫給朋友的簡短介紹,稍微修改、補充後貼來這裡。
Bike Outliner 是一個 Mac 上的大綱軟體(以下簡稱 Bike),由獨立開發者 Jesse Grosjean 設計、開發。他對 Mac app 真的很有愛,Bike 不但軟體的設計目標明確,許多細節也照顧得很好。
假如你正在考慮大綱類型的軟體,或是覺得 OmniOutliner 超過你的需求太多,可以試試看 Bike,它除了具備大綱軟體常見的主要功能,還有以下幾個特色:
創新、實用的 UI/UX 設計
會長「尾巴」的文字游標
Bike 是一個以 rich text 格式為主的文字編輯器,而它獨特的文字游標(text caret)設計解決了以往我在編輯 rich text 格式文件時常見的惱人問題:
- 想要編輯或是複製超連結(文字或其對應的連結)時會不小心把連結點開。
- 想要修改一段部分內容帶有格式(例如粗體)的文字時,總是不確定我在那一段文字的前後輸入的文字會是什麼格式。
Jesse Grosjean 想到的解法是讓 Bike 文字游標出現在格式變化的交界處時會長出「尾巴」,這個設計讓使用者在編輯 rich text 時能夠清楚地掌握格式:在一段文字中插入文字游標時,可用鍵盤方向鍵控制「尾巴」指向左或右,代表接下來輸入的內容會套用哪一邊文字的格式。實際效果可參考下方兩張 GIF,也可以往下滑看 Jesse Grosjean 錄製的說明短片。

新增的文字會套用原本游標左側文字的格式。

新增的文字會套用原本游標右側文字的格式。
動畫設計
一開始在 Bike 打字時,相信很多人會立刻注意到文字游標移動的模式「不太一樣」,那是因爲 Bike 針對游標移動的動畫做了巧妙的設計,在打字、移動游標(上下移動時特別明顯)或是調整大綱順序的時候覺得很滑順、流暢,令人感到心情愉快。(這點似乎每個人的感受不同,有些人反而會覺得變慢,不過動畫可以調整速度,也可以關掉。)
在新分頁或新視窗開啟同一份文件
另一個提升 Bike 使用體驗的功能是在新分頁或新視窗重複開啟同一份文件。這樣一來就可以同時看到文件不同位置的內容,或是在處理某個子項目的時候,同時透過另一個視窗看到最上層的整體大綱。我是在過去幾年使用 Roam Research、Logseq 等產品之後才體會到「重複開啟同一份文件以顯示不同位置的內容」這樣的設計有多麽便利。
輕巧、快速的原生 Mac app
Bike 是原生 Mac app,這點在今日已是一種少見的美德。Bike 程式體積輕巧、速度快,使用時佔用的記憶體也少。
Jesse Grosjean 深入研究了編輯器的效能問題,例如他選擇不讓程式每次改變視窗大小就要重新處理「看得見的文字以及前、後部分」,只處理「看得見的」,所以運作起來速度很快。1他試過把整本《白鯨記》文字(約 21 萬字,Bike 檔案大小約 1.4MB)都放進去,運作起來依舊順暢。另一個我很喜歡的 app iA Writer 打開《白鯨記》Markdown 檔案就不太行了,調整視窗大小時會很卡。(當然了,Bike 並不是設計來讓工程師打開動輒數百 MB 或好幾 GB 的 log 檔。)
支援多種檔案格式
萬一使用者不喜歡 rich text,Bike 也支援純文字(plain text)和 OPML 等開放式標準的檔案格式(不同檔案格式在功能上會有差異,例如純文字就不支援下面提到的 links to rows 功能),而預設的 Bike 檔案(.bike)其實就是 HTML,所以也可以直接用瀏覽器打開檔案,或是做後續的轉換、處理。(我自己會用 Pandoc 轉檔。)
- 因為支援 OPML,所以如果選擇這個格式的話,也可以用心智圖 app 打開,把大綱以心智圖呈現。
- 因為支援多種檔案格式,Bike 跟許多軟體相容。
連結與自動化
如果我在 Bike 使用預設的 .bike 檔案,那麼文件的每個 row 都有獨立的 link,可以在同一份文件、跨文件和跨 app 使用。2
Bike 的自動化功能很棒,一開始支援 AppleScript,後來加入 macOS Shortcuts。不過目前 Bike 並沒有 JavaScript API,可以用的是蘋果為 macOS 自動化設計的 JavaScript for Automation(JXA)。
我個人非常喜歡一個 app 有這些設計,加上前面提到的檔案格式,不僅讓 Bike 的自由度更高,也讓我更容易把它跟其他 app 搭配使用,加入既有工作流程。這些增加 app 之間互通性的設計,可以大大提升使用效益和體驗。
其他
- 大綱可以全部一次展開/收合,也可以一次展開/收合一個階層,有利於做整體的審視;大綱模式下可以只用方向鍵做到快速展開/收合。
- 各種大綱功能如上下移動順序、縮排、聚焦(focus in)等都具備。
- 聚焦功能搭配同一份文件可重複開啟的特性,有助於編輯長篇文件。
- 以上功能搭配 Bike 的動畫設計,讓使用體驗加分不少,光是展開/收和、移動順序和聚焦大綱,都令我覺得「很好玩」。
- Bike 對於上面提到的展開/收和與聚焦功能,加上超連結,都有設計相對應的 icon 提供使用者以滑鼠游標操作,非常清楚易懂。(不需要 icon 提示的話可以在設定裡隱藏這些介面。)
- 不只 GUI 創新,Bike 的操作對鍵盤很友善,預設的快速鍵也很完整。
- Bike 的大綱有「類型」(row type)的設計,可以是標題、筆記、code block、待辦事項或列表等等。
- 儘管 Bike 目前還沒有 tag 跟 filter 功能,去年加入的 Outline Paths 設計 讓進階使用者可以在 AppleScript 裡做 query,並且進一步做其他應用。比如說搭配前面提到的 row type,就可以寫一個 AppleScript 列出「尚未完成的待辦事項並且傳送到 Things 3 建立個別的待辦事項」。Jesse Grosjean 說過 Outline Paths 會是未來許多新功能的基礎,所以我想未來在 Bike 2 應該還會以此延伸出很多相關功能吧,令人期待。
- 我都不知道原來編輯器的「打字機模式」用起來感覺這麼棒,現在用 Drafts 跟 iA Writer 也常常會開啟打字機模式。(可能以前剛接觸不習慣就沒繼續用,現在回想起來還真的是小時候不懂事 XD)
- 我喜歡 Bike 的使用授權設計:每年購買授權以享有持續更新(更新授權都是半價),停止授權後依舊可以繼續使用現有功能。
- 搭配 Berkeley Mono 這個字體超級好看,哈哈 XD(Btw 我好期待 Berkeley Mono V2!)
幾個缺點
- CJK 相關的設計還不夠好。如果切換成中文輸入,那一行會「跳」一下。這個問題早期的 iA Writer 也有,不少 app 到現在都還沒解決這個問題,例如 Drafts。
- 我用注音輸入法,undo 的時候中文部分會有點怪(文字會先分解成注音符號,所以 undo 會很慢 XD)。
- 沒有 iOS app。Jesse Grosjean 說大概要等 Bike 3 才會有 iOS app,所以很重視這點的人要注意。不過如果可以接受使用純文字或是 .opml,那麼 iOS 上相容的 app 選擇不少。我自己設計了一個自動化流程,將 Bike 檔案轉成 Markdown 文件後在 iPhone 上用 iA Writer 打開,可以查看或是做一點編輯(但結果不會同步回去原本的檔案),iPad 也適用。這個方法雖不完美,將就著用倒也還可以。
- 不支援 Markdown syntax,這點就比較個人一點。如果很好奇 Jesse Grosjean 為何做出這種選擇,可以收聽這集 《Changelog Interviews》,在大約在 25-26 分鐘處他有提到。不過因為 Bike 支援純文字格式,所以其實用 Markdown 語法編輯文件,存檔時選擇純文字,之後要用其他 Markdown 編輯器繼續編輯,或是複製文字時選擇純文字也是可以的。然而為了不影響後續其他 Markdown 編輯器呈現文字,恐怕就得在 Bike 中棄用大綱的階層功能。
- 缺乏協作功能。這點可能跟 Jesse Grosjean 個人的偏好還有技術選擇有關,感興趣的讀者可以到他們的論壇提出。
Jesse Grosjean 正在開發 Bike 2,也有陸續在使用者論壇和 Mastodon 上談到目前的進度、未來的規劃等等,感興趣的人可以去看看。啊,我的簡短介紹好像寫得太多了,哈哈。以後有機會再寫一篇完整的。