
碩士論文成果《Venom Hub》無原始碼擴充的管理工具
- 影片
YouTube
- 耗時
- 1 year
- 製作
- Solo Dev
- 平台
- Windows 10、11
碩士期間,我被分配到了名為 Venom 的團隊。
Venom 是一種我們實驗室創造的擴充技術,它會覆蓋一層獨立的透明視窗(稱為 Venom)於目標應用程式視窗(稱為 Host)之上,並透過作業系統提供的資訊擷取應用程式的 UI 資訊,這樣就可以在不修改原始碼、也不依賴官方外掛 API 的前提下,對既有應用程式(Host)進行擴充。Venom 技術目前支援 Windows 作業系統,因此 Venom 相當於能對任何 Windows 應用程式擴充,這是件很有趣的事情。
其實我們原本把這項擴充技術稱為 Parasite,因為它的運作模式與「寄生」相似。但 Parasite 一詞帶有負面意涵,與提升應用程式價值的目標相悖,所以我們將名稱改為 Venom,期望這項技術能保留寄生的特性,但能為應用程式帶來正向的效果。
Venom 擴充技術概念圖

實際擴充結果
> 擴充介面會隨著應用程式改變,達到擴充效果
Venom 對用戶帶來不便
Venom 是一項創新的技術,但創新的背後存在一個缺點,就是對想使用 Venom 擴充應用程式的開發者來說,學習這套陌生的技術並非易事,因此實驗室創造了簡化開發者學習門檻的框架,稱為 Venom Programming SDK。SDK 包含開發 Venom 之必要工具,並封裝作業系統提供的應用程式介面資訊,實現前後端分離的跨語言方案。
但因為 Venom 的前後端架構特性,用戶在享受擴充帶來的好處前,必須手動啟用那些提供 UI 資訊的後端元件,這對使用者體驗來說是一大傷害。而且身為一個擴充,與應用程式間的版本依賴關係相當重要,如果使用了錯誤的版本,Venom 可能會發生不可預期的錯誤。人的耐心是有限的,當用戶鼓起勇氣、花費學習精力嘗試新的技術時(這是一種跨越舒適圈的表現),我們必須提供穩定易用的工具留住用戶,因為用戶不會理解這些技術細節,也沒義務理解。這些沒有耐心的用戶在遇到困難時,極有可能放棄並尋找其他解決方案。
實驗室前幾屆的研究中,幾乎沒有針對用戶友好的方向進行討論(只有開發者友好),身為一個完整的擴充,必須經過安裝、開啟、更新、卸載等軟體生命週期,每個步驟都必須簡單、易於使用。然而身為 Venom 使用者,每項步驟都是挑戰,他們只能弔詭地根據開發者的建置文件進行安裝,並在適當時機運行擴充,更不用說那些軟體更新的繁瑣步驟,因此提供一個易用的 Venom 管理工具迫在眉睫。
Venom Hub 誕生
為了解決用戶不便的問題,我開發了一款名為 Venom Hub 的 Node.js 應用程式整合工具,負責管理 Venom 擴充從安裝、啟動、更新、到移除的完整生命週期。使用者不需再閱讀繁雜的建置文件,也不用自己判斷版本是否相容,更不用擔心在錯誤的時間啟動錯誤的元件。只要使用 Hub 就能像安裝一般軟體一樣輕鬆取得 Venom 擴充,重點是 Venom Hub 一站式提供所有服務。


Venom Store 分發平台
Venom Store 存放所有開發完成的 Venom 擴充,支援一鍵安裝,且可根據目標應用程式進行分類篩選。

Venom 版本管理與替換
Venom Hub 會取得應用程式的安裝版本,然後提供推薦的 Venom 版本。

自動化運行管理機制
Venom Hub 會在背景監控應用程式的運行狀態。自動啟用對應的 Venom 擴充。

集中的管理介面
透過介面集中管理所有安裝後的 Venom,或是對擴充進行設定,例如運行種類、移除、是否停用等。
Venom 依賴元件管理
Venom Hub 啟動後會檢查、更新並開啟相關後端元件,解決用戶手動處理依賴項的困擾。
一鍵過濾移除無用的 Venom
Venom Hub 會檢查所有 Venom 對應的應用程式是否存在,並一鍵清除無法繼續使用的擴充。