繁体   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