针对不同平台单独开发,有人推荐吗?

时间:2008-09-30 04:15:08

标签: c++ user-interface cross-platform platform-specific

我知道推荐几个跨平台库很容易。

但是,为您的产品单独处理每个平台是否有好处?

是的,所有平台都会使用一些基础库,但每个平台上的UI和其他一些东西都会有所不同。

我没有限制该产品在每个平台上必须100%相同。

Mac,Linux和Windows是目标平台。

重型win32 API,MFC已用于Windows版本。

我不完全适合跨平台库的原因是因为我觉得最终产品在尝试将其推广到所有平台时会受到一些影响。

6 个答案:

答案 0 :(得分:14)

我想说每个平台的个人开发的好处是:

- 原生外观

- 您的开发人员获得的平台知识

-...我没有想法

说真的,如果你不小心,开发和维护你的应用程序的3个单独副本的成本可能会很高。

如果它只是您担心的GUI代码,那么通过各种方式将GUI部分分离为每个平台的开发工作,但您会后悔没有保持核心“业务逻辑”类型代码的常见。

考虑到保持GUI与逻辑分离通常被认为是个好主意,这会迫使开发人员在不可避免地出现将“只是一点点”业务逻辑放入表示层的诱惑时保持这种分离。

答案 1 :(得分:2)

我认为好处是

  • 能够在所有平台上获得完全原生的行为,这对最终用户来说是件好事

存在风险

  • 你最终可能会编写三个应用程序而不是一个有一些差异的应用程序(也就是说,它更容易落入让我们做X的方式不同!)
  • 您将在不注意的情况下在不同的操作系统版本之间创建轻微的不兼容性。
  • 维护成本将与您拥有的不同代码的数量成比例

因此,通过考虑风险,您可以开发优秀的本机行为应用程序,可以使用最大的通用核心(抵御风险诱惑1),为所有平台进行大量集成测试(最小化风险2)并设计减少获取本机行为所需的代码量(处理风险3)

答案 2 :(得分:1)

我不能否认这很有吸引力,但它确实提出了一个中间立场的问题。显然,你会分享一些后端代码,但在设计和代码方面你能分享多少以及你在UI方面分享的内容?

我认为这是一个个案问题。通常,它可能不值得,但某些特定平台上的某些特定应用程序应针对该操作系统的详细信息。

答案 3 :(得分:1)

是的,跨平台的UI库总是会让你的程序在至少一个平台上看起来和/或行为有点“怪异”。

如果您在UI代码和内部结构之间有很好的分离,则重新使用非UI代码并为每个平台创建优化的用户界面并不是很困难。许多高预算的跨平台应用程序就是这样制作的。

答案 4 :(得分:1)

它还取决于您的平台有多么不同,以及一个平台上的所有功能是否可用于另一个平台。我开发的工具可用于Win32平台,Windows CE和移动版以及各种嵌入式平台。该产品的某些方面与没有匹配硬件的平台无关。 例如,我目前正致力于[链接文本]基于现场的土地调查产品1,该产品可与各种测量设备(如GPS和全站仪)配合使用,使用各种通信媒体,如蓝牙,RS232和无线调制解调器,适用于各种平台。我目前正在处理的特定版本将被托管在具有相对较小的屏幕和键盘以及非常有限的内存和存储的测量设备上。没有必要包括与其他设备相关的功能,并且使用户保持界面尽可能简单和简化是非常有益的。

在某些领域,简化的用户界面,小型可执行文件以及对英国媒体报道软件的零容忍仍然至关重要。肯定有很多共同的来源,但也有大量的目标特定来源和条件编译。

答案 5 :(得分:0)

对于客户端程序(即不是Web服务器程序),很难找到合适的Mac和Linux开发人员,而且很难找到优秀的Windows开发人员。

您拥有的平台无关代码越多,在所有三个平台上完成项目的过程就越简单快捷。

维护三个代码库会很昂贵且风险很大。使用跨平台工具的竞争对手每次都会打败你。