使用Appcelerator Titanium(或同等产品)的缺点?

时间:2011-08-11 13:26:45

标签: android ios mobile cross-platform titanium

在我们公司,跨平台(iOS和Android)开发有很大的推动力。 Appcelerator Titanium正在考虑(并且似乎是唯一被考虑的事情),无需额外的开发时间即可实现多平台开发。

这里的每个人都可以想到使用Titanium的原因。出于反对使用Titanium I guess 的原因,Titanium生成的“本机”应用程序的性能可能不如用于iOS的Objective-C编写的应用程序那么好。差异有多大?还有其他原因不使用Titanium(或同等产品)吗?

注意:我可能会写Titanium但原因可能不仅仅是Titanium特有的。支持使用平台语言编写代码的所有理由(例如Objective-C,Java)都符合条件。

4 个答案:

答案 0 :(得分:17)

好的:

  • 可以使用非常简单的Javascript创建iPhone应用程序。

糟糕:

  • 由于私有API调用,Apple拒绝了一些Titanium应用程序,但Appcelerator没有响应请求帮助,也没有更新他们的SDK。 http://developer.appcelerator.com/question/123785/app-has-bee-rejected-by-non-public-api

  • 使用“Native Widgets”,但名义上只有:有一层 它们和你的代码之间的逻辑和抽象;和这一层 改变他们的行为并降低他们的速度。不同的是 在Showcase应用程序中可见。

  • API文档永远过时。 (没有刷新的过程)。

  • 创建了一个wiki,它已经过时了。仅编辑
    允许员工。

  • Github项目没有启用wiki。

  • Appcelerator不是 true 开源:他们不接受来自社区的贡献: github上的titanium_mobile项目有很长的开放列表 请求。

  • 帮助论坛软件有很多技术和帮助。设计缺陷。

  • 来自帮助论坛的电子邮件通知通常无效。

  • 工作人员很少在Q& A论坛中回答问题。没见过
    几个月。

  • Showstoppers不断出现在“所有小差距”中:

  • 在iPhone 4上正确显示图像

  • 在滚动列表中正确加载图像

  • 虽然该平台同时支持iOS和Android,但是 图书馆/框架没有。很多运行时测试(if / then's) 在适用于Android和iphone的应用程序中需要。

  • 不断发布新产品但未修复现有产品 和网站问题。 “新”产品在测试期间公布 并发布候选阶段。

  • “与销售人员聊天”应用未参与。

  • Appcelerator不会删除过时的培训视频。

  • 用定价来拉伸真相和诱饵和开关:30%的销售额 仅适用于年度会员,而不是每月。博客
    帖子&营销材料不说明这一点。只有在结账时 这显示了。

  • [见2011年8月13日] Q& A论坛被打破的另一种方式:顺序 搜索结果被删除:每个结果页面命令其命中 从最旧到最近,位于页面底部。转到下一个 结果页面(即51-100),再次,1岁的命中是
    首先,在底部有6周大。

我未回答的问题:

[七个未回答的Q& A问题未显示:我不想被Appcelerator员工个人识别 接受低于标准的治疗。]

<强>结果:

在没有文档的情况下花了很多时间尝试发现API,并且发现了解决方法。这段时间浪费了,本来可以更好地学习在XCode和XDC中制作应用程序。目标C

答案 1 :(得分:5)

  

差异有多大?

AFAIK,Titanium会生成Objective C,所以除非他们的东西效率低下,否则我不会指望速度成为一个主要问题。

  

是否还有其他原因不使用Titanium(或同等产品)?

那么,这取决于你如何定义“等效”。

就个人而言,当我进入跨平台应用程序时,我希望我会使用PhoneGap。这有一个原因:标准。

使用PhoneGap,您正在编写HTML,CSS和JavaScript,就像编写HTML5离线应用程序一样。所有PhoneGap都将其转换为可安装的软件包(例如,适用于Android的APK),并为您提供选择专用API以获取特定于设备的内容。他们的期望是简单地填补移动支持的HTML5与移动支持的原生应用之间的“差距”。哎呀,甚至在他们的名下。 : - )

