对于应该为特定平台编写应用程序还是使用跨平台方法并接触更多潜在客户,您有什么看法?
这将是一个基于 GUI 的应用程序,我正在考虑使用 Java。
我使用的大多数基于 Java 构建的应用程序在各自平台上的运行不如本地应用程序流畅。
我想到的两个平台是windows和macs。
如果我只是为了自己的使用而创建应用程序,并且我必须选择一个系统,我会选择专注于 mac。
我想听听你的想法。
对于应该为特定平台编写应用程序还是使用跨平台方法并接触更多潜在客户,您有什么看法?
这将是一个基于 GUI 的应用程序,我正在考虑使用 Java。
我使用的大多数基于 Java 构建的应用程序在各自平台上的运行不如本地应用程序流畅。
我想到的两个平台是windows和macs。
如果我只是为了自己的使用而创建应用程序,并且我必须选择一个系统,我会选择专注于 mac。
我想听听你的想法。
I would use Qt and yes, definitely target Cross Platform...
The major reason isn't in fact what you think it is (being cross platform by itself) but actually that by targeting multiple platforms your code by some freaking weird magical reasons tends to end up with far better code quality. I've seen this happen countless times in my own projects. Every time I add a new platform the quality of the code increases and the code becomes more clean...
Also every serious app should have as few "dependencies" as possible, being cross platform means you have less dependencies... ;)
Then as a "bonus" you get to your app to run on multiple platforms...
要求,要求,要求。
严肃地说,“这取决于”是正确的答案。
真正的跨平台是艰苦的工作;在您/您的用户熟悉的地方工作是值得的。以有效的方式解决问题确实是重中之重。
一般来说,跨平台开发作为一种艺术形式有点被高估了。Java 是这里的领先技术,但即使在这种情况下,大多数 Java 程序员也不会真正跨平台。Vuze、LimeWire 和 JRipper 等工具在任何地方都能很好地工作,但从统计数据来看,这些都是例外。大多数 Java 应用程序,尤其是企业类型的应用程序,都是针对一个平台进行编码的,而且它们从不真正移动。
如果您想使用 Mac 和 Windows,请考虑花时间研究 Limewire 和 Vuze 代码库。这两个应用程序在两个平台上都运行得非常好。
你肯定需要两个构建。一个版本可能不会做。
建议先针对自己觉得舒服的平台开发,可以利用所有平台噱头的地方;在这种情况下,这将是 OS X。
稍后,如果您的应用程序在 Mac 上成功,请查看移植选项。IMO 不值得在移植上投入精力,直到确定首先会对应用程序产生重大兴趣。
在这个时代,编写原生代码真的有充分的理由吗?
是的。可用的语言和库不能很好地完成出色的编程。充其量,它们允许人们编写跨平台运行良好的代码,但永远不会出类拔萃。
选择一个并专注于它。专注于那些观众(无论如何,你会发现观众的口味和欲望是不同的)。
一旦你有了一个人们在另一边叫嚣的应用程序,就在有人成为竞争对手之前,评估移植你精心调整和精心设计的产品的成本/收益。
如果您尝试“为两个主人服务”,您将根据两个平台最简单的方式做出设计决策,这不是一个好的设计过程。
-亚当
取决于您希望在申请上花费多少时间。最快的方法是 Java,否则您可以使用 C++ 构建模型并使用 MFC 和 Cocoa 执行单独的 GUI 代码。
如果您的应用程序使用 MVC 设计,您可以使用 C++ 编写可移植模型类,并为您想要支持的每个平台编写本机控制器和视图类。这为您提供了两全其美的优势 - 实用的可移植性,以及您的用户会感谢您的本机界面。
我同意您对 Java 应用程序与本机应用程序的观察,尽管我确信有经验的 Java 程序员可能会使其工作。
最重要的是,Mac 和 Windows 的编程 API 是在各自系统上构建接口的最佳工具。如果您希望您的应用程序在特定系统上顺利运行,您应该使用该系统的 API。
如果跨平台实现绝对必要,请考虑将程序的所有核心功能(非用户界面部分)编写在一个可以为两个系统编译的库中(c++ 是一个明显的选择),然后为每个可以调用公共库的目标系统构建一个漂亮的用户界面。
恕我直言,这个讨论应该由客户需求来回答。
大多数时候,IT 提供解决方案,构建解决方案的方式只是客户的一个细节。
但是,如果您的首选开发环境错误,使代码可重用可能会很有用。
许多其他标准可能会进入考虑范围。例如,如果您的软件用于医疗保健,您可能希望支持 10 年,那么您必须选择支持超过 10 年的操作系统(忘记 windows 和 mac)。等等
我经常发现 PC 开发人员试图利用 Mac 市场(有些成功)。反过来,他们在上述“跨平台”架构(Java,或一些 Qt 框架等)中开发应用程序,结果通常是一个看起来丑陋的应用程序,操作系统集成支持很差,社区的强烈反对开始于评论。
我的建议,移植它。做好工作,了解您的市场,然后再将您的跨平台产品倾销到地毯式炸弹营销方法中。
为什么不考虑 Web 应用程序。
您可以在浏览器中构建丰富的 UI 网站,该网站可以在任何地方和所有平台上运行,如果您熟悉 Java,您可以尝试使用 GWT 的“Weblication”查看GWT 的演示页面
让它成为一个网络应用程序?否则我猜是Java。这取决于很多事情,您的应用程序类型,目标等。
这实际上取决于您的用户是谁。不要仅仅因为可以跨平台。无论工具如何,都需要有真正的需求。测试会消耗相当多的时间。您仍然需要在两个平台上进行彻底测试。
我使用 REALbasic 从单个代码库创建各种跨平台桌面应用程序,它对我和我的客户都很有效。
我在使用SWT的跨平台 Java 方面运气不错。这将在任何操作系统上为您提供漂亮的原生外观,并且没有很多问题需要任何 JNI 代码。运气好的话,您应该能够将完全相同的代码库分发给两个目标,并且它应该可以正常工作。
话虽如此,您应该评估您是否真的需要跨平台功能。至少,它将要求您在每个操作系统上测试应用程序的 GUI 层(测试布局、演示等)。对于大型应用程序,这很快就会变得很麻烦。
在任何一种情况下,从一开始就选择跨平台语言将为您提供未来的灵活性。如果您要从一开始就编写本机代码,那么将代码移植到另一个平台并非易事。它可能伴随着几个错误,并且还需要将所有测试代码移植到新平台。您会遇到任何新功能、错误修复等的同步问题。使用 Java,您可以编写将在两个操作系统中运行的 JUnit 测试,并且任何错误或新功能都将自动传播到两个版本。
这确实取决于您的特定应用程序。如果您预计两个操作系统都有用户群,那么这应该决定您的语言选择。
可以在 Windows、Linux 和 Java 上运行一个漂亮的 Java 应用程序 - 例如查看SBCommander - 请注意,即使您没有应该的硬件,您也可以运行它并查看 UI控制。
另一方面,我发现很难做的一件事是编写一个跨平台的应用程序,它的外观和行为都像每个平台上的原生应用程序。关于应用程序的行为方式有太多不同的假设。