2013-01-19 35 views
2

從事Web設計和Android工作後,我終於開始了桌面軟件的開發工作,直到開始使用UI Design for Desktop時,我的開發週期出現了重大延遲。迄今的經驗是一種痛苦。我決定使用Java編寫程序,因爲那樣我就可以使用跨平臺的API來進行套接字和無線接口(我的程序嚴重依賴並且成功運行)。桌面用戶界面設計工具,最好是Java或Java包裝

的Web和Android UI設計:

HTML/CSS/JavaScript的; XML/Android API - >提供高度的靈活性,定製化,快速的UI開發週期。

Java桌面UI設計

AWT/Swing的/ Swing的FX - >

  1. 幾乎沒有自定義的可能性,從問題herehere看到。如果可以定製,則實施它會大大增加開發時間,如here。它也增加了代碼複雜性,在大多數情況下,解決方案是本地的,不適用於跨平臺的(至少Linux,Windows,Mac)。原生的,默認的外觀實際上並非大多數UI設計師所需要的。

  2. 拖放選項很好,可以縮短開發時間。 Window Builder。但是添加ImageView之類的選項缺失。而且,如果需要在第2點中提到的定製,則自動生成的代碼必須進行大量修改,完全否定使用Drag-n-Drop。

任何人都可以建議我一個很好的或近於良好的UI工具,或者說UI引擎(如果存在的話),它具有以下特點:

1. Quick development time. Drag-n-drop, HTML/CSS/XML like methods to design. 

    2. Everything is cross-platform, including customization solutions. 

    3. High degree of customization. Developer designs what looks good to him/her, 
     without increasing time-to-develop much. 

    4. Also cross-language. That is, has wrappers for all major programming languages, 
     like C++,Java,Python etc. 

最好的辦法或工具,在我看來:

  1. Qt Framework。非常適合用戶界面,但如果Java和其他語言的包裝器 真的很好。它不會縮短開發時間,並且會要求手動編碼,但可以使界面看起來非常好,並且可以使用

  2. WxPython。另一個好工具,如果它有其他 語言的包裝器,將會很酷。

  3. 一些工具,可以讓設計桌面用戶界面與HTML/CSS/XML類似的語法和易於使用。的UI工具

  4. 不停的思考,無論是

    一個。只需停止抱怨並使用默認設置和現有工具以及本機 外觀。

    b。手工編碼一切,併爲每個平臺單獨定製。

    c。在Java和程序UI中採用一個圖形畫布,就像在遊戲中編寫場景 一樣。

請提出建議,如果您認爲不然,或者如果有更好,更容易的選項可用。

謝謝。

+2

'Qt Framework。非常適合用戶界面,但它真的很好,如果它有Java和其他語言的包裝。「嗯,這個怎麼樣:http://qt-jambi.org/ –

+0

@Amit Tomar:非常棒的鏈接,謝謝! –

回答

6

「幾乎沒有自定義的可能性」在我看來,短視的,你可以看看here的信息,外觀和感覺,而如果你喜歡冒險,你可以創建自己的。許多人在定製Swing時遇到的問題更多的是由於缺乏對API的靈活性的理解,事實上,我發現Swing是最靈活和可定製的工具包之一 - 恕我直言。

你也可以看看here關於如何使自己的組件

什麼,你必須知道的是,當你到「快速工具」開始減少的靈活性和定製靈活性,因爲這些工具開始靠攏鎖定你。

我沒有WindowBuilder的經驗,但是NetBeans表單設計器允許你包含項目類路徑中的任何組件,包括你構建或下載的任何組件。

我同意在Swing中常常會遇到的批評之一是需要多長時間才能啓動並運行。這歸結於爲靈活性和可定製性設計的API。最終開發人員需要圍繞API構建最適合其需求的庫。

大多數人會告訴你,避免屏幕製造商贊成手動編碼。就我個人而言,我喜歡屏幕建設者,但我堅持認爲我的初級開發人員能夠很好地理解佈局經理的工作方式,並構建複合佈局等設計技術。

我認爲很多人都有的問題是忘記構建應用程序。雖然我喜歡一個很好看的應用程序,但我仍然更喜歡一個實際上完成它設計的任務,並且做得很好,看起來很漂亮。

恕我直言

+0

+1。 – trashgod

+0