因此,您所编写的内容与基于Web的应用程序使用的技术相同,甚至可以共享一些客户端代码。您可以在移动框架中使用任何您喜欢的内容(例如,Sencha Touch,jQuery Mobile)。而且,如果有一天应用程序商店支持HTML5离线应用程序,如果您没有严重依赖于设备集成功能,您甚至可以完全放弃PhoneGap。

Titanium允许您使用JavaScript编写,但标准合规性在很大程度上结束了。您正在使用专有API来处理所有内容,包括整个UI。就个人而言,在这种情况下,我宁愿支持更受欢迎的马 - HTML5,特别是PhoneGap。如果没有其他原因,聘请精通HTML5的开发人员比精通Titanium的开发人员更容易。

PhoneGap和Titanium,以及任何其他众多选项(例如Rhodes,Flash / AIR)都没有为您提供所有设备功能。这些引擎的可扩展性各不相同 - 我知道PhoneGap有一个插件模型,Flash / AIR几乎就是你从Adobe获得的,我不确定是否有其他人。

Titanium有一个优势:您可以获得接近原生的UI,而不是基于HTML的UI。 (我说“近原生”因为他们的一些小部件并不一定在所有平台上都有原生等价物,所以他们根据需要自行推出)对于某些应用程序和一些受众,仅此一点可能会对Titanium有利。

答案 2 :(得分:4)

Titanium / iOS特定答案,我的2c。

Native iOS vs Titanium

<强>赞成

  • 对于大多数事情来说,它几乎和原生一样快。
  • 编写工作原型所需的时间更短。
  • 如果您需要集成javascript遗留代码或库,只要它不使用dom,它就可以工作。
  • 您的javascript代码需要间距很大,并且在需要的地方包含半字节,否则编译器会抱怨并最终中止构建。
  • 您可以使用Coffeescript或任何其他编译为js的语言
  • 自动内存管理是一流的,在objc中获得相同的结果总是耗时且有时调试密集。
  • 您可以使用本机代码编写自己的模块,以扩展Titanium的功能。
  • 它是开源的。
  • 他们最近更改了他们的支持服务,删除了5个app限制,更实惠。
  • 您可以在模拟器中运行应用程序时更改视图js代码,当您重新加载正在编辑的视图时,您将看到结果。这是一个恩惠:)(例外:我不知道在app.js中重新加载代码)

<强> CONS

  • 调试很痛苦。还没有尝试过Titanium Studio,这可能是一个很大的进步。
  • 添加太多视图往往会比使用本机代码更快地降低性能。
  • Mac上的Titanium Developer应用程序存在大量接口故障,您可能会发现自己经常重新启动它。
  • 在某些版本中,打印到控制台调试语句已损坏。
  • 您经常会遇到跨平台的抽象泄漏。
  • 论坛上的支持有点轻,你遇到的很多问题都不大但仍然很烦人。
  • 需要注意JSON的正确性,包含的解析器往往是挑剔的。使用eval始终是一种选择。
  • 编译时间和模拟器中的加载速度并不快,钛合金objc非常大。

答案 3 :(得分:0)

与Xcode相比,Visual Studio&amp;即使是MonoDevelop,Titanium Studio感觉很慢(真正的慢),越野车(每天重启几次,甚至重新安装几次)当然你必须处理JavaScript ......我们发现在Titanium中开发的痛苦是太棒了,特别是当你拥有称职的iPhone&amp; Android开发了 -

我们长得很长难以成为跨平台开发人员的最佳选择最终使用Mono - Touch&amp; Droid的。这很棒,我们确实分享了iPhone和iPad之间80%的代码。 Android,&amp;我们刚刚开始使用WP的端口,这很好(再次共享80%的代码)。当然,这不是一个奇迹修复 - 你仍然需要知道如何为每个平台开发。我现在甚至像Obj-C一样喜欢C#: - )

显然,有些人不同意。