构建跨平台应用程序 - 建议

Ben*_*Ben 5 air packaging cross-platform desktop-application xulrunner

我需要构建一个相当简单的应用程序,但它需要在PC和Mac上运行.

它还需要作为独立的桌面应用程序在磁盘或USB驱动器上重新分发.

最初我认为AIR对于它来说是完美的(它可以满足所有的API要求),但难度在于它可以分发,因为应用程序需要安装AIR运行时才能运行.

我遇到了Shu Player作为一个选项,因为它似乎能够将AIR运行时与应用程序打包并进行(无声?)安装.
然而,这似乎打破了Adobe的T&C(如此处所述),所以我不确定合法性.

另一种选择可能是锌,但我还没有测试过,所以我不确定它是否适合这项法案.

您会推荐或建议我查看什么?

任何建议都非常感谢

编辑:有关单声道使用的更多讨论(虽然没有真正的结论): 这里这里

编辑2: 也可能适合该法案,将检查出来.

还有其他人的评论吗?

EDIT3(一年后):实际上差不多一年以来我发布了这个问题,但似乎有些人时不时会遇到它,甚至一年之后也会提供答案.

以为我会稍微更新一下这个问题.我没有到处尝试tcl/tk选项,时间限制和不同的os版本的兼容性的不确定性导致我作为一个选项丢弃.

我确实尝试过Titanium但是虽然第一印象还不错,但他们确实在推动移动平台比什么都重要,而imho,桌面实现会因缺乏关注而受到一些影响.在一些操作系统上也有一些Visual Studio运行时出现问题的报告(现在不能记住细节).所以也放弃了.

我最终选择了XULRunner.两项主要呼吁是:

  • Firefox似乎在大多数操作系统版本上都是开箱即用的,所以我认为XULRunner应用可能与大多数系统兼容.保存了我很多测试,结果发现它确实在所有平台上运行得很好,没有一个报告说无法启动应用程序
  • 这是Javascript宝贝!语言学习曲线很小.要解决的主要问题是附加的xpcom接口以及如何查询它们.

在不利方面:

  • 我认为故障排除错误有时是一项艰巨的任务,venkman调试器有点笨重,最终使用控制台比什么都重要.
  • sqlite界面对于桌面应用程序来说是一个很好的资产,但是当一些东西不起作用时,我经常很难找到相关的错误信息 - 也许我做错了.
  • 花了一点时间研究如何将应用程序打包为PC和Mac的独立应用程序.最后的方法是有一个"shell"mac应用程序和一个shell pc应用程序和一些"编译"脚本,它们将复制shell并在正确的位置将自定义源代码添加到它上面.
  • 对于某些人来说,最后一个潜在问题是,由于xulrunner应用程序的性质,您的源代码将与应用程序一起部署,如果您愿意,可以使用混淆,但如果您想要保护您的知识产权,请记住这一点

总而言之,这是一个跨平台应用程序的绝佳平台.我强烈推荐它.

Bry*_*ley 5

Tcl/Tk拥有最好的包装解决方案之一.您可以使用特定于平台的二进制文件轻松地将跨平台应用程序(在完全可用的虚拟文件系统中实现)打包,以获得几乎任何现代桌面系统的单个文件可执行文件.在谷歌搜索术语starkit,starpack和tclkit.与现在的许多可执行文件相比,这种包装的二进制文件很小.

许多人嘲笑Tk是"老"或"不成熟",但它是最古老,最稳定的工具包之一.当存在这样的小部件时,它使用本机小部件.

然而,Tcl/Tk的一个显着缺点是缺乏任何类型的打印支持.如果您的应用需要打印,您必须有点创意.有特定于平台的解决方案,能够生成postscript文档,以及创建pdf的库,但需要额外的努力.


rin*_*rer 0

考虑一下 JavaFX 它可以通过现代 JRE 随处运行......!