使用Appcelerator Titanium(或同等版本)的缺点?
在我们公司,推动跨平台(iOS和Android)的发展。 Appcelerator Titanium正在考虑(而且似乎是唯一正在考虑的),无需额外的开发时间即可实现多平台开发。
这里的每个人都可以想到使用titanium的理由。 由于使用Titanium的原因,我猜 Titanium产生的“原生”应用程序的性能可能不如使用Objective-C for iOS编写的应用程序的性能。 差异有多大? 是否有其他原因不使用titanium(或同等)?
注意:我可能会写titanium,但原因可能不仅仅是titanium的具体情况。 所有支持平台语言(如Objective-C,Java)编码的理由都是合格的。
好:
- 可以使用非常简单的Javascript创buildiPhone应用程序。
坏:
-
由于私人API调用,苹果一直拒绝一些Titanium应用程序,但Appcelerator没有回应请求帮助,也没有更新他们的SDK。 http://developer.appcelerator.com/question/123785/app-has-bee-rejected-by-non-public-api
-
“Native Widgets”被使用,但只是在名义上:他们和你的代码之间有一层逻辑和抽象; 而这一层改变了他们的行为并降低了他们的速度。 这个区别在Showcase应用程序中是可见的。
-
API文档永远是过时的。 (没有刷新的过程)。
-
维基已经创build,这已经过时了。 仅编辑
允许雇员。 -
Github项目没有启用wiki。
-
Appcelerator不是真正的开源:他们不接受来自社区的贡献:github上的titanium_mobile项目有一长串的开放请求。
-
帮助论坛软件有许多技术和devise上的弱点。
-
来自帮助论坛的电子邮件通知通常不起作用。
-
工作人员很less在问答论坛上回答问题。 没有看到
在几个月内。 -
在“所有的小差距”中,不断出现的
-
正确显示iPhone 4上的图像
-
正确加载滚动列表中的图像
-
尽pipe平台确实同时支持iOS和Android,
库/框架没有。 在Android和iPhone上运行的应用程序需要大量的运行时testing(如果/然后)。 -
不断发布新产品,但不修复现有产品
和网站问题。 “新”产品在testing版和候选版阶段发布。 -
“聊天与销售”应用程序不参与。
-
Appcelerator不会删除过时的培训video。
-
拉伸的真相和诱饵与开关与定价:30%的销售
只适用于每年的会员,而不是按月。 博客
post和营销材料不说明这一点。 只有在结帐时才显示。 -
Q&A论坛被破坏的另一种方式:
search结果被丢弃:结果的每个页面都按从最旧到最近的顺序排列。 转到结果的下一页(即51-100),再次,1岁的命中是
首先,在6周龄的底部。
我的未答复的问题:
[未回答的七个问题未回答问题:我不希望由Appcelerator工作人员亲自识别并获得次级待遇。]
结果:
在没有文档的情况下,我花了好几个小时试图发现一个API,并且发现了解决方法。 这一次浪费了,最好花在学习XCode&Objective-C的应用程序上。
差异有多大?
AFAIK,Titanium会产生Objective C,所以除非他们的东西效率低下,否则我不会期望速度成为一个大问题。
是否有其他原因不使用titanium(或同等)?
那么,这取决于你如何定义“等价”。
就个人而言,当我进入跨平台的应用程序,我期望我会使用PhoneGap。 这是一个原因:标准。
通过PhoneGap,您可以编写HTML,CSS和JavaScript,就像编写HTML5离线应用程序一样。 PhoneGap所做的就是将其转换为可安装的软件包(例如APK for Android),并为您提供专用的API以获取特定于设备的内容。 他们的期望是简单地填充移动支持的HTML5和移动支持的本地应用程序之间的“差距”。 哎呀,甚至是以他们的名义。 🙂
因此,你正在编写的是与基于Web的应用程序相同的技术,甚至可能会分享一些客户端代码。 你可以使用任何你喜欢的移动框架(例如Sencha Touch,jQuery Mobile)。 而且,如果有一天app store支持HTML5离线应用,如果您不太依赖设备集成function,甚至可以完全放弃PhoneGap。
titanium可以让你用JavaScript编写,但是标准的合规性在很大程度上就是在这里结束的 您正在使用专有的API,包括整个用户界面。 就个人而言,我宁愿支持一个更受欢迎的马 – 在这种情况下,HTML5比PhoneGap更具体。 如果没有其他原因,聘请精通HTML5的开发人员比精通titanium的开发人员更容易。
PhoneGap和Titanium,以及任何其他选项(例如,Rhodes,Flash / AIR)都不会给你所有的设备function。 这些引擎的可扩展性会有所不同 – 我知道PhoneGap有一个插件模型,Flash / AIR几乎就是Adobe提供的,我不确定其他的。
titanium有一个好处:你得到一个接近本地的用户界面,而不是一个基于HTML的用户界面。 (我说“接近原生”,因为他们的一些小部件并不一定在所有平台上都有原生的等价物,所以他们根据需要推出自己的)。对于一些应用程序和一些观众来说,这可能会倾向于Titanium的东西。
titanium/ iOS的具体答案,我的2C。
本机iOS与titanium
PROS
- 对于大多数情况来说,它几乎和原生一样快。
- 编写一个工作原型的时间要短一些。
- 如果你需要整合JavaScript遗留代码或库,只要不使用dom就可以工作。
- 您的JavaScript代码需要很好的间隔,并在需要的地方包含半列,否则编译器将会抱怨并最终中止构build。
- 您可以使用Coffeescript或任何编译为js的其他语言
- 自动内存pipe理是一stream的,在objc中获得相同的结果总是耗时且有时debugging密集。
- 您可以使用本机代码编写自己的模块来扩展Titanium的function。
- 它是开源的。
- 他们最近改变了他们的支持,删除了5个应用程序的限制,更实惠。
- 您可以在模拟器中运行应用程序时更改视图js代码,当您重新加载正在编辑的视图时,您将看到结果。 这是一个福音:)(例外:我不知道重新加载app.js中的代码)
缺点
- debugging是一个痛苦。 还没有尝试过titanium工作室,这可能是一个很大的改进。
- 添加太多视图往往会比使用本机代码更快地降低性能。
- 在Mac上的titanium开发应用程序有大量的接口故障,你可能会发现自己很经常重新启动。
- 在某些版本中,打印到控制台debugging语句被破坏。
- 您经常会偶然发现跨平台的抽象泄漏。
- 在论坛上的支持是有点轻,你会遇到很多问题不大,但仍然烦人。
- 需要注意JSON的正确性,包含的parsing器往往是挑剔的。 使用eval总是一个选项。
- 在模拟器中编译时间和加载速度并不那么快,titanium合金是相当大的。
与Xcode,Visual Studio甚至MonoDevelop相比,Titanium Studio感觉速度慢(真正慢),越野车(每天重启几次,甚至重新安装几次),当然你必须处理JavaScript …我们发现在titanium开发的痛苦太大,尤其是当你有能力的iPhone和Android开发周边所以,
我们长期以来一直致力于跨平台开发的最佳select,并最终使用了Mono-Touch&Droid。 我们确实分享了iPhone和Android之间80%的代码,而且我们刚开始进入WP的一个端口,这个进展顺利(再次分享80%的代码)。 当然这不是一个奇迹般的解决方法 – 你仍然需要知道如何为每个平台开发。 我甚至已经成长为像Obj-C一样多的C#:-)
显然,有些人会不同意。