我想构建一个手机/平板电脑应用程序,其核心功能是使用相机拍照、查看图片和接收通知。我还想针对 iphone、ipad 和 android 平台。
Titanium appcelerator 因其跨平台吸引力而引起了我的兴趣。但是,我很担心,因为我在 SO 和其他网站上阅读过褒贬不一的评论。让我担心的事情是:
- 低于标准的 android 支持
- 不完全支持相机(例如 ios 4.1 HDR 功能)
- 相机支持 buggy
对我来说,噩梦般的场景是在钛上投入时间,后来发现它是一个主要的 PITA 并放弃它并转向“本地”
请分享您的想法和经验。
我选择 Titanium 是为了一个重要的应用程序,尽管它不使用相机。我认为有多种因素可以影响您的决定...
如果您的应用打算用相机做一些“奇特”的事情,或者一些真正繁重的图像处理等等,您最好还是使用原生应用。另一方面,如果你只是想让它拍照,然后这些照片将按原样使用,或者发送到服务器,或者不发送,那么 Titanium 应该可以正常工作。 Titanium 确实有一些处理和图像处理的东西,但正如其他人所说,如果你真的想利用设备的硬件,你可能想要完全原生。
还应注意,Appcelerator 也表示,使用 Titanium 应用程序,您不会只编写一个在所有设备上都按原样运行的应用程序。您需要为每个设备(或设备类别,即 iPhone、Android)定制 UI,因为它们具有不同的 UI 和不同的标准 UI 流程等。
但是,Titanium 的潜在优势之一是,如果您不了解 Objective-C 和/或 Java,而您确实了解 JavaScript(在我的情况下,我实际上使用的是 Coffeescript :)。或者,如果您更喜欢编写 JS 而不是 ObjC/Java。这是我的主要原因之一。我过去做过一些 ObjC 开发,甚至不介意,但我正在做的这个项目的时间表非常非常激进,而且使用 Titanium 对我来说会更加有效。我能够非常快速地设置和构建一个应用程序,而且我不需要花任何时间来更深入地熟悉我正在使用的编程语言、内存管理位(你不能完全忽略 Titanium,但本质上他们是在为你做这件事)。根据与我交谈过的人,以及他们在内存管理、Interface Builder 问题上花费的时间(这主要是忘记设置连接或挂接各种东西的容易程度,IB 实际上是一个非常棒的工具),以及等等,我很高兴我正在使用 Titanium。
虽然我希望在某个时候做一个 Android 版本,但这不是优先事项。但是,我很高兴知道我的大部分应用程序代码都可以重复使用、经过测试等,而且我最终将主要只是构建/修改 Android 的 UI,而不是重写网络代码、数据管理, 等等。 Titanium 1.5 中的 Android 支持会更好(据说),但如果这是优先事项,您可能希望等待该版本以评估 Android。
最后,Titanium 确实有一个“模块”系统,允许您包装 native 代码,将其作为 Titanium 中的 JavaScript 接口(interface)公开。我们即将利用它来集成第三方库,至少对于我们需要的东西,它看起来非常易于使用,并且让我更有信心,如果我们需要访问的某些特定 native 功能出现,那我们有很大的机会在仍然使用 Titanium 的同时集成它,但我认为这将取决于特定的 native 功能是什么。
祝你好运,享受构建移动应用的乐趣吧!