Windows/osx/ipad 上的跨平台 GUI



我在夏天做一个项目,涉及完全重写一个大型应用程序,使其更加现代和跨平台兼容。它需要在Windows,OS X和iPad上运行。iPad 版本是重中之重。最好将来也很容易转换为 Web 应用程序。

我目前的计划是用 HTML/CSS/JS 完成所有 GUI,使用 Chrome Embedded Framework 来渲染页面并处理交互性。这样,所有 UI 在所有内容上都是跨平台的,我只需要编写特定于平台的代码即可显示它。这也意味着,如果我/当我将其移植到 Web 时,大多数 UI 已经采用 Web 兼容格式。应用程序代码本身的其余部分也应该主要是跨平台的,只是纯C++。iPad没有CEF,所以我正在考虑使用UIWebView类来做同样的事情。我很好奇你对在iPad上使用HTML作为GUI的看法。

我主要关心的是:

  • 性能 - 我不知道UIWebView的性能特征是什么,因为它用于GUI。会有很多交互式对话框,甚至需要一些动画。我对如何从Javascript与Objective-C进行通信进行了一些研究,最流行的方法(将文档位置设置为一些自定义URL,如 MyApp://,并从字符串中提取消息(似乎真的很慢。

  • 可用性 - iOS用户习惯于某种标准的交互性(例如,非常平滑的过渡,可拖动的侧边栏,一切都快速而精致(。我相信我可以在Windows/OS X上使用CEF做到这一点,但不确定iPad。

谢谢你的时间!

我假设您使用的是装有最新版本XCode的Mac(否则您将无法在Mac OS X或iOS上发布到App Store(和C++。除此之外,您最好的选择是使用两种不同的工具包。我推荐适用于Windows和Mac OS X的WxWidgets(它为两个平台提供了本机外观和感觉(和iPad的标准iOS工具包。

对两个平台使用单个工具包的问题在于它们彼此之间的不兼容程度。可以将HTML5/CSS3/Javascript用于GUI,但是您必须创建三个单独的项目(每个平台一个(。虽然,我知道有一个工具包可以用来使用 HTML/CSS 制作桌面应用程序,但我认为它与移动设备不兼容。

如果你现在想知道公司如何为iOS,Android,Windows,Mac OS X甚至Linux开发应用程序,他们有几个特定于其平台的开发人员。所以他们会是一群Windows开发人员,另一组Mac OS X开发人员,等等。有时,如果他们使用像WxWidgets或Qt这样的跨平台工具包,不同的桌面开发人员组会被合并到一个桌面开发组中。

如果只有少数人在做这个项目,那么制作桌面和移动应用程序就更难做到。

我决定使用桌面和iOS的HTML。制作 3 个独立的项目并不是那么困难,使用 HTML 渲染解决了大多数跨平台问题。感谢您的所有回答。

您当然可以在iPad上使用HTML5/CSS/JS GUI。甚至还有GUI框架可以帮助您解决此问题。我认识的那个是Enyo。你会发现更多。

基于这些技术构建的 GUI 的好处是,在许多情况下,您可以使用 Web 浏览器在桌面上进行开发。

对于部署到iOS设备,您只需手动将GUI放入UIWebView中,也可以使用phonegap,它可以为您处理繁重的工作,同时还允许您选择在Android和iOS以外的其他一些移动平台上发布来自相同来源。

对于桌面版本,您可能需要评估相同的 GUI 是否可以在嵌入式浏览器窗口中工作。不依赖于手机/平板电脑硬件的Enyo应用程序在桌面Web浏览器中运行良好,但我怀疑用户可能会发现GUI对于桌面使用很奇怪。如果你需要构建更传统的东西,那么如果你想要功能和最好的原生外观和感觉,我推荐Qt,如果你想要简单,我推荐FLTK。这两个框架都可以在Windows,OS X和Linux上运行。

你可以试试FireMonkey,它是商业的,并且(在某种程度上(得到了Embarcadero的支持。 亮点是跨平台编译和调试(!(,Mac OS和Windows上完全相似的行为(iOS工作,但通常需要不同的形式(,完全矢量化(!!(用户界面意味着它们可以放大/缩小,也可以在3D中旋转,完整的3D支持(!!(以及内置于库中的动画和效果 - 即使它们不一定适合业务应用程序。 它由一个非常好且非常快速的 RAD 补充。

缺点是社区相对较小,一些缺陷和缺失的组件仍处于版本 2,例如文件夹选择对话框、托盘图标支持和其他杂项。 您可能想在平台上搜索问题。 你可以用C++或Delphi Object Pascal为Firemonkey写作。

最新更新