跨平台提示,技巧和陷阱

Ken*_*ran 3 cross-platform

如果你曾经在一个跨平台开发项目上工作,那么考虑开始一个人,你对某人(比如我自己)有什么建议?例子:

  • 什么有用?
  • 什么没有?
  • 你遇到了什么问题,你是如何解决的?
  • 您是否希望在所有平台上实现一致的外观和功能,或者尝试利用每个平台的优势?
  • 您使用了哪些语言和跨平台库?他们是否符合他们的要求?
  • 它是桌面,移动或基于Web的应用程序吗?

Ben*_*Ben 5

我参与了一个小型的跨平台项目.该应用程序是一个桌面应用程序,直接作为USB上的可执行文件分发.

最初做了一些研究 - 你可能能够追踪我的stackoverflow问题 - 并与Mozilla的XULRunner达成和解.

它在跨平台方面运行得非常好 - 你基本上运行了一个运行firefox和thunderbird的经过良好交叉测试的平台,所以交叉性(这个单词是什么?)非常可靠.

我认为它的第一个缺陷是文档 - 那里有很多,但起初有点模糊.

但是,mozilla论坛社区非常棒,非常友好和乐于助人.

在开发方面,它是所有javascript和一些类似html的标记语言,称为xul和使用css的样式(如果需要,你也可以用c ++构建扩展,但核心非常强大,因此它非常熟悉)离开,非常灵活.

XUL为应用程序(IMO)提供了一个良好的特定于平台的本机感觉,或者您可以完全重新完成您的chrome元素并制作自定义UI.

XUL的一个主要问题是,由于XULRunner的工作方式,您的源代码或多或少都可以被任何人看到.如果您拥有专有代码,这可能不适合您 - 或者您需要隔离在用c ++编写的单独库中(Xul术语中的XPCom组件).

我强烈推荐它.我有一个非常短的时间框架来建立项目,它真的救了我的屁股.我在Mac上进行了开发,它在PC上正常工作,没有任何重大改变.

此外,我还审查了该项目的其他平台.

  • 我已经看到了对跨平台UI工具包和QT(例如PyQT)或tcl/tk等语言的强烈支持.我不太喜欢它,但你可能想要调查它.

  • 有人建议使用AIR,JavaFX和.NET/Mono.对我来说,这是不可行的,因为它过于依赖某些系统(XP没有附带Java,Mac没有附带.NET/Mono,也没有附带AIR).如果你想要的东西只是开箱即用,这不符合要求.但您的要求可能会有所不同.

  • Titanium(来自Appcellerator)可能是最接近XULRunner的参赛者.它看起来很棒,非常强大,但与XULRunner相比,桌面开发版具有非常糟糕的调试功能.他们的议程更倾向于移动开发版,我可以理解,但我希望他们更关心桌面版.但是,如果跨平台移动开发是你所追求的可能是好的 - 虽然我还没有为此目的进行测试.

希望这可以帮助.