@MadProgrammer,感謝您的輸入。我同意功能比look更重要。我在完成並驗證軟件的核心功能後開始了UI設計。談到小型軟件時,很難相信UI設計實際上需要更多時間,而不是開發功能。我已經檢查了LNF,使用Swing進行定製儘管可能會增加開發時間,解決方案並不總是跨平臺的。 –

+0

如果您瞭解如何製作圓角的JFrame(提供的鏈接),您會意識到,Java 6提供的解決方案不夠優雅,實際上是使用半透明提供的解決方法,這極大地增加了代碼,並不保證一直工作。 –

2

我將在Qt的方面講

1. Quick development time. Drag-n-drop, HTML/CSS/XML like methods to design.

Qt提供了良好的發展環境:

  1. Qt Creator的跨平臺IDE
  2. Qt Quick的設計師
  3. Qt Designer
  4. 國際工具
  5. HTML幫助系統
  6. 的Visual Studio插件和Eclipse的集成
  7. 跨平臺編譯工具

你可以在給定的鏈接閱讀有關QtDesigner。它爲你提供了一個簡單的你所看到的是所見即所得(WYSIWYG)類型的接口和生成的自動代碼。其他模塊如國際化也可以很好地使用,如果你想讓你的用戶界面成爲多語言的話。

2. Everything is cross-platform, including customization solutions.

的Qt適用於以下平臺:

  1. 的Windows - Qt的微軟Windows XP,Vista中,7
  2. 的Windows CE,移動 - 的Qt適用於Windows CE和Windows Mobile。
  3. Symbian - Qt爲Symbian平臺。
  4. OS X - 用於Apple OS X的Qt;支持可可的應用程序。
  5. X11 - 用於X Window系統(GNU/Linux,FreeBSD,HP-UX,Solaris,AIX等)的Qt。
  6. 嵌入式Linux - 用於嵌入式平臺的Qt:個人數字助理,智能手機。 Maemo,MeeGo - Qt for Maemo,與Moblin合併爲MeeGo
  7. Wayland - Qt for Wayland顯示服務器。 Qt應用程序可以圖形後端像X和韋蘭之間在加載時與-platform命令行選項

外部端口

由於諾基亞打開Qt的源代碼在Gitorious各種端口社區已出現切換。下面是其中一些:

  1. Qt的OpenSolaris的 - Qt的OpenSolaris的
  2. 的Qt的俳句 - 對Qt的俳句
  3. 的Qt爲OS/2 - Qt的OS/2的ECS平臺
  4. QT間iPhone - Qt的實驗開發iPhone
  5. 的Qt爲webOS的 - 對Palm Pre的
  6. 的Qt爲亞馬遜Kindle DX的webOS的Qt的實驗開發 - 對亞馬遜Kindle DX
  7. 的Qt的實驗開發210個
  8. Necessitas - Qt的Android的
  9. Qt的黑莓 - Qt的黑莓

3. High degree of customization. Developer designs what looks good to him/her, without increasing time-to-develop much.

如上所述。

4. Also cross-language. That is, has wrappers for all major programming languages, like C++,Java,Python etc.

你不會相信的列表here。它們涵蓋了幾乎所有的東西,包括Ada,Pascal,Perl,PHP,Ruby,Python和Java。


我已經給出了上述信息假設您正在計劃使桌面應用程序的「天然」窗口小部件的外觀和feel.And我想補充一點,以上。

  1. 萬一你有足夠的靈活性,使用戶界面並不真正具備「按鈕」等,並更像是「智能手機的用戶界面」,不用去別的地方比使用Qt的快速。

  2. 快速,簡單,功能強大,靈活。事實上,他們已經開始爲qml中的直接桌面小部件提供一些支持。見here

  3. 隨着現代臺式電腦的外觀和感覺的快速變化,趨勢似乎將在電話和桌面用戶界面合併的未來發展。

隨着桌面方面幾乎沒有任何創新,他們似乎正在朝着電話世界裏的新事物發展。 那麼,看看在Windows Metro種類的UI中發生了什麼?

爲了以防萬一,您可以閱讀here如何讓地鐵像UI是qml !.

隨着Qt5進來,事情變得更好!閱讀this,瞭解它如何彌合臺式機和手機用戶界面之間的差距。

P.S.觀點可能有點偏見,Qt粉絲和Java討厭太多了。 : - )