当前位置:  开发笔记 > 编程语言 > 正文

创建跨平台的Windows,Mac OS X应用程序

如何解决《创建跨平台的Windows,MacOSX应用程序》经验,为你挑选了3个好方法。

我想构建一个可以在Windows和Mac OS X上运行的应用程序.我也希望它能够利用它运行的平台所提供的最好的框架,API等等.有没有办法做这不需要编写Objective-C代码然后编写C#代码?我一直在考虑将C++作为替代方案,但我想知道是否还有其他任何东西.该应用程序将基于GUI(虽然我不知道它将做什么)

-G.



1> Sherm Pendle..:

你很早就想到了可移植性 - 事实之后,将它"搞砸"是非常困难的.

有各种各样的跨平台工具包可供使用,但恕我直言所有这些都没有在所有支持的平台上提供"原生"外观和感觉.在Mac(我使用的)上,这些套件的支持者总是想提到他们正在使用原生控件.这是一个好的开始,但这不是整个旅程.Apple的人机界面指南解决的其他问题包括如何安排控件,如何设置按钮标签,应使用哪些标准快捷键等.

即使是微软也必须学习使用命运多Word的Word 6.0 for Mac来尝试编写跨平台GUI的危险.

恕我直言,更好的方法是使用MVC设计,模型层使用标准的可移植C++编写,视图和控制器层使用每个平台的本机工具包.对于Mac版本,Carbon和C++曾经是一个有趣的选项,现在不再支持了,所以你想要使用Cocoa,在视图中使用Objective-C,在控制器中使用Objective-C++来弥合语言差距.您的Windows版本同样可以将您的模型编译为"托管C++",并将任何.NET语言用于控制器和视图.


我建议远离Carbon/C++ for Mac版本,因为Apple没有将Carbon移植到64位.虽然现在可能无关紧要,但它表明Cocoa/Objective-C是Mac编程IMO的未来.
不幸的是,GUI应用程序的大约75%的逻辑都在GUI中,而不是模型(我已经在自己的应用程序中验证了这一点).
嗯,模式更复杂,你必须两次编写应用程序的更大部分.理论上不错,但需要付出代价.

2> Robert S...:

看看Real Studio吧.认真.您可以在Real Studio中编写应用程序,并将其部署在Windows,Mac OS X和Linux上.

编辑:Real Studio现在是Xojo.


令我惊讶的是,这是几年来唯一针对所有3个选项的真正选择.

3> Jamie Love..:

wxWidgets是一个跨平台的C++库,是一个实用的选择.但我同意Sherm的观点 - 所有跨平台库都会为原生应用程序创建一个较差的UI.

每个具有不同UI语义(按钮顺序等)的操作系统都会变得更难,所以当你可以获得良好的外观时,通过一个视图层在每个平台上获得'感觉'几乎是不可能的.

根据您最终的操作,您可以更好地找到Web界面(例如,在您的应用中嵌入Web服务器并将HTTP页面提供给浏览器).你避免了L&F问题!

或者,你可以决定你将拥有一个完全非标准的L&F,并选择像wxWidgets或Tcl/Tk这样的东西.

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有