怠惰了這麼久,總算進到第二章了!(握拳!灑花!)
因為最近稍微有點事情在忙,加上這章要試著分析G-Hub搞到這麼繁瑣的原因是甚麼,所以花了點時間,順便怠惰了好幾回,接下來,讓我們進入正題
在開始講G-Hub Multiple Profile架構操作方式前,宅龍先來聊聊這幾天才注意到的懶人功能
宅龍年紀大了,這幾天才注意到上圖這個小鎖,這個小鎖允許你把 "目前正在編輯的佈局" 設定成系統唯一的佈局;這個鎖定開啟後,你所有應用程式的按鍵佈局都會相同,可是DPI設定還是會不同。
但因為這樣,就會出現一個很鬧的操作,你還是可以下拉右上角的應用程式來編輯這個些配置,只不過它會去改變你鎖定時對應的那佈局配置,關鍵原因在於它還是要讓你在個別應用程式內設定不同的DPI以及燈光 (604太低調,連燈光都沒有)
所以我們可以推論出羅技的設計概念如下圖
它的資料結構完全是樹狀化的,你可以說他的資料結構非常的嚴謹而明確,但如果根據這個資料結構來設計程式邏輯,就會變得非常的繁瑣而且複雜,這也是為什麼G-Hub會如此難用的原因,因為,其實宅龍在這邊還少了一個層級,也藉是Profile層級,G-Hub的App下還可以允許多個Profile的存在,功能絕對的強大,但是對消費者一點意義都沒有
它當每個人都是多重人格,一個App多種用法嗎?難道使用者是健達出奇蛋膩?
這就是個標準的工程師炫技設計,把Function當成User Experience在做就會是這種結果...
那個小鎖頭在幹啥呢?當你把小鎖頭選起來的時候,它的狀態會變成下面這樣:
你一旦選定小鎖頭,它就會把現行應用程式下的按鍵佈局直接映射到所有App上,確保你的操作結果是一致的,所以,不管你今天在哪一個應用程式內改動佈局,最終都會套用回被你選定的佈局Profile內...
但這不就變成沒有個別的操作配置了嗎? 搞屁呀?羅技這樣只是從名為 煩死消費者 的體驗走到 綁死消費者 的體驗而已呀...
其實如果從這兩項功能來看,羅技已經具備完全修復這搞笑的使用者體驗的一切條件:
個別應用程式的客製化配置
可以全域套用的配置邏輯
這邊我縮水一下,只用單一裝置來解釋修復這些問題的架構
透過分析羅技的操作過程得出來的設計概念上,並沒有Common Profile的層級,所有的Profile都是一視同仁的,只不過有一個Profile被指派到名為 "桌面" 的對應上,這個對應代表沒有任何指派的應用程式作為標的,也因為這個特性,所以他可以繼續產生對應桌面的Profile,也就是設定檔管理畫面中的複本項目
但如同前面討論的,針對單一應用程式的多Profile根本沒有必要,因為使用者並不會對同樣的應用程式帶入多種不同的操作行為,行為科學告訴我們人在面對相同對象時行動會趨於一致,所以大可以不需要這樣做
因此他只要賦予既有的Profile架構多一個Default屬性即可,這時候你就會有一個在所有Profile之上的預設操作設定來滿足 操作經驗一致性 的目標,而不需要弄個莫名其妙的小鎖出來犧牲功能的彈性。
當使用者要去設定個別應用程式的客製化配置時,程式就有兩個很簡單的方法來達成這個目標
映射一份完整的Default Profile作為Customize Profile的編輯基礎,然後紀錄完整的設定檔
僅針對被客製化的項目紀錄Overwrite設置值
紀錄完整設定檔的做法可以只在記憶體中維護一個完整的配置映像,好處是執行跟切換會比較高效,但是載入的資料量會比較大,所以切換Profile的效率會有點差異
僅記錄Overwrite的方法,在切換的過程中會有比較好的效率,因為基礎的配置內容不變,只需要載入差異項目即可,但執行時就必須要判斷是否有overwrite在,會多一道執行程序,當然,要優化這個執行結果的方法有很多,最簡單暴力的方式就是直接在記憶體內宣告一組combine過的runtime configure,只不過這會損失掉切換效率而已
Comments