6

我想构建一个手机/平板应用程序,其核心功能是用相机拍照、查看图片和接收通知。我还想针对 iphone、ipad 和 android 平台。

Titanium appcelerator 引起了我的兴趣,因为它具有跨平台的吸引力。但是我很担心,因为我在 SO 和其他网站上阅读了褒贬不一的评论。我担心的事情是:

  • 低于标准的安卓支持
  • 相机支持不完全(例如 ios 4.1 HDR 功能)
  • 相机支持越野车

对我来说,噩梦般的场景是花时间在钛上,但后来发现它是一个主要的 PITA,然后放弃它并“原生”

请分享您的想法和经验。

4

8 回答 8

14

我选择 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 的同时集成它,但我认为这将取决于特定的本机功能是什么。

祝你好运,享受构建移动应用程序,这很有趣!

于 2010-11-02T00:27:35.790 回答
8

我们已经在我们的一个项目中使用 Titanium 大约 2 个月了,坦率地说,我们使用 Titanium 的经验太糟糕了。

根据我的观点,以下是钛的一些主要缺点:

1)第一件事是你根本不会得到调试支持(我们可以理解调试在任何项目和任何技术中的要求)。

2) Titanium 不完全支持 Android/iPhone 的所有功能;超过一定程度它不会给你支持。

3) 与Android/iPhone SDK 相比,开发者从互联网和API 库(Titanium 提供API 库帮助文件)中获得的帮助非常少。

这些是最终开发人员在处理 Titanium 时面临的一般问题,我想有时这对他们来说是乏味和令人沮丧的工作。

如果您的应用程序的功能有点像显示来自网络的数据(如许多新闻、媒体类型的应用程序),那么 Titanium 是合适的选择;否则不是。

于 2010-12-07T13:25:24.130 回答
3

当与设备硬件交互是应用程序的关键要求之一时,我建议不要使用跨平台工具包。我以前没有使用过 Titanium,但我很难相信它们会为您提供与使用原生框架相同级别的硬件访问权限。

特别是,iOS 4.0 增加了一堆关于相机的新功能,包括通过 AVFoundation 处理实时视频帧,我很难相信第三方框架会随着这些平台的发展而跟上。老实说,现在编写一个与 iPhone 上的摄像头交互的应用程序非常容易(计算 App Store 上的摄像头数量作为一个指标)。前几天我在大约六个小时内编写了一个实时摄像机帧处理应用程序。

我不能代表 Android,但我想使用那里的本机 API 处理相机也相当简单。

您还将发现使用本地工具比通过第三方提供的工具更容易进行性能测试和调试应用程序。特别是,Apple 的 Instruments 是一款功能强大且易于使用的应用程序,用于跟踪应用程序中的 CPU 和内存问题。

还有社区方面。你会发现在 Android 和 Cocoa Touch 上工作的人比在 Titanium 上工作的人要多得多(只要看看 Stack Overflow 上各种标签中的问题数量就知道了)。这意味着您可以使用更多教程和更多示例代码。

无论您使用原生环境还是 Titanium,您在设置 iPhone 和 Android 构建环境以及提交到这两个商店所花费的时间都是相同的。

最后,即使同时学习了这两个平台,我认为您也会通过避免跨平台解决方案来取得领先。相信我,我之前曾尝试为其他项目进行跨平台开发,最终得到了编写时间更长的最低公分母产品。

于 2010-11-01T22:54:38.713 回答
3

Android 支持不如 iPhone 好。如果您只说 iPhone,我会说您使用 Titanium 会很幸运。但是,我认为尝试在 Appcelerator 中构建一个代码库并在您的 Android 环境中使用可能不是最好的体验。

也就是说,IMO 编写 Android / Java 代码比编​​写 Objective C / iPhone 代码要容易得多。

所以最坏的情况我会考虑为你的 iPhone 版本使用 Titanium 并用 Java 做 Android。

您可以尝试在 Titanium 中同时使用它们,但最坏的情况是使用 Java 版本编写代码。

我只是非常讨厌目标 C 和“原生”Apple 开发环境。

于 2010-11-01T19:56:20.110 回答
2

我开发了一个基于 Appcelerator 的相机应用程序并且对它非常满意。我认为一些负面评论来自于它有点难以设置(更多是由于苹果疯狂的开发者注册过程)。

一旦开始,就很容易在相机屏幕上进行叠加等操作。我真的很期待那部分会遇到困难,但效果很好。

我过去曾与 Appcelerator 团队交谈过,他们是一个很棒的团队。我已经看到他们对其他用户问题做出响应,我相信如果我遇到一个真正的错误,他们会迅速解决它。

于 2010-11-01T20:06:07.000 回答
2

我查看了 Titanium Appcelerator 的负面反馈,但我完全同意Aaron Saunders的观​​点,即如果您使用 PhongeGap 开发支持 HTML5,它可以轻松制作适用于 iPhone、iPad 和 Android 移动设备的应用程序。

于 2012-09-06T08:22:40.317 回答
2

有点晚了,但我的两分钱......

老实说,我相信您可以使用Titanium Appcelerator快速制作应用程序原型,并专注于关键功能集以确定它是否适合您。

所有开发人员都有影响评论的意见和经验;开发人员有不同的学习方式和不同的生产力水平......最后,归根结底,这取决于您如何使用可用的工具来提高生产力。

由于您从一开始就声明您希望在多个平台上提供解决方案,我认为您甚至不花一两个星期调查跨平台框架然后根据您的个人经验。

Titanium Appcelerator也有PhoneGapPhoneGap可以帮助你的是有能力通过编写插件来扩展/增强底层框架(我为 iphone 写了一个),我的博客上也有一个 android 的.. . 当您跨平台移动时,这可以为您填补缺失的空白。

此外,由于手机间隙解决方案中的 UI 基于 HTML5 Webkit,因此如果您愿意,它可以在您的设备上为您提供一致的外观和感觉。诸如jQTouchJQuery Mobile之类的框架正在用于PhoneGap应用程序的 UX

于 2010-11-02T02:30:02.573 回答
1

有没有人强调钛的成本。

他们今天联系了我,如果您不是单人乐队,则必须注册合作伙伴计划,否则如果您发布该应用程序,您将承担违约责任。

合作伙伴计划是 5000 英镑,这对于我们作为一家初创公司来说是非常多的,因为这是我们的第一个申请,我们现在正在寻找不同的选择。

于 2012-05-23T23:19:52.287 回答