我选择 Titanium 是为了一个严肃的应用,虽然它不使用相机。我认为有很多事情可以影响你的决定......
如果您的应用程序打算用相机做“花哨”的事情,或者一些真正繁重的图像处理等等,那么您最好选择原生。另一方面,如果您只是想让它拍照,然后这些照片将按原样使用,或者发送到服务器,或者不这样做,那么 Titanium 应该可以正常工作。Titanium 确实有一些处理和图像处理的东西,但正如其他人所说,如果你真的想利用设备的硬件,你可能想要完全原生。
还应该注意的是,Appcelerator 也这么说,使用 Titanium 应用程序,您不会只编写一个在所有设备上按原样运行的应用程序。您将需要为每个设备(或设备类别,即 iPhone、Android)定制 UI,因为它们具有不同的 UI,以及不同的标准 UI 流程等等。
但是,Titanium 的潜在优势之一是,如果您不了解 Objective-C 和/或 Java,而您确实了解 JavaScript(在我的情况下,我实际上使用的是 Coffeescript :)。或者,如果您更喜欢编写 JS 而不是 ObjC/Java。这是我的主要原因之一。我过去做过一些 ObjC 开发,甚至不介意,但我正在做的这个项目的时间表非常激进,而且使用 Titanium 对我来说会更有效。我能够非常快速地设置和构建应用程序,而且我不需要花费任何时间来更深入地熟悉我正在使用的编程语言、内存管理位(对于 Titanium,你不能完全忽略这一点,但基本上他们是为你做的)。根据与我交谈过的人,
虽然我希望在某个时候做一个 Android 版本,但这不是优先事项。但是,我很高兴知道我的大部分应用程序代码将可重用、经过测试等,而且我最终将主要只是为 Android 构建/改进 UI,而不是重写网络代码、数据管理, 等等。Titanium 1.5 对 Android 的支持会更好(据说),但如果优先考虑,您可能希望等待该版本评估 Android。
最后,Titanium 确实有一个“模块”系统,它允许您包装本机代码,将其公开为 Titanium 中的 JavaScript 接口。我们即将利用它来集成第三方库,至少对于我们需要的东西,它看起来非常易于使用,并且让我更有信心,如果出现我们需要访问的某些特定本机功能,那我们很有可能在仍然使用 Titanium 的同时集成它,但我认为这将取决于特定的本机功能是什么。
祝你好运,享受构建移动应用程序,这很有趣!