7

最近我一直在玩php-gtk,過去我已經嘗試用Java來製作GUI'hello world'應用程序。GUI應用程序的專業光澤來自哪裏?

但是,這兩種類型的應用程序對他們來說都有點笨重(幾乎是幼稚的)外觀和感覺。我不能否認他們在製作應用程序時非常方便(我完全尊重進入這些項目的社區努力量)。但是我不一定會爲以450英鎊或1000英鎊的價格標籤出售商業應用而自豪。

如果我想製作一個具有外觀和感覺的應用程序,例如Firefox for Windows或Adobe xyz,我應該使用哪種GUI /語言?

對於設計師來說,「專業光澤」還是精明的外觀和感覺是100%,或者無論設計師多麼優秀,選擇正確的GUI框架對於獲得這種外觀至關重要?

+0

感謝所有這些答案 - 所有真正有用的東西 – 2010-05-03 05:29:42

回答

7

有一些方面有一個軟件的拋光UX。

  1. 使用最原始的平臺框架。適用於Windows的Win32/WPF,適用於Mac的Cocoa等。
  2. 應用程序的視覺文物是連貫的 - 包括圖像,圖形,工具欄圖標等。
  3. 遵循平臺指南和最佳實踐。
3

總是嘗試使用您的桌面環境使用的GUI框架。 .NET的庫可能是創建Windows應用程序的最佳選擇。 GTK +在GNOME上始終是最好的,而Qt在KDE上運行良好 - 儘管三者都在對方系統上工作,但由於缺乏視覺集成,它們的視覺吸引力下降。

+1

絕對正確。爲您的平臺使用本地外觀。 Windows上的Java應用程序總是看起來很糟糕(想想Lotus Notes)。使用.Net for Windows(假設您想使用託管語言)。 – jwismar 2010-05-03 05:09:16

+0

我會注意到,甚至純粹的Qt也沒有完美地與KDE集成 - 至少在我的計算機上,基於Qt庫和基於KDE自己的UI庫的接口之間存在顯着差異。雖然這只是一個問題... – 2010-05-03 05:40:24

+1

蓮花筆記最初是用匯編寫成的......這是本地的_definition_。 – 2010-05-03 06:08:37

1

我不在乎Java應用程序GUI傾向於使用常用工具包的樣子。如果您喜歡Firefox的外觀,您可以查看大多數Mozilla應用程序共享的XUL和GUI框架。科莫多編輯器/ IDE使用相同的工具(以及其他幾個應用程序)。 GTK非常強大,我真的懷疑這是什麼阻止了你的應用程序擁有那種專業的光澤。繼續探索它的功能,並重新考慮顯示組件的最佳方式,我相信你會偶然發現一種感覺更好的安排。

另一方面,它不是全部關於工具包。良好的界面設計是一門藝術,像Firefox這樣的界面已經通過無數次的反饋發展而來。要做的最好的事情是與用戶交談,並找出能夠讓他們更舒適地使用應用程序的東西。我發現軟件在功能上往往看起來不錯。

我會建議花費大量的時間在你覺得愉快的軟件上使用。記錄事情的完成方式,並尋找界面元素之間的共同點。大多數軟件都遵循一套非常普通的原則,這些原則使得軟件的使用變得更加簡單,並且越多地探索您感興趣的軟件,越早開始出現模式。

祝你好運!

+0

感謝您的回覆。回覆:「記錄事情的完成方式」 - 哈。是的,我已經開始以全新的視角看待我那些值得信賴的舊應用程序 - 我的屏幕卡鉗總是注意到最小重新調整的高度/寬度和框架陰影以及各種各樣的...它的所有非常分散注意力; o) – 2010-05-03 05:34:44

3

所使用的GUI API /語言與UI設計完全無關,儘管一些API使得它更容易實現。

