为多个平台开发移动应用程序(没有跨平台框架!)

时间:2010-09-11 16:27:20

标签: mobile cross-platform

我们是一个相对复杂的非游戏iPhone 3应用程序的开发者,我们开始进行雄心勃勃的重写以更好地利用iOS 4.这个应用程序有一个重要的社交元素,所以我们开始认为我们我想在尽可能多的现代移动平台上提供它:

  • iPhone / iOS的
  • 的Android
  • Windows Phone
  • BlackBerry OS
  • 的Symbian

跨平台开发有多种方法,它们都有局限性。没有任何解决方案可以像本机应用程序那样利用所有设备的功能。鉴于我们的应用程序的复杂性,我只想在不诉诸跨平台框架的情况下最大化“逻辑”代码重用。我正在设想的工具可以使针对多个平台的应用程序开发和测试更加无缝。 我们如何才能在5个平台上进行开发所需的工作量不到5倍?

6 个答案:

答案 0 :(得分:15)

尽可能多地将功能推送到共享Web服务器,并尝试仅创建特定于平台的UI。

答案 1 :(得分:2)

我知道你没有说过跨平台的框架,但也许要看一下:

在javascript中编写所有核心逻辑。随意进行单元测试。然后使用Appcelerator等工具将该逻辑转换为本机代码。

然后将该逻辑代码导入到每个平台的本机平台项目中,并构建您认为无法以任何其他方式正确实现的其他功能。

对于他们现在不支持的平台,您可能能够找到js到本机代码转换器,或者确实是在这些平台中托管js环境的方式。

答案 2 :(得分:1)

这些都不会在一起玩得很好。这样做并不符合他们认为的最佳利益。

最好的办法是将所有内容都愚蠢并保持简单。当您尝试沙箱多个敌对利益时,简单性总会获胜。

查看XML以获取所有数据,然后有5个二进制文件来读取它或通过PHP将它们全部推送到Web服务器。所有这些移动平台都能很好地与XML一起运行,因为这样做符合他们的最佳利益。在您获得核心功能后,担心品牌和外观。

注意:Javascript是你应该在开始时看到的最后一件事。它很少以同样的方式在所有平台上运行良好。因此,请确保您的JS层独立于您的数据层。不要整合他们。那会很糟糕。您希望您的Android JS可能与您在Blackberry上推送的JS有所不同。因为在你尝试并测试你的方法之前,你不会知道它会变得多么古怪。

答案 3 :(得分:1)

我同意贝丝的观点。我开发了一个基于相同思维过程的产品。我有一个在socket上运行的java服务器,它有一个客户端库,客户端应用程序用来连接服务器。客户端抽象出socket插件,并为客户端应用程序提供简单的api。

服务器可以并行处理多个客户端连接,线程池概念。

现在,因为它将是一个java客户端库,所以你只能在android上运行它。要使其在其他平台上运行,您可以在J2EE上运行此客户端部分。这样您就可以创建第三个中间层。然后,所有其他平台都可以使用浏览器进行连接。

完成此操作后,您现在可以使用JSON到Object库将您的对象(在服务器端)公开给JSON。我还没有这样做,但会在几周内完成。

不过,我不能让自己使用任何跨平台框架。他们向世界承诺,并且不要提前提及他们的任何限制。在您的产品/应用程序发布结束时很难找到所有这些限制/隐藏成本。

答案 4 :(得分:0)

好吧,你可以查看JQTouchSensaTouch或者等待一段时间看jqueryformobile最终发布。如果你不赶时间,我已经开始使用jQuery了,因为这个列表中有三分之二(将会是)基于jQuery作为插件

答案 5 :(得分:0)

我目前正在考虑这个问题,我的解决方案是将所有逻辑服务器端放在一起,并使用类似于模型 - 视图 - 演示的方法,这是由UI触发的一系列事件,而不是特定于客户端