使用Adobe Air/Java编写Web应用程序与使用特定平台语言相比的优缺点是什么?

3
我需要编写一个网络应用程序(也能离线工作),支持Windows、Mac(或者也可能是Linux)。我在考虑是否应该使用类似Air/Flash/Java这样的技术,因为这样只需要编写一次应用程序。但是,我想知道这种方法相对于为Windows编写C#,为Mac编写Objective-C/Cocoa/其他语言是否有任何不利之处。如果使用Air/Java,应用程序的功能会受到限制吗?使用特定于平台的语言编写应用程序有哪些优势?如果能够了解两种方法的优缺点,这将有助于我(以及其他人)根据自己的需求决定创建此类应用程序的最佳方式。非常感谢您的帮助!谢谢。
2个回答

2
首先要认识到的是,编写跨平台应用程序,在每个目标平台上看起来和行为像本地应用程序是一件困难的事情。
使用跨平台工具包(AIR/java):
- 理论上需要更少的工作量,应该更快地构建 - 共同的语言和工具包,只需学习一种东西 - 添加新的支持平台应该很容易(有点),构建安装程序,调试并提供任何本地平台集成等 - 倾向于仅实现最低公共分母功能。一个例子是java文件api。它只支持文件的基本概念,而Windows、OSX和Linux都有额外的功能。 - 可能仍需要特定于平台的集成代码(可能是本机),以获得可接受的集成水平。
使用本机工具包:
- 需要学习很多,从Windows MFC(或.Net winforms)到Cococa之间的转换将会相当不协调 - 您不仅需要不同的语言,还需要不同的工具 - 使用本机工具包没有限制或虚假的天花板,可以访问所有内容 - 使您的应用程序看起来像属于平台(对于Mac很重要)几乎是开箱即用的
个人建议:选择您最熟悉的语言工具包,根据您的应用程序有多厚(您提到它是在线部分),您可能能够在成功应用程序后以另一种语言重写它。

小改正:对于AIR,没有必要进行平台特定的集成 - 因为AIR不允许或支持任何平台特定的集成。 ;) - fenomas

0
很多东西取决于你将要编写的应用程序类型。我在很多内部工具中使用 Adobe AIR。
如果你使用AIR编写,你将得到一个看起来像网页的东西。这很好,因为人们习惯了浏览器界面 - 甚至可能比本地应用程序更熟悉。
但是,是的,你绝对会有限制。
那么你的应用程序是什么?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接