良好UI約爲:

  • 良好圖形設計/藝術品(視覺上的平衡和對稱性,互補色,在視覺上「賞心悅目」的形狀和佈局,視覺一致性應用程式內,並且與周圍的其他應用 - 一致的定位,尺寸,間隙,顏色等)
  • 瞭解用戶的工作流程並使他們想要做的事情變得簡單直觀。這通常意味着實現3或4種實現相同動作的方式(例如,「複製和粘貼」通常可以通過以下方式實現:主菜單 - >複製/粘貼,上下文菜單 - >複製/粘貼,ctrl + c/v,按鈕:複製/粘貼,拖放)
  • 保持一切簡單。儘可能刪除將用戶界面切換回用戶需要的內容,而不再需要。
  • 直觀且不令用戶驚訝。控件應該看起來像用戶知道的控件,像用戶知道的控件一樣工作,並且位於用戶期望的給他們以前的計算機體驗的地方。
  • 繼公約(位置確定/取消鍵在標準位置,使用OS定義顏色突出顯示所選對象等)

爲了得到這一點,你需要看大量的「好」的應用並剖析是什麼讓他們變得更好。找一位優秀的藝術家/平面設計師來繪製好的圖標等。花大量的時間思考用戶的工作流程。

確保將業務邏輯與用戶界面分開 - 這將允許您輕鬆重新整理應用以改進用戶界面。通常,程序需要的數據與用戶需要使用應用程序的方式無關 - 不要試圖在可編輯字段中暴露x,y,z變量! UI是隱藏您的實現並使其可用的圖層!

4

它重疊有點與伊戈爾的答覆,但這裏是我的看法:

機控件看 - UI控件今天有一個相當複雜的外觀。有很多視覺線索我們本能地從它們中衍生出來,即使它是一個帶有一些框架的白色矩形,但是它的影子看起來很奇怪。上下文菜單通常不僅僅是今天打開,而是從某個方向滑入或淡入。

本機控制行爲 - 比UI更復雜,有很多行爲細節:不同的上下文菜單取決於在點擊位置時,選擇或拖動項目,鍵盤快捷鍵等時出現不同的「熱門」區域。

關注細節 - 在任何平臺上都需要發現許多一致的UI行爲。就像箭頭鍵在樹中控制WRT選擇,打開和關閉節點一樣。只要看看Windows:大多數非本機工具包都會導致基本鍵盤導航錯誤 - 箭頭鍵,Home,End,PgUp和PgDown,用Ctrl修改的行爲,使用Shift擴展選擇可最多提供32種行爲。複製&粘貼傳統上使用Ctrl + C/Ctrl + X/Ctrl + V和Shift + INS,Shift + DEL和丟失。鼠標雙擊常常選擇一個單詞,鼠標三擊有時候一個句子,一行或一個段落。

響應時間和肌肉記憶 - 有,基本上,兩個UI操作模式:

行爲,看看環,在那裏你等待決定下一步驟之前,響應,從
播放肌肉記憶,這是更快,需要較少的心理處理資源。

有,但是,對於這兩個要求:反應必須是統一的,「即時」,和下一個動作必須正確立即(至少在10毫秒)

通常足夠進行登記,與非原生工具箱,這會因滯後一個或兩個動作(鎖定差異)的反應而變得很難,並且需要花費50ms或更長時間才能顯示菜單的工具包,在這段時間內點擊未按預期註冊。

拋光的UI需要長時間來得到正確的 - 一個很好的控制庫可以解決大部分的每個控制問題,但還有一些最後的10%以90%的時間,你有控制的相互作用。你必須嘗試不同的方法,你必須期望用戶具有FPS訓練的反應能力,你必須嘗試各種工作流程。

跨平臺工具包不能讓它完全正確的 - 他們堅持一個進退兩難的境地:他們可以選擇內部一致性獨立於平臺的,或者是與他們目前運行在平臺上是一致的。爲了解決問題,後者通常需要在調用代碼中使用與平臺相關的代碼,這是您試圖避免的實際問題。