所以我知道adobe(或其他人)现在提供了一种将Flex应用程序移植到iphone的方法。当您想要创建一个可以移植到3顶级移动操作系统的多平台应用程序时,这似乎是一个很好的解决方案。我只是想知道。有什么缺点?我确信在flex中执行它并不像在obj-c或java中那样执行。但它有多糟糕?在Flex中执行此操作还有其他缺点吗? (vs obj-c for iphone / java for android and bb)
答案 0 :(得分:4)
有什么缺点?
以下是一些注意事项:
表现是一个考虑因素。 Flash / AIR似乎不太可能像优化的Native应用程序那样运行。不过,最后一部分并不是移动设备独有的。你走得越低,性能就越好。 C将比ActionScript运行得更好。汇编代码将比C运行得更好。机器代码将比Assembly更好地运行。
无法访问本机API是另一种原因。应用内结算和联系人是我看到的两个常见请求。 AIR 3引入了Native Extensions作为解决这个问题的方法。但是,要创建本机扩展,您将不得不编写本机代码并以特殊方式对其进行编译,以将其公开给AIR运行时。随着时间的推移,你可以使用一堆人们创造性的原生扩展,这样你就不必自己做肮脏的工作了。
对外部运行时的依赖是另一些限制因素。如果用户使用旧版本的AIR并且在安装应用时出现问题该怎么办?在AIR 3中,Adobe推出了一款名为Captive Runtime的东西来解决这个问题。它将运行时捆绑为应用程序的一部分。它增加了大约8MB的应用程序大小,但删除了外部依赖项。 Captive Runtime是部署到iOS的唯一方式。
这些是我看到的主要限制。我认为使用Flex / Flash构建可带来很多好处,但最大的优势在于能够轻松部署到多个平台。如果你已经了解Flash / AS3;使用它构建移动应用程序似乎是一个合理的选择。
答案 1 :(得分:0)
如果您想获得良好的性能,您肯定必须对每个平台的Flex应用程序进行微调。
你必须权衡对你更重要的事情;使用flex可以让我做一个应用程序,并能够在3个平台上使用它,这意味着在所有平台上进行快速原型设计,但它可能会引起一些麻烦,或者你是否想为每个平台编写应用程序,使其更高性能,更强大并且能够使用特定于平台的功能吗?
您可以先在flex中运行原型,在不同的平台上进行测试,最后,如果需要,可以构建一个特定的平台。