我知道推荐几个跨平台库很容易。
但是,为您的产品单独处理每个平台是否有好处?
是的,所有平台都会使用一些基础库,但 UI 和其他一些东西在每个平台上都会有所不同。
我没有限制每个平台上的产品必须 100% 相似。
Mac、Linux 和 Windows 是目标平台。
重win32 API,MFC已经用于Windows版本。
我不完全支持跨平台库的原因是因为我觉得最终产品在尝试将其推广到所有平台时会受到一点影响。
我知道推荐几个跨平台库很容易。
但是,为您的产品单独处理每个平台是否有好处?
是的,所有平台都会使用一些基础库,但 UI 和其他一些东西在每个平台上都会有所不同。
我没有限制每个平台上的产品必须 100% 相似。
Mac、Linux 和 Windows 是目标平台。
重win32 API,MFC已经用于Windows版本。
我不完全支持跨平台库的原因是因为我觉得最终产品在尝试将其推广到所有平台时会受到一点影响。
我想说每个平台的个人开发的好处是:
- 原生的外观和感觉
- 您的开发人员获得的平台知识
-...我没有想法
说真的,如果您不小心,开发和维护应用程序的 3 个独立副本的成本可能会非常高。
如果它只是您担心的 GUI 代码,那么无论如何都要将 GUI 部分分离到每个平台的开发工作中,但是您会后悔没有保持核心“业务逻辑”类型代码的通用性。
考虑到将您的 GUI 与逻辑分开通常被认为是一个好主意,当不可避免地出现将“一点点”业务逻辑放入表示层的诱惑时,这将迫使您的开发人员保持这种分离。
我认为好处是
风险在于
因此,通过考虑风险,您可以开发具有尽可能大的通用核心(抵制风险 1 的诱惑)、适用于所有平台的大量集成测试(最小化风险 2)并设计为性能良好的原生应用程序减少获得本机行为所需的代码量(注意风险 3)
我不能否认这很有吸引力,但它肯定会提出中间立场的问题。很明显,你会分享一些后端代码,但是你能分享多少,你会在设计和代码两个方面在 UI 方面分享什么?
我认为这是一个个案问题。通常,这可能不值得,但某些特定平台上的某些特定应用程序应该针对该操作系统的细节。
是的,跨平台 UI 库总是会让你的程序在至少一个平台上看起来和/或表现得有点“怪异”。
如果您在 UI 代码和内部实现了良好的分离,那么重用非 UI 代码并为每个平台创建优化的用户界面并不难。许多高预算的跨平台应用程序就是这样制作的。
它还取决于您的平台有多不同,以及一个平台上的所有功能是否在另一个平台上可用。我开发的工具具有适用于 Win32 平台、Windows CE 和移动设备以及各种嵌入式平台的版本。该产品的某些方面根本与没有匹配硬件的平台相关。例如,我目前正在研究 [link text] 基于实地的土地调查产品1与各种测量设备(如 GPS 和全站仪)配合使用,在各种平台上使用各种通信媒体,如蓝牙、RS232 和无线电调制解调器。我目前正在研究的特定版本将托管在具有相对较小的屏幕和键盘以及非常有限的内存和存储空间的测量设备上。包含与其他设备相关的功能是没有意义的,保持界面尽可能简单和流线型对用户非常有益。
流线型的用户界面、小的可执行文件和对膨胀软件的零容忍在某些领域仍然至关重要。肯定有很多通用源,但也有很多特定于目标的源和条件编译。
对于客户端程序(即不是 Web 服务器程序),很难找到优秀的 Mac 和 Linux 开发人员,也很难找到优秀的 Windows 开发人员。
您拥有的独立于平台的代码越多,在所有三个平台上完成您的项目就越容易和更快。
维护三个代码库既昂贵又冒险。使用跨平台工具的竞争对手每次都会在市场上击败您。