Ron*_*nie 27 iphone titanium appcelerator xamarin.ios
作为一名.Net开发人员,我一直梦想有可能使用我现有的Iphone技能(c#)进行开发.
这两个程序都需要安装Mac和Iphone Sdk.
Appcelerator Titanium是我尝试的第一个应用程序,它基于将一些Iphone本机API暴露给javascript,以便可以使用该语言调用它们.
Monotouch起价为399美元,可以在Iphone上部署,而不是在Iphone模拟器上,而Titanium是免费的.
Monotouch(Monodevelop)有一个目前在Titanium中缺少的Ide(但你可以使用任何编辑器,如Textmate,Aptana ...)
我认为这两个程序最终都会生成一个本机预编译的应用程序(如果我不确定Iphone上最终应用程序的大小,因为我认为.Net框架调用在Monotouch的编译时是预先进行的).
我也不确定所有Iphone api和功能的完整报道.
Titanium还具有支持Android应用程序开发的优势,但作为ac#developer,我仍然发现Monotouch体验更像是Visual Studio体验.
您会选择哪一个,以及您在Monotouch和Titanium上的体验是什么?
Ror*_*yth 96
像任何工具或平台或语言或框架或任何问题一样,它应该归结为你想要的.
忘记所有你想要开发的平台,然后你需要付费的建议.如果您对学习Objective-C,Xcode和相关的Apple位感兴趣,那么goferit.我做到了.这很有趣,但我的兴趣是开发iPhone应用程序.学习一门新语言,框架和IDE只是一个奖励(我喜欢这个东西).我开始时也是必要的.
我一直在使用MonoTouch,因为它已经发布了,我喜欢它.我更喜欢C#到Objective-C,我喜欢访问MonoTouch提供的.Net(Mono)框架的子集.对于.Net而言,某些事情比Cocoa更容易(字符串操作,日期操作,任何 XML等).
我也不再需要处理引用计数了.多年来我一直没有跟踪那个级别的资源.我不介意不得不自己清理,但我不想手动做一些我自己使用的其他现代开发平台自动为我做的事情.此外,即使对于经验丰富的Objective-C开发人员来说,引用计数也不是一件容易的事.有时会滚动浏览OS X的控制台输出以查看因内存管理问题导致的应用程序崩溃的数量(我知道 - 基本上任何应用程序都可能发生这种情况,但是当你遇到过度工作的开发人员时,更容易犯错导致这种情况他们的注意力范围已被摧毁了十二个小时,如果这样,如果那个以及其他那个和那个等等等等等等等等).
我仍然使用Objective-C/Xcode - 我真的学会了喜欢Apple的工具.老实说,我觉得他们很尴尬,有点神秘,但仍然很有趣.
但是......那我也喜欢这个:
public string SomeString { get; set; }
Run Code Online (Sandbox Code Playgroud)
要使用Objective-C做同样的事情(在iPhone上,无论如何)要求你声明一个局部变量来支持属性,编写属性声明,然后使用"synthesize"指令为你生成属性(取决于在你指定的属性属性上,你可能有一个包含getter和setter的属性来处理你的引用计数 - 总的来说,这是一个节省时间,但C#Way在这里是明显的赢家.
这只是MonoTouch如何让您的生活变得更轻松的一个例子,特别是如果您已经习惯了.Net/Java/Python /其他语言,这些语言不需要让您的记忆管理变脏(除非您想要) .
至于iPhone-ness,除了将.Net的一部分带到iPhone世界之外,MonoTouch命名空间映射到CocoaTouch,所以如果你对MonoTouch UIViewController感到困惑,你可以跳到Apple的文档在UIViewController上.MonoTouch .Net-izes CocoaTouch,但它足够接近你不太可能碰壁(如果你使用的是Xcode/Objective-C,也不会碰到它).它很光滑.
钛是不同的.由于他们正在尝试(尝试)创建一个允许您为多个平台编写相同应用程序的抽象层,因此您将要解决通常的缺点:完全不同的API,失去灵活性(MonoTouch也是如此) ,但不是相同程度的远程,并且基本上必须学习一个全新的平台(这是你试图通过绕过Xcode/Objective-C/CocoaTouch避免的,对吧?).
我也讨厌JavaScript,所以我会对Titanium产生偏见.但即使事实并非如此 - 即使我可以使用我喜欢的语言 - 这些API也不会引起我的兴趣.或者我的一切.
无论您选择的开发工具,你将最终不得不学习一些关于CocoaTouch.无论是Xcode/Objective-C,MonoTouch还是Titanium,有些东西都会破坏或者对你不利,你最终将不得不参考CocoaTouch文档.
如果我正在谈论iPhone开发(我有,我会再做一次),如果我要讨论Apple开发工具的替代品(我会),我仍然强烈鼓励开发人员至少工作通过使用本机工具的一些基本iPhone应用程序.这将使您成为平台期间更好的开发者.您可以使用此开始阶段来确定您是否要使用除Apple免费提供的位以外的任何其他内容.你可能不会.我一直在使用MonoTouch因为它让我高兴 - 不是因为它是必要的.
因此,总结一些基本标准:
偏好(语言/框架)
设备(你是否关心非iPhone平台或者有一天会想到你?)
舒适性(如果你喜欢并且知道C#MUCH比Objective-C更好,没有理由不使用MonoTouch)
除非他们真正使用他们正在谈论的技术,否则不要听取反对者的意见.例如,我读过有关Titanium的内容,但我对此并不熟悉 - 我只是知道我不想因为我的偏好而与它有任何关系.这并不会让它变得"糟糕" - 这只是我一生中不想要的东西.
Objective-C人群可以令人印象深刻地热心.虽然有很多开放的开发者,但也有这么多,所以很多人认为Objective-C和Cocoa,等等等等都是devkind所需要的最后一个开发工具.
别理他们.
如果您担心支持,请考虑以下事项:
苹果公司很可能会保持现状,因为他们就是制造这种垃圾的人.
MonoTouch可能会继续保持最新状态--Mono窥视与微软的关系做得非常出色,我认为他们没有理由不对Apple做同样的事情.我被他们的所作所为感到震惊.尽管MonoTouch已经发布,比如五分钟之前,他们已经有了iPhone 3.1的更新资料.他们对此很认真,我认为他们很神奇.他们是开发世界的Keebler精灵.他们坐在他们秘密的层面,并为每个人(好的 - 不是每个人)都喜欢,但没有其他人会尝试做.
Titanium要么成为一个笨拙的统一API,用于为多个平台编写应用程序,这完全是它自己的事情,或者随着不同平台的功能发生分歧,它将变得越来越分散.是的,这是一堆典型的扶手椅书呆子未来的凝视......我应该在这个子弹项目前面加上"这是我的意见......"如果只有一种方法可以回去改变它.
我现在闭嘴
选择你喜欢的.MonoTouch是Apple的"安全"替代品.我担心Titanium将会走下同样的老哎呀 - 这个超级高级平台 - 抽象层 - 东西 - 不是真正有效的道路,而这么多其他技术都有.但是,如果你做的事情很简单,给它一个机会是没有害处的,特别是考虑到它在测试阶段是免费的.
毒蛇.
现在真的关闭了...我希望这会有所帮助.