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

发布于 2024-11-29 05:37:32 字数 322 浏览 0 评论 0原文

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

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

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

At our company there is a huge push for cross-platform (iOS and Android) development. Appcelerator Titanium is being considered (and seems to be the only thing that's being considered) to achieve multi-platform development without extra development time.

Everyone here can think of reasons to use Titanium. For reasons against using Titanium I guess the performance of the resulting "native" app from Titanium may not be as good as an app written in Objective-C for iOS. How significant would the difference be? Are there other reasons to not use Titanium (or equivalent)?

Note: I may write Titanium but reasons may not only be Titanium specific only. All reasons in support for coding in platform language (e.g. Objective-C, Java) qualify.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

君勿笑 2024-12-06 05:37:32

优点

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

坏处:

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

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

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

  • 创建了一个维基,但它已经过时了。仅编辑
    允许员工使用。

  • Github 项目未启用 wiki。

  • Appcelerator 不是真正的开源:他们不接受社区的贡献:
    github上的titanium_mobile项目有很长的open pull清单
    请求。

  • 帮助论坛软件有很多技术和知识。设计弱点。

  • 来自帮助论坛的电子邮件通知通常不起作用。

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

  • Showstoppers 连续出现在“所有小间隙”中:

  • 在 iPhone 4 上正确显示图像

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

  • 虽然该平台确实同时支持iOS和android,
    库/框架没有。大量运行时测试(如果/那么)
    在 Android 和 iPhone 上运行的应用程序需要它。

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

  • 未关注“与销售人员聊天”应用程序。

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

  • 夸大事实并通过定价进行诱饵和转换:30% 的销售
    仅适用于按年会员,不适用于按月会员。博客
    帖子&营销材料没有说明这一点。仅在结帐时

  • [查看时间:2011 年 8 月 13 日] 问答论坛被破坏的另一种方式:
    的顺序
    搜索结果被丢弃:每页结果都会对其点击次数进行排序
    从最旧到最新,位于页面底部。转到下一个
    结果页面(即 51-100),同样,1 年前的点击次数是
    首先,6 周大的孩子在底部。

我未回答的问题

[七个未回答的问答问题未显示:我不想被 Appcelerator 工作人员识别出我的个人身份
并接受低于标准的待遇。]

结果:

我花了很多时间试图在没有文档的情况下发现 API,并通过黑客攻击来发现解决方法。这些时间被浪费了,最好花在简单地学习如何在 XCode 和 XCode 中制作应用程序。 Objective-C。

The Good:

  • Can create iPhone apps using very simple Javascript.

The Bad:

  • Apple has been rejecting some Titanium apps due to private API calls but Appcelerator hasn't responded to requests for help, nor updated their SDK. http://developer.appcelerator.com/question/123785/app-has-bee-rejected-by-non-public-api

  • "Native Widgets" are used, but only nominally: there's a layer of
    logic and abstraction between them and your code; and this layer
    changes their behavior and reduces their speed. The difference is
    visible in the Showcase apps.

  • API docs are perpetually out of date. (no process for refreshing).

  • A wiki was created, which is becoming out of date. Editing only
    allowed for employees.

  • Github projects do not have wiki enabled.

  • Appcelerator isn't true open source: they do not accept contributions from the community: The
    titanium_mobile project on github has a long list of open pull
    requests.

  • The help forum software has many technical & design weaknesses.

  • Email notifications from the help forum often do not work.

  • Staff rarely answers questions in the Q&A forum. Haven't been seen
    in months.

  • Showstoppers appear continuously in "all the little gaps":

  • Correctly displaying images on the iPhone 4

  • Correctly loading images in a scrolling list

  • Although the platform does simultaneously support iOS and android,
    the library/framework does not. A lot of runtime testing (if/then's)
    is needed in apps that will work on android and iphone.

  • Continually releasing new products but not fixing existing products
    and website problems. The "new" products are announced while in beta
    and release candidate phases.

  • "Chat with Sales" app not attended to.

  • Appcelerator does not take down outdated training videos.

  • Stretching the truth and bait-and-switch with pricing: a 30% sale
    only applies to yearly memberships, not month-to-month. The blog
    posts & marketing materials do not state this. Only upon checkout is
    this shown.

  • [Seen 8/13/2011] Another way in which Q&A forums are broken: The order of
    results for a search is trashed: each page of results orders its hits
    from oldest to most recent, at the bottom of the page. Go to the next
    page of results (i.e. 51-100), and again, the 1-year-old hits are
    first, with 6-weeks-old at the bottom.

My Unanswered Questions:

[Seven unanswered Q&A questions not shown: I don't want to be personally identified by Appcelerator staff
and receive sub-par treatment.]

Results:

Am spending many hours trying to discover an API in the absence of documentation, and hacking to discover workarounds. This time is wasted, and would have been better spent simply learning to make apps in XCode & Objective-C.

挽清梦 2024-12-06 05:37:32

差异有多大?

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

还有其他原因不使用钛(或同等材料)吗?

好吧,这取决于你如何定义“等效”。

就我个人而言,当我接触跨平台应用程序时,我希望我会使用 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 几乎只是您从 Adob​​e 获得的,我不确定其他任何引擎。

Titanium 有一个优势:您可以获得接近本机的 UI,而不是基于 HTML 的 UI。 (我说“近乎原生”是因为他们的一些小部件不一定在所有平台上都具有本机等效项,因此他们根据需要推出自己的小部件)对于某些应用程序和某些受众来说,仅这一点就可能使事情向有利于 Titanium 的方向倾斜。

How significant would the difference be?

AFAIK, Titanium will generate Objective C, so unless their stuff is woefully inefficient, I wouldn't expect speed to be a major issue.

Are there other reasons to not use Titanium (or equivalent)?

Well, that depends on how you define "equivalent".

Personally, when I get into cross-platform apps, I expect that I will use PhoneGap. That's for one reason: standards.

With PhoneGap, you're writing HTML, CSS, and JavaScript, as if you were writing an HTML5 offline app. All PhoneGap does is turn that into an installable package (e.g., APK for Android) and give you opt-in proprietary APIs for getting to device-specific stuff. Their expectation is to simply fill in the "gap" between what HTML5 on mobile supports and what native apps on mobile supports. Heck, it's even in their name. :-)

As a result, what you are writing is the same sort of tech you would use for a Web-based app, and it may even get to share some of the client-side code. You can use whatever you like from mobile frameworks (e.g., Sencha Touch, jQuery Mobile). And, if someday app stores support HTML5 offline apps, you might even be able to drop PhoneGap altogether, if you're not heavily dependent upon the device integration features.

Titanium lets you write in JavaScript, but the standards compliance largely ends there. You're using proprietary APIs for everything, including the whole UI. Personally, I'd rather back a more popular horse -- HTML5 in this case, more so than PhoneGap specifically. If for no other reason, it'll be way easier to hire HTML5-savvy developers than Titanium-savvy developers.

Neither PhoneGap, nor Titanium, nor any of the plethora of other options (e.g., Rhodes, Flash/AIR) give you all of the device capabilities. These engines will vary in their extensibility -- I know that PhoneGap has a plugin model, that Flash/AIR is pretty much only what you get from Adobe, and I'm not sure about any others.

Titanium has one advantage: you get a near-native UI, instead of an HTML-based UI. (I say "near-native" because some of their widgets do not necessarily have native equivalents on all platforms, so they roll their own as needed) For some apps and some audiences, that alone may tilt things in Titanium's favor.

自此以后,行同陌路 2024-12-06 05:37:32

Titanium/iOS 具体答案,我的 2c。

本机 iOS 与 Titanium

优点

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

缺点

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

Titanium/iOS specific answer, my 2c.

Native iOS vs Titanium

PROS

  • It's nearly as fast as native for most things.
  • The time needed to write a working prototype it's way shorter.
  • If you need to integrate javascript legacy code or libraries it will work provided that it doesn't use the dom.
  • Your javascript code needs to be well spaced and to include semicolumns where needed or the compiler will complain and eventually abort the build.
  • You can use Coffeescript or any other language that compiles to js
  • Automatic memory management is top notch, getting the same results in objc is always time consuming and sometimes debugging intensive.
  • You can write your own modules in native code to extend Titanium's capabilities.
  • It's open source.
  • They recently changed their support offering removing the 5 app limit, much more affordable.
  • You can change a view js code while running the app in the simulator, you will see the results when you reload the view you're editing. That's a boon :) (exception: there's no way I know of to reload the code in app.js)

CONS

  • Debugging is a pain. Haven't tried out Titanium Studio yet, it might be a big improvement.
  • Adding too many views tends to degrade performance faster than using native code.
  • The Titanium Developer app on Mac has plenty of interface glitches and you might find yourself restarting it pretty often.
  • In some versions the print to console debug statements are broken.
  • You will often stumble into cross-platform abstraction leakage.
  • Support on the forums is a bit light, many issues you will encounter are not big but still annoying.
  • Need to pay attention to JSON correctness, the included parser tends to be picky. Using eval is always an option.
  • Compile times and loading in the simulator are not that fast, titanium objc is pretty big.
许久 2024-12-06 05:37:32

与 Xcode、Visual Studio 相比即使是 MonoDevelop,Titanium Studio 也感觉很慢(真的很慢),有 bug(每天重启几次,甚至重新安装几次),当然你还得处理 JavaScript……我们发现在 Titanium 中开发的痛苦是太棒了,尤其是当你有功能强大的 iPhone 和 iPhone 的时候。 Android 开发人员是这样的 -

我们看了很长时间&努力成为跨平台开发和开发的最佳选择最终使用 Mono - Touch &机器人。太棒了,我们实际上共享 iPhone 和 iPhone 之间 80% 的代码。安卓,&我们刚刚开始移植到 WP,进展顺利(再次共享 80% 的代码)。当然,这并不是一个奇迹般的修复 - 您仍然需要知道如何针对每个平台进行开发。我现在甚至对 C# 的喜爱程度几乎和 Obj-C 一样:-)

显然,有些人会不同意。

Compared to Xcode, Visual Studio & even MonoDevelop, Titanium Studio feels slow (real slow), buggy (restarting several times each day, even reinstalling a few times) and of course you've got to deal with JavaScript... We found that the pain of developing in Titanium was too great, especially when you have competent iPhone & Android devs around so -

We looked long & hard into the best option for cross-platform dev & ended up using Mono - Touch & Droid. It's been great, we do actually share 80% of the code between iPhone & Android, & we're just beginning a port to WP, which is going well (again sharing 80% of the code). Of course it's not a miracle fix - you still need to know how to develop for each platform. I've even grown to like C# almost as much as Obj-C now :-)

Obviously, some will disagree.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文