2

我们有一个即将到来的[大]项目,涉及一系列移动应用程序。不幸的是,我们还是这个市场的新手。我们最大的问题不是学习新东西,而是必须两次开发相同的应用程序,这意味着大约两倍的成本,因此我们正试图找到一个跨平台的解决方案。

由于我们的专长是 C# 和 .NET,我们对 MonoDroid/Touch 非常感兴趣,而且据我所知,它是一个成熟的框架。然而,它并不完全是跨平台的(或者我错了吗?),所以我们求助于 Phonegap,它可以让您使用 js、css 和 html 构建移动应用程序,这些技术我们觉得使用起来很舒服。

我们的应用程序将是数据密集型的,并且可能还需要由服务器“调用”,即服务器和应用程序之间可能存在双向通信。

所以我的问题是,鉴于这些应用程序,您会建议 phonegap 或 monoTouch/Droid 吗?

提前致谢。

4

3 回答 3

5
  1. Monotouch 不是跨平台的。它允许您创建可重用的元素,但您无法构建一次并部署到所有平台,特别是如果您的项目确实像您说的那么复杂。

  2. 我对phonegap了解不多。我一直避开它。自从我上次查看它以来,它可能已经发生了变化,但据我所知,它不是很健壮,也不能创建非常好的应用程序,尤其是(再次)对于复杂的应用程序。

  3. 还有另一个名为 Titanium 的跨平台框架,但与上面的两者类似,它不是很好。每天都有更多的支持,但它缺少一些关键组件,你往往会深入到一个项目中,并意识到你无法再进一步。

我的回答,你不会想听到的,是你应该为每个平台单独做这件事,然后向你的客户收费。

创建移动应用跨平台就像创建适合所有人的 T 恤。好的,所以你可以让它有弹性,你可以以一种“适合”每个人的方式设计它,但你最终会得到的东西会太大或太小,没有人会请享用。

iPhone、android、iPad、黑莓、windows phone 7、bada 等,它们都是非常不同的平台。仅仅因为它们都是手机并不能使它们完全相似。UI 的设计和显示方式各不相同,您与硬件(最终与用户)交互的方式也各不相同。案例和要点 - iPhone 当您向下查看视图时,您会创建一个导航堆栈,您可以使用标题栏中的后退按钮(其中包含当前视图的标题)进行导航。Android 您使用设备上的后退按钮导航,操作栏用于应用标题和其他“操作按钮”。

为此,我建议,如果您真的不想在本地做所有事情(这绝对是最好的选择),那么我建议您查看 Monotouch 并创建两个具有可重用组件的应用程序。

于 2012-08-21T09:40:12.770 回答
5

使用 PhoneGap,您将创建一个 Web 应用程序。它可能看起来像一个原生应用程序,但它实际上是一个在浏览器对象中运行的 Web 应用程序。

您将编写客户端 HTML 和 javascript,就像任何其他客户端 Web 应用程序一样。您可以创建对服务器的 ajax 调用以获取您的数据并在那里执行所有常用的 C#/.Net 工作。

使用 Mono,您将创建一个客户端应用程序,并且您可以在 C#/.Net 中对该客户端进行编程。

PhoneGap 或多或少是免费的,并且可以用于 Windows、iOS 和 Android 以外的其他平台,尽管您必须为每个版本设置环境。您可以为云中的所有平台进行编译,但这会花钱。

MonoTouch/Droid 将花费你几百美元。

对于每个平台,您必须进行一些额外的调整。可能给它一个原生的外观和感觉,调用不同的 API 等等。

我个人会建议 Mono 路线,因为您已经了解 C#/.Net。它会给你更快的结果。利用 MonoTouch 的免费试用版,看看它是否适合您以及是否值得购买('touch 和 'droid 均需 698 美元)。

于 2012-08-21T10:18:09.170 回答
1

这取决于。

我同意原生化可以为您提供最佳性能和用户体验。如果应用程序具有要求苛刻的 UI,这当然是唯一可行的选择。但是,如果应用程序提供更多信息(例如,可能显示新闻提要),那么混合 HTML5 应用程序可能是最佳选择。iOS 上的 UIWebView 中对 HTML5 的支持在较旧的 iOS 版本中存在一些怪癖,因此请谨慎行事。在 Android 和其他平台上,HTML5 还没有完全成熟。当然不是在没有 grunt 的旧硬件或带有次优 javascript 引擎的浏览器上。

凭借您的 .NET 背景,我建议您查看http://www.vsnomad.com并自行评估。将一个快速演示放在一起,看看它是如何支撑的。否则,是的,走原生路线。

于 2012-08-24T05:22:40.103 回答