xCode与Android SDK对比Adobe Flex

我将开发一个跨平台的应用程序,它将针对IOS和Android发布。

我的应用程序将使用网络连接并与服务器通信,它必须快速,可靠和响应。

所以我的问题是:如果我选择Adobe Flex为IOS和Android构建该应用程序,那么会出现任何性能问题吗?

如果没有那么为什么人们使用xcode或android sdk? 使用Adobe Flex而不是xCode和Andoid SDK有什么缺点?

一般来说,如果您使用跨平台“一次编写并为多个平台构建”工具,您可能会放弃利用某些(或所有?)设备或平台特定function的能力。 实际上,您选择的是最小公分母解决方案。 也就是说,您只能使用您所定位的所有平台上提供的平台function。

构建本机应用程序 – 即使用Xcode构建iOS应用程序并使用Android SDK构建Android应用程序 – 使您可以完全访问所有特定平台的特定function和特性,从而确保最佳用户体验每个平台。

现在我的观点是:原生应用程序更好,仅仅是因为它们为用户提供了本机体验 – 这种体验对于他们来说是平台用户所熟悉的。 当您选择使用跨平台工具时,您会主动选择在其设备上为您的用户提供不太理想的体验,但您节省了一些时间(可能)将您的应用推向市场。 谁是赢家?

在我的工作中,我的老板和我就此进行了具体的谈话。 我们故意使用本机iOS和Android应用程序,因为我们不想放弃特定于平台的function。 我们希望每个应用程序都能在其平台上提供最佳体验。 我们特别同意跨平台解决方案不是我们想要的方式。

根据您的构建,Air是开发跨平台移动应用程序的绝佳平台。 尽管最近有消息称不再为移动浏览器开发Flash播放器,但原生故事依然强劲。 此外,在看到本机IOS,原生Android和Flex开发之后,Flex平台在易于开发方面要好得多。 凭借数据绑定,可视状态管理,可靠的组件/皮肤模型,转换模型等高级function,它比iOS和Android(IMO)领先一代或两代。

如果您使用的是移动设备Flex(iOS / Android / Playbook),则可以在所有移动设备上获得通用外观。 @MarkGranoff建议在使用方法时降低用户体验,但我会挑战。

虽然我同意Air中的UI组件的开箱即用风格感觉有点过时,但我不建议任何人以任何方式构建应用程序。 而是创建一个看起来像您的应用程序的应用程序。 有许多应用程序不符合iOS或Android的原生外观,但从审美和用户体验的角度来看仍然是高质量的。

对于在所有平台上看起来/行为相同的应用程序,可以说些什么。 我可以告诉你这么多……用户并不在乎。 如果它看起来很好,感觉很好并且做了他们想要的东西,他们很高兴。

Flex Mobile SDK使用了许多相同的UI范例(特别是在即将发布的SDK版本中)并且它正在变得更好。 我不会诋毁它。 使用Flex Mobile之类的东西可以节省大量的金钱和时间。

您可以使用Flex编译为AIR for iOS或android。 AIR vs Objective C或Java的性能明显变慢。 使用AIR的优势是将一个鳕鱼基地交付给两个平台。 但是,如果您拥有专有技术,Objective C和Java更适合在各自的平台上进行开发。 然而,许多成功的应用程序已经在使用AIR的iOS和Android上推出。 如果你想知道它是否适合你,我会在iTunes和Android Market中找出这些应用,看看它们是如何为你效果的。 如果您的应用程序不是游戏,它可能会正常工作。 如果你的应用程序是一个简单的游戏,它也可以正常工作。 还要记住还有其他multi = platform开发工具可供选择,比如手机差距或appcellerator: http : //www.appcelerator.com/ http://phonegap.com/

甚至Unity 3D: http : //unity3d.com/

更新:自从Novemer 2011中的这个原始答案以来,Adobe已经对AIR for iOS和Android做出了重大改进。 性能问题可以忽略不计,除非你做一些非常本能的事情,比如大image processing。 同样,Unity3D也有很大改进。 这是2D或3D游戏的绝佳选择。

如果您使用Air开发跨平台应用程序,您应该注意以下事实:

1)您无权访问本机function(但您可以使用Air Native Extensions来传递此问题)

2)性能比本机应用程序慢(但您可以使用Starling框架在设备中使用GPUfunction,这将大大提高性能!)

最重要的是,使用AS3和Flex / Air SDK构建移动应用程序是您能想到的最佳解决方案,如果使用starling的性能远远高于本机应用程序!

我不认为你可以在iOS上使用Adobe Flex。 另一个需要调查的跨平台解决方案是HTML5。 如果你负担得起,最好的解决方案可能是实现两次,一次使用xcode for iOS,一次使用Android for Android。