如何开发支持蓝牙的跨平台移动应用程序最佳方式?

8
我已经阅读了Phonegap在本地功能支持的相关信息,请点击这里。很明显,没有提到蓝牙支持。我无法找到或定位到任何其他跨移动平台开发工具。因此,我目前面临着两个选择。
  1. 为所有平台单独构建(非常痛苦的选项)

  2. 寻找合适的跨平台开发解决方案(尚未找到)。

我的问题是;对于那些移动开发者,你会建议我采取哪个选项,还有其他的建议吗?如果可能,也请帮忙详细说明其优缺点。
非常感谢。

2
据我所知,iOS上没有开放的蓝牙SDK。蓝牙只能通过Gamekit抽象接口来使用,这会限制你的操作。另一方面,在Android上可能可以构建一个与GameKit兼容的蓝牙实现。我曾经探索过这个选项,但除了最初的研究外,并没有取得太大进展。 - Cliff
3个回答

8

独立为所有平台构建(非常麻烦的选项)

根据我的经验,这绝对是最不痛苦的选项,不仅适用于蓝牙。处理泄漏跨平台抽象的开销往往会超过实际生产产品的好处。构建一个出色的iPhone应用程序。构建一个出色的Android应用程序。您可以共享大部分UI设计(尽管不是全部)。您可以共享大部分数据结构设计。您可以共享一些内部架构。您可以共享任何网络协议(特别是如果您使用JSON进行设计)。但是避免代码共享并避免追求最低公共分母。它相当低....

对于某些项目类型,分享一些平台之间的C++代码是有意义的。试图在JavaScript中开发此类内容将导致沮丧,一旦您超越了最基本的应用程序,就会变得更加困难。在移动JavaScript中轻松地创建某些东西,使其基本正常工作很容易。要使其在所有平台上看起来和运行良好,则非常困难;比起一开始就以本机方式编写它们要困难得多。

关于此的更多讨论:


构建一个出色的iPhone应用程序。构建一个出色的Android应用程序并不容易...此外,您不能共享任何代码。您可以共享模式和流程,但两个平台都有独特的架构,您将不得不两次编写/管理每个功能。所以是的,他会得到一个更好的最终产品,但我无法相信这是“最少痛苦”的选择! - edthethird
4
将其与其他选项进行比较后,我认为如果您的目标是制作一个严肃(非游戏)应用程序,那么它是最不痛苦的选择。 heavily on OpenGL的游戏可以在平台之间显着共享OpenGL C/C++代码。但是即使Facebook经过多年努力修复其JS版本,最终也放弃并重写了本机应用程序。任何考虑使用JavaScript编写iOS应用程序的人都应该先说“我是比Facebook团队更优秀的JS开发者。” 如果您可以诚实地这样说(某些人可能可以),那就试一试。如果不能,就本地编写。 - Rob Napier
非常好的回答和评论!我认为你在这里提出了一个非常有力的观点。我已经考虑并研究了各种平台,甚至考虑用GPS替换蓝牙功能,但仍需考虑更多问题。诺基亚作为一家公司,拥有运行在大约五个不同移动平台上的设备,而且屏幕尺寸也有数十种。这真的让人感到痛苦。我看到了hotpaw2的回答和Cliff的评论,但在接受之前我会等待更多意见。谢谢! - Chibueze Opata

3

您将iOS列为所需平台之一。在iOS上,除了蓝牙LE或通过Gamekit、耳机或键盘进行通信之外,任何通用蓝牙通信只对苹果MFi计划许可证持有人开放。要获取有关此许可的任何详细信息,您需要先申请苹果的MFi计划。据我所知,没有第三方或跨平台工具链可以帮助您处理iOS相关问题。


0

我认为OP所说的不是iOS应用程序与设备之间的通信,而是点对点蓝牙通信。那么苹果MFi计划许可的要求是否适用?

如果是这样,那么Android或Windows Phone 8上的点对点蓝牙API(和硬件)是否与iOS的API兼容?如果它们是兼容的,那么通过JSON传递数据对于构建跨移动应用程序来说应该是相当简单的。

在我看来,对于简单的商业应用程序,如果您想充分利用每个平台上可用的资源并符合它们不同的UI设计原则,则构建每个平台的本机应用程序是正确的选择。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接