单独为不同的平台开发,有人推荐吗



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

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

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

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

Mac、Linux和Windows是目标平台。

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

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

我想说,每个平台单独开发的好处是:

-原生外观

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

-。。。我没主意了

说真的,如果你不小心的话,开发和维护3个独立的应用程序副本的成本可能是巨大的。

如果你担心的只是GUI代码,那么无论如何都要将GUI部分分离到每个平台的开发工作中,但你会后悔没有将核心的"业务逻辑"类型的代码保持通用。

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

我认为的好处

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

风险在于

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

因此,通过考虑风险,您可以开发出性能良好的本机应用程序,具有尽可能大的通用核心(抵御风险1的诱惑),为所有平台提供一套强大的集成测试(最大限度地降低风险2),并设计为减少获得本机行为所需的代码量(注意风险3)

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

如果UI代码和内部之间有很好的分离,那么重用非UI代码并为每个平台创建优化的用户界面就不难了。许多高预算的跨平台应用程序就是通过这种方式制作的。

它还取决于您的平台有多不同,以及一个平台上的所有功能是否在另一个平台中可用。我开发的工具版本可用于Win32平台、Windows CE和移动以及各种嵌入式平台。产品的某些方面与没有匹配硬件的平台根本不相关。例如,我目前正在开发一种基于现场的土地调查产品1,该产品可在各种平台上使用各种通信介质,如蓝牙、RS232和无线电调制解调器,与各种测量设备(如GPS和全站仪)配合使用。我目前正在开发的特定版本将搭载在一个测量设备上,该设备的屏幕和键盘相对较小,内存和存储空间非常有限。包括与其他设备相关的功能是没有意义的,保持界面尽可能简单和精简对用户非常有益。

精简的用户界面、小型可执行程序和对膨胀软件的零容忍在某些领域仍然至关重要。当然有很多通用的源代码,但也有很多特定于目标的源代码和条件编译。

我不能否认这很有吸引力,但它确实提出了中间立场的问题。很明显,您将共享一些后端代码,但在设计和代码方面,您可以共享多少以及在UI方面共享什么?

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

对于客户端程序(即不是web服务器程序),很难找到优秀的Mac和Linux开发人员,也不容易找到优秀的Windows开发人员。

独立于平台的代码越多,在所有三个平台上完成项目就越容易、越快。

维护三个代码库既昂贵又有风险。使用跨平台工具的竞争对手每次都会在市场上击败你。

最新更新