簡體   English   中英

跨平台桌面開發

[英]Cross-platform desktop development

我需要為桌面PC應用程序開發(Windows,MAC,Linux)提供跨平台引擎/框架的建議。 我看到了3種可能性,Qt,Java和Adobe AIR。

  • 它必須易於安裝(運行時是一個缺點,但C ++包裝器和/或安裝程序可以解決我認為的問題)。
  • 它必須快速且具有豐富的GUI(不是3D游戲,但絕對是一些2D圖形)。
  • 開發環境必須易於建立,UI開發工具必須具有拖放功能才能定義應用程序布局。
  • 目標應用程序必須具有原生外觀。 應該提供專業的有償支持。

所有這些標准都由Qt滿足,但“原生外觀”除外。 沒有具有本機感的跨平台框架,特別是在OS X上,用戶對應用程序的“感覺”非常苛刻。 如果你真的想要原生的外觀和感覺,最好用C ++或C#編寫一個共享框架,然后在每個平台上提供原生GUI(你可以使用MonoMac來提供一個使用C#而不是原生Objective-C的原生Cocoa UI ,如果這是你的一杯茶)。

也就是說,我們對Qt(和商業支持)的跨平台開發非常滿意。 特別是新的OpenGL加速2D場景API使動畫UI非常容易。 QtCreator是一個體面的IDE,具有視覺設計器支持。

與其他人相反,可能是因為我在一個實時交易Swing應用程序上工作,我認為Java是你的要求的最佳答案(但是,我認為這個問題是主觀的,因為之前的答案已經顯示)。 讓我發展。

它必須易於安裝(運行時是一個缺點,但C ++包裝器和/或安裝程序可以解決我認為的問題)。

使用Java,您可以依賴Java Web Start ,據我所知,這是易於使用的應用程序的最佳解決方案:您單擊瀏覽器上的鏈接,應用程序安裝在開始菜單/桌面中並作為下載后立即。 似乎Adobe AIR提供了相同的功能,但在我看來,由於其生態系統的深度,Java Web Start集成了更強大的分發解決方案(例如,根據需要輕松生成.jnlp文件的能力) 。

它必須快速且具有豐富的GUI(不是3D游戲,但絕對是一些2D圖形)。

與大多數流行的觀點相反,在Java中生成良好的圖形是可能的。 以一本優秀書籍的優秀骯臟富客戶伴侶網站為例。

開發環境必須易於建立,UI開發工具必須具有拖放功能才能定義應用程序布局。

Eclipse是IDE的事實行業標准,它集成了多個DnD IDE構建器。 我只想舉例說明最近解放的Windows Builder Pro

目標應用程序必須具有原生外觀。 應該提供專業的有償支持。

好吧,Swing默認look'n'feel確實與系統1有點不同。 但是,也有優秀的第三方的,上市這里 ,作為一個例子。

最后,舉一些例子:

  • 卓越的Palantir Technologies博客列出了一些出色的Swing應用程序
  • Gephi是一個相當完整和高效的高容量圖形查看器
  • 之前的工作 (不要將其視為蒙面廣告,它只是展示一些相當穩固的Swing的一種方式)。

我不推薦Java用於桌面開發。 我不在乎別人怎么說,與C ++這樣的本地語言相比,Java仍然很慢。 我會選擇Qt。 IDE具有GUI構建器,可以集成到Eclipse或Visual Studio中。

這是一個有用的資源: http//qt.nokia.com/products/

看看Appcelerator Titanium :它基本上是在瀏覽器中包裝一個Web應用程序。 你可以使用wen tech在GUI中擁有你想要的任何東西,但它看起來像是一個ap [p。

奇怪的是,沒有人提到Real Studio(現在是Xojo ),它可以滿足您的所有要求:

  • 它易於安裝,不需要單獨的運行時
  • 它編譯為本機代碼,因此速度相當快
  • 它有一個很好的UI庫,每個平台都是原生的
  • 通過拖放UI設計器,IDE非常好用
  • 目標應用程序是完全原生的並使用本機控件

首先要提到http://wxwidgets.org/ ,這是最受歡迎的X-platoform frameoworks之一。 根據應用程序的復雜性和“原生性”的要求,跨平台框架可能適合您。 使用框架構建的x平台應用程序通常感覺有點“異類”,特別是在Mac上,但可行。 一個很好的例子是http://taskcoach.org/

如果您的用戶能夠容忍豐富的下載大小,大量的內存需求和一些非原生的外觀,那么普通的Java, eclipse RCPNetBeans平台都可以為您服務。 你可以節省相當多的開發時間。

但是,我不了解滿足您所有要求的跨平台框架。

如果您需要訪問生產級應用程序,我所看到的最佳策略是保持原生,但將依賴於UI的代碼拆分為跨平台(例如C ++業務邏輯)和UI。 這樣,您將使用本機界面構建工具(每個平台都有一些好的)。 根據應用程序的復雜性和“完成”要求,您實際上可以節省走這條路線的時間。

Chris Hanson在這個答案中可以找到對“原生X平台”過程的一個很好的概述。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM