使用 Xojo 进行跨平台开发有哪些妥协?

What are the compromises with using Xojo for cross platform development?

许多关于 SO 的跨平台开发主题似乎已经有 6 到 9 年的历史了。有没有人最近使用过 Xojo?它可以用于在 macOS 和 Windows 上的 C++ 生成的链接库之上快速部署 UI 吗?这对 iOS 有何影响?此工具有哪些限制?

我没有使用 Xojo 进行 iOS 部署的经验,但使用 Xojo 进行了相当多的 x 平台项目 (Mac/Win/Linux),在这些项目中我还访问了自己编写的 C 代码,在 iBored 例如。

总的来说,与 Qt 或 Java 相比,我更喜欢 Xojo 来设计和部署具有 GUI 的应用程序。恕我直言,Xojo 更接近 UI 细节。但是,您将很难找到帮助,因为社区很小。

要访问 C++ 代码,您需要自己编写一个 C 级层,因为 Xojo 不提供 link 和使用 C++ 对象的简单方法。但是在任何库(.dylib、.dll、.so)中连接普通函数都非常容易,主要涉及编写函数声明的 Xojo 等价物,还可能添加一些结构定义。您可以传递所有简单的数据类型(各种大小的 Int、float、double、C 和 Pascal 字符串,甚至可以通过指针访问原始内存),但必须像 Xojo 一样为更复杂的数据结构(数组、字典等)提供访问函数对象管理不与 C++ 或其他运行时的对象管理混合。

Xojo 已经存在了将近 20 年(以前称为 REALbasic),并且值得信赖。

OTOH,Xojo 是闭源的,公司修复问题的速度相当慢(甚至不能/不愿意)- 显然,您无法自行修复。我有不止一个案例,我想出了如何修复他们二进制代码中的错误,他们想禁止我这样做,威胁要使我的许可证无效,同时也不承诺提供修复。如果这让你担心,我建议你远离Xojo。