2012年编写跨平台移动应用程序的工具包选项是什么?

4

我目前正在研究Android和iPhone的跨平台开发替代方案(Windows 8也可以是一个不错的选择)。该应用程序基本上是一个“带有相关应用程序的地图”,而不是游戏。

在这里搜索,我看到许多过时的2010/2011年的建议和工具,但自那以后,苹果已经改变了他们的政策,肯定出现了新的东西。

我的当前列表和轻度研究(可能有错误的事实)是:

  1. Monotouch/Monodroid:.NET(Mono)框架。 在两个平台上创建“本机”应用程序。 需要重建UI代码(或类似的东西)。
  2. Appcelerator:Javascript框架,用于编译本机应用程序。
  3. Corona:类似于Appcelerator。
  4. Phonegap:类似的想法,但看起来像是使用包装器将HTML5内容应用化。
  5. SenchaTouch:另一个基于HTML5的平台。
  6. Wink:又一个HTML5工具包。
  7. XVLM:Android到ObjC编译器,可能会创建丑陋的iOS应用程序。
  8. Unity3D:仅适用于游戏。
  9. Moai:仅适用于游戏。

因此,对我来说,有三个主要想法,其中一些框架实现了每个想法:

  • 在本机iOS / Android代码上使用抽象层,并使用提供的层为每个平台构建。(Monotouch,Unity3D)
  • 使用HTML5(使用Javascript编码)和某种包装器来“应用化”Web内容。(PhoneGap,Sencha,Wink)
  • 使用将输出为编译传递(或类似)的框架进行编码,以支持每个受支持平台的本机应用程序(Moai,XVLM,Appcelerator,Corona)

问题:

  1. 是否有第四个想法我还没有找到?
  2. 对于指定的任何框架,我的研究中是否有任何明显的错误?
  3. 是否已知在任何这些想法或特定框架中与地图集成有关的问题?

1
Appcelerator不像PhoneGap一样是一个HTML包装器,它仅仅使用JavaScript API来编译原生应用程序(可能是您在主页上看到的第一件事)。它也不需要在他们的云端运行任何东西,您只需要拥有一个账户就可以进行开发。 - Simon McLoughlin
谢谢,@SimonMcLoughlin。显然这不是我在网站上看到的第一件事,对于可能造成的任何麻烦,很抱歉。尝试纠正信息。 - Vinko Vrsalovic
3个回答

1

仅为部分答案:

第二点,Appcelerator / Titanium 不仅仅是 HTML5。我最近在 Hackers News 上阅读了 this 一篇关于 PhoneGap 和 Titanium 的相当详细的比较文章。我觉得这篇文章非常有启发性。链接指向 HN 评论,实际文章链接在顶部。


1
我的主要经验是使用Mono for Android和MonoTouch,所以我个人对其他选项不太了解。我个人认为这是最好的选择,因为它允许您在平台之间共享大量代码(甚至扩展到非移动平台,如果您坚持使用.NET),同时仍然允许100%本地UI,这非常重要。如果您正在寻找入门资源,我有this video,其中讨论了跨平台共享大量代码的方法和库,以及this book,它涵盖了相同的内容,但还扩展到讨论如何存储数据、使用地图、访问网络等。
我还想提到MonoGame,它不在您的列表中。MonoGame是一个开源的XNA实现,它基于Mono,可以让您针对iOS/Android/Max OS X进行开发。

1

根据我的经验,如果你想要一个本地应用程序,选择 Mono;如果不需要本地应用就选择 PhoneGap。本地应用对于UI非常重要,例如游戏或是比较图形化的应用,但是对于业务类型的应用,CRUD,PhoneGap 就可以很好的胜任。


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