Xamarin和Titanium Appcelerator哪个更好?

5

我开发了一个原生Android应用程序,现在要求将其移植到像Xamarin或Titanium Appcelerator这样的跨平台上。请一些专业软件工程师建议我选择哪个跨平台技术以及原因。如果我选择Xamarin,那么Xamarin有哪些优缺点?如果我选择Titanium Appcelerator,那么Titanium有哪些优缺点呢?非常感谢您的帮助。


Xamarin - 原生应用程序。Titanium - 混合应用程序。强类型的C#与运行时解释的JavaScript。这大概就是总结,但是如果需要详细信息,您应该进行搜索,因为这个问题已经被问过并且回答了多次。 - SKall
3个回答

19

在一些方面,这两个框架存在不同(或相同)。

价格

现在,两者都需要付费。Xamarin有一个免费的无用版本(只适用于非常小的应用程序),付费版本从25美元/月开始。https://store.xamarin.com/

Titanium Studio曾经是免费的,但不幸的是几周前他们将其更改了。现有的免费用户被转移到免费的终身独立许可证下(这很好!),新用户则需要支付至少39美元/月。http://www.appcelerator.com/pricing/ 另外,Titanium的最新版本是邀请制的,尽管我收到了注册邀请的邀请,但我现在已经等待了几周也没有被接受。

因此,目前来看,Xamarin具有微小的优势,虽然您还需要看看要做什么。Indie版本可以完成所有“正常”的工作,但缺少Visual Studio集成。

支持的平台

Xamarin支持Android和iOS,WinPhone由于.NET运行在WP上而得到支持。

Titanium支持Android、iOS、BlackBerry和Web,据说支持WinPhone,但根本不起作用。https://developer.appcelerator.com/question/181588/how-to-update-to-preview-to-do-windows-development-the-requested-sdk-version-does-not-have-an-assigned-commands-handler

Titanium Studio与Windows Phone插件:Titanium SDK不支持Windows平台这个问题在新的版本4中应该已经解决了,但我还没有看到它(虽然我尝试过)。

因此,如果你想要 WinPhone,就使用 Xamarin;如果你想要 BlackBerry,就使用 Appcelerator。
集成开发环境(IDE):
Xamarin 有 Visual Studio 集成(商业版或更高版本),非常好用。Visual Studio 是最好的 IDE 之一,或许是最好的。Xamarin Studio 就一般般了。
Titanium Studio 也一般般,与 Xamarin Studio 类似。
安装和易用性:
Xamarin 有一个全能安装程序,需要一些时间,但然后你就可以开始使用。它工作得很好。由于某些功能在某些版本中存在问题,因此 Xamarin 非常频繁地更新(每几周更新一次)。
将 Titanium Studio 设置为可用通常是一件麻烦事。我不得不(这并没有记录!)使用 Java 1.6 32 位版本,这可能很困难,因为通常会升级 Java。虽然官方支持 Java 1.8,但这对我来说根本行不通。Titanium Studio 更难设置。Titanium 的更新不太频繁,不到一个月更新一次。
编程语言:
Xamarin 是 C#。你可以获得一个很好的、类型化的语言,适用于从小型到非常复杂的应用程序,并且具有针对复杂数据类型和场景的良好语言结构。
Titanium 是 JS。你可以获得一个很好的动态语言,非常灵活,主要用于小型、灵活的应用程序。
你可以在这两种语言中创建出色的程序,但在 JavaScript 中会更困难一些。
它们都编译为本地代码。
你可以使用许多 JS(Titanium)和 .NET(Xamarin)库和框架。
跨平台:
去年,Xamarin 推出了 Xamarin.Forms 来实现跨平台 GUI。它正在工作,但还有很多功能尚未实现,例如方向需要手动实现。使用跨平台的硬件也不容易。有一些插件你应该要看看,比如xlabs https://github.com/XLabs/Xamarin-Forms-Labs,虽然我发现我试过的所有功能都没有正常运作。但是 Bug 请求得到了快速处理,因此我认为这个产品会成熟,并最终非常有用,可以使用非常少的平台相关代码(只有 DI 部分)来实现所有平台的一个代码库。
Titanium 我没有真正用过,所以无法发表评论。
社区对于这两个产品来说都很大。
Appcelerator 有一个免费的大学计划(视频可观看/下载)。Xamarin 有一个昂贵的大学计划,但其中包括辅导和小型网络课程。也有免费的视频。
现在 Appcelerator 似乎需要赚钱。Xamarin 总是需要赚钱,他们现在得到了微软的支持,这当然是有帮助的。
最重要的可能是您的语言背景。虽然这不是最重要的,因为您仍然需要学习关于移动设备和每个平台的许多内容。
此外,还要查看竞争对手:PhonGap/Cordova 和一些新的、较小的玩家,一些基于 C#,一些基于 C++。 Xamarin 2.0 vs Appcelerator Titanium vs PhoneGap Corona、Phonegap 和 Titanium 的比较 在您的特定情况下:Java 和 C# 非常相似,比 Java 和 Javascript 更相似。
您可以获得商业版本的免费试用,并通过直接联系客户支持并有充分理由来延长试用时间 - 这是我听说的。

