我想构建一个移动/平板电脑应用程序,其核心功能是用相机拍照,查看图片和接收通知。此外,我想针对iPhone,iPad和Android平台。
Titanium appcelerator因其跨平台的吸引力而引起了我的兴趣。但是我很担心因为我在SO和其他网站上阅读了不同的评论。让我担心的是:
对我来说,噩梦般的场景就是花时间投入钛金属,以便稍后发现它是一个主要的PITA并放弃它而去“本土”
请分享您的想法和经验。
答案 0 :(得分:14)
我选择Titanium作为一个严肃的应用程序,虽然不使用相机。我认为有很多事情可以影响你的决定......
如果您的应用程序打算用相机做一些“花哨”的东西,或者一些真正沉重的图像处理等等,那么你最好不要去原生。另一方面,如果你想让它拍照,然后将它们按原样使用,或者发送到服务器,或者不是,那么Titanium应该可以正常工作。 Titanium确实有一些处理和图像处理的东西,但正如其他人所说,如果你真的想利用设备的硬件,你可能想要完全原生。
还应该注意,Appcelerator也说过,使用Titanium应用程序,您不会只编写一个在所有设备上按原样运行的应用程序。您需要将UI设置为每个设备(或设备类,即iPhone,Android),因为它们具有不同的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确实有一个“模块”系统,它允许您包装本机代码,将其公开为Titanium中的JavaScript接口。我们即将利用它来集成第三方库,至少对于我们需要的东西,它看起来非常容易使用,并且让我更有信心,如果我们需要访问某些特定的本机功能,那么我们在使用Titanium时有很好的机会进行集成,但我认为这取决于特定的本机功能。
祝你好运并享受构建移动应用程序,这非常有趣!
答案 1 :(得分:8)
我们在其中一个项目中使用Titanium大约2个月,坦率地说我们使用Titanium的经验太糟糕了。
根据我的观点,以下是Titanium的一些主要缺点:
1)首先,你根本不会获得调试支持(我们可以理解调试在任何项目和任何技术中的需求)。
2)Titanium并不完全支持Android / iPhone的所有功能;超出某种程度,它不会给你支持。
3)与Android / iPhone SDK相比,开发人员将从互联网和API库获得更少的帮助(Titanium提供API库帮助文件)。
这些是最终开发人员在处理Titanium时面临的一般性问题,我认为有时这对他们来说是乏味和令人沮丧的工作。
如果您的应用程序的功能有点像显示来自Web的数据(如许多新闻,媒体类型的应用程序),那么Titanium是合适的选择;否则没有。
答案 2 :(得分:3)
Android支持并不像iPhone那样好。如果你只是说iPhone,我会说你会很幸运使用Titanium。但是,我认为尝试在Appcelerator中构建一个代码库并在Android环境中使用可能不是最好的体验。
也就是说,使用Android / Java代码的IMO比做Objective / C的工作容易得多。
最糟糕的情况我会考虑将Titanium用于你的iPhone版本和用Java做Android。
你可以尝试用Titanium做它们,但最坏的情况是Java版本。
我非常讨厌客观C和'原生'Apple开发环境。
答案 3 :(得分:3)
我建议在与设备硬件交互时使用跨平台工具包是您的应用程序的关键要求之一。我之前没有使用过Titanium,但我发现很难相信它们会为您提供与本机框架相同的硬件访问级别。
特别是,iOS 4.0增加了一系列关于相机的新功能,包括通过AVFoundation进行实时视频帧处理,我发现很难相信第三方框架会随着这些平台的发展而跟上。说实话,现在编写一个与iPhone上的相机交互的应用程序非常容易(在App Store中计算它们的数量作为指标)。前几天我在大约六个小时内写了一个实时相机帧处理应用程序。
我不能说Android,但我想在那里使用原生API处理相机也相当简单。
您还将发现使用本机工具比使用第三方提供的工具更容易使用性能测试和调试应用程序。特别是,Apple的Instruments是一款功能强大且易于使用的应用程序,用于跟踪应用程序中的CPU和内存问题。
还有社区方面。你会发现在Android和Cocoa Touch上工作的人远远多于Titanium(只需查看Stack Overflow上各种标签中的问题数量就可以看到)。这意味着您可以使用更多教程和更多示例代码。
无论您是使用本机环境还是使用Titanium,您在设置iPhone和Android构建环境以及提交到两个商店时所花费的时间都是相同的。
最后,即使学习了这两个平台,我认为通过避免跨平台解决方案,您将领先一步。相信我,我曾试图在其他项目之前进行跨平台开发,最终得到了需要更长时间才能编写的最低通用分母产品。
答案 4 :(得分:2)
我开发了基于Appcelerator的相机应用程序并对它非常满意。我认为一些负面评论来自于设置起来有点困难(更多是由于Apple疯狂的开发人员注册过程)。
一旦我开始,很容易在相机屏幕上做覆盖物等事情。我真的对这部分感到困难,但效果很好。
我过去曾与Appcelerator团队进行过交流,他们是一个很好的团队。我已经看到他们对其他用户问题做出了响应,我相信如果我遇到一个真正的错误,他们会很快解决它。
答案 5 :(得分:2)
有点晚了,但我的两分钱......
老实说,我相信您可以使用Titanium Appcelerator快速对应用程序进行原型设计,并专注于关键功能集,以确定它是否适合您。
所有开发人员都有那些影响评论的意见和经验;开发人员有不同的学习方式和不同的生产力水平......最后,它归结为如何利用可用的工具提高工作效率。
由于您从一开始就表示要提供多平台解决方案,我认为您甚至不花一两个星期调查跨平台框架然后做出决定就是一个糟糕的决定根据您的个人经验。
有Titanium Appcelerator,还有PhoneGap,其中PhoneGap可能会帮助您,因为有能力通过编写插件来扩展/增强底层框架({{3}我的博客上还有一个安卓程序...当你跨平台移动时,这可以填补你的空白。
此外,由于手机间隙解决方案中的UI是基于HTML5 Webkit的,因此如果您愿意,它可以为您提供一致的外观和感觉。像I wrote one for iphone和jQTouch这样的框架正在用于JQuery Mobile应用程序的用户体验
答案 6 :(得分:2)
我查看了Titanium Appcelerator的负面反馈,但我完全赞同 Aaron Saunders ,如果您使用PhongeGap,则支持HTML5,可以轻松制作适用于iPhone,iPad和Android手机的应用。
答案 7 :(得分:1)
有没有人强调钛的成本。
今天我与他们联系,如果你不仅仅是一个男子乐队,你必须注册一个合作伙伴计划,否则如果你发布该应用程序,你将承担合同的责任。
合作伙伴计划是5000英镑,这对我们来说是一个很大的启动公司,这是我们的第一个应用程序,我们现在正在寻找一个不同的选择。