我需要为桌面PC应用程序开发(Windows,MAC,Linux)提供跨平台引擎/框架的建议。我看到了3种可能性,Qt,Java和Adobe AIR。
答案 0 :(得分:13)
Qt满足所有这些标准,但“原生外观”除外。没有具有本机感的跨平台框架,特别是在OS X上,用户对应用程序的“感觉”非常苛刻。如果您真的想要 native 外观,那么最好通过在C ++或C#中编写共享框架,然后在每个平台上提供本机GUI(您可以使用MonoMac提供本机)使用C#而不是原生Objective-C的Cocoa UI,如果那是你的一杯茶。
尽管如此,我们对Qt(和商业支持)的跨平台开发非常满意。特别是新的OpenGL加速2D场景API使动画UI非常容易。 QtCreator是一个不错的IDE,具有视觉设计支持。
答案 1 :(得分:9)
与其他人相反,可能是因为我在一个实时交易Swing应用程序上工作,我认为Java是你需求的最佳答案(但是,我认为这个问题是主观的,因为之前的答案已经显示)。让我发展。
它必须易于安装(运行时是一个缺点,但C ++包装器和/或安装程序可以解决我认为的问题)。
使用Java,您可以依赖Java Web Start,据我所知,这是易于使用的应用程序的最佳解决方案:您单击浏览器上的链接,应用程序安装在开始菜单中/ desktop并在下载后立即启动。似乎Adobe AIR提供了相同的功能,但在我看来,由于其生态系统的深度,Java Web Start集成了更强大的分发解决方案(例如,生成.jnlp
文件的简单能力按需)。
它必须快速且具有丰富的GUI(不是3D游戏,但绝对是一些2D图形)。
与大多数流行的观点相反,在Java中生成良好的图形是可能的。以一本优秀书籍的优秀filthy rich clients伴侣网站为例。
开发环境必须易于建立,UI开发工具必须具有拖放功能才能定义应用程序布局。
Eclipse是IDE的事实行业标准,它集成了多个DnD IDE构建器。我只想举例说明最近解放的Windows Builder Pro。
目标应用程序必须具有原生外观。应该提供专业的有偿支持。
嗯,Swing默认look'n'feel确实与系统1略有不同。但是,有一些优秀的第三方,列为here,作为一个例子。
最后,举一些例子:
答案 2 :(得分:5)
我不建议使用Java进行桌面开发。我不在乎别人怎么说,与C ++这样的本地语言相比,Java仍然很慢。我会选择Qt。 IDE具有GUI构建器,可以集成到Eclipse或Visual Studio中。
这是一个有用的资源: http://qt.nokia.com/products/
答案 3 :(得分:2)
看一下Appcelerator Titanium:它基本上将一个Web应用程序包装在浏览器中。你可以使用wen tech在GUI中拥有任何你想要的东西,但它看起来像是一个ap [p。
答案 4 :(得分:2)
奇怪的是,没有人提到Real Studio(现为Xojo)符合您的所有要求:
答案 5 :(得分:1)
首先要提到http://wxwidgets.org/,这是最受欢迎的X-platoform frameoworks之一。根据应用程序的复杂性和“原生性”的要求,跨平台框架可能适合您。使用框架构建的x平台应用程序通常感觉有点“异类”,特别是在Mac上,但可行。一个很好的例子是http://taskcoach.org/。
如果您的用户能够容忍丰富的下载大小,高昂的内存要求和一些非原生外观,那么纯Java,eclipse RCP或NetBeans platform可以为您服务。你可以节省相当多的开发时间。
但是我不知道满足所有您的要求的跨平台框架。
如果你需要进入生产级应用程序,我所看到的最好的策略是保持原生,但将依赖于UI的代码拆分为跨平台(例如C ++业务逻辑)和UI。这样,您将使用本机界面构建工具(每个平台都有一些好的)。根据应用程序的复杂性和“完成”要求,您实际上可以节省走这条路的时间。
可以找到“原生X平台”流程的精彩概述in this answer by Chris Hanson。