看起来Xamarin将会免费,这是在Build 2016上宣布的,详情请见https://www.thurrott.com/windows/windows-10/65815/build-2016-xamarin-free-integrated-visual-studio。目前还没有关于哪个Visual Studio订阅版本可以获得免费版的详细信息,但免费的Community Edition也将包含一个版本。价格曾经是人们反对Xamarin的主要原因之一。 - Andreas Reiff
对于那些感兴趣的人,需要更新一下,Xamarin现在可以免费使用任何Visual Studio订阅。 - Ismapro
为什么 Xamarin 的免费版本“无用”? - Yahya Uddin
1
免费版本在创建应用程序的大小方面非常有限。即使是计算器也会很困难。但自从被微软收购以来,这已经成为过去。使用Visual Studio Community Edition,您可以免费获得所有功能(作为个人或小公司)。甚至适用于iOS和Android。 - Andreas Reiff
1
从昨天开始,Titanium 对于独立开发者再次免费:https://www.appcelerator.com/pricing/ - Martin Braun

5
几个月前,我们必须在这两种方案之间进行选择。我们的决定是基于 Xamarin 的价格非常昂贵,而 Titanium 则完全免费。Titanium 有更多文档和更大的社区,这是因为它的免费使用。
对我来说,Titanium 的主要缺点是你必须绝对需要一个互联网连接才能使用它。这真的很烦人,因为你无法在没有 Wi-Fi 的情况下打开任何项目。

@FokkeZandbergen 我选择了Titanium Appcelerator,但是当我在Android设备上运行我的第一个测试应用程序时出现了错误。 - Farhan Shah
@FokkeZandbergen 当我运行我的应用程序时,它会给我以下错误:events.js:72 throw er; // 未处理的 'error' 事件 ^ Error: spawn ENOENT at errnoException (child_process.js:1001:11) at ChildProcess._handle.onexit (child_process.js:792:34) [ERROR] 应用程序安装程序异常进程终止。进程退出值为8。 - Farhan Shah
@FarhanShah,你能给我发一个代码链接吗?你也可以通过邮件联系我,我的邮箱是fzandbergen(at)appcelerator.com。 - Fokke Zandbergen
@FarhanShah,请发送邮件给我,并包括您使用的版本。 - Fokke Zandbergen
@FokkeZandbergen,请查看您的电子邮件。 - Farhan Shah
显示剩余3条评论

3
这个决定是基于偏好和需求的考虑。就开发复杂的移动应用而言,我个人认为强类型语言框架(如Xamarin)提供的调试和剖析工具比弱类型语言框架(如Titanium)更加优秀。两者都提供了完整的本地移动平台API(这是我个人认为必不可少的特性),但Xamarin提供以下优势:
  • 强类型和高表达力的C#和F#语言
  • 出色的IDE,如Visual Studio和Xamarin Studio
  • 一个充满活力的开发者社区
  • 出色的剖析工具
  • Xamarin Insights用于详细的部署后应用程序性能监控

我有点偏袒Xamarin开发,因为我真的很喜欢它。但我觉得在移动开发行业工作了4年之后,我对各种选择有了很多的见解。

再次强调,只要每个框架都提供了完整的移动平台API访问权限,它们之间的选择实际上仍然取决于个人偏好。但我的选择非常明确地倾向于Xamarin。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接