作为.NET开发人员,我一直梦想着有可能使用我的现有技能(C#)应用程序来开发iPhone。

这两个程序都需要Mac和iPhone SDK安装。

AppCelerator Titanium是我尝试过的第一个应用程序,它基于将一些iPhone Antiph API暴露于JavaScript,以便可以使用该语言称呼它们。

Monotouch的价格为399美元,因为可以在钛免费的情况下在iPhone上部署而不是在iPhone模拟器上部署。

Monotouch(单体开发)的IDE目前在钛中缺少(但是您可以使用任何编辑器,例如Textmate,Aptana ...)

我认为两个程序都在最后一个本机预编译的应用程序生成(也不确定iPhone上最终应用的大小,因为我认为.NET Framework调用在Monotouch中进行了编译时间进行预定)。

我也不确定所有iPhone API和功能的全部覆盖范围。

钛还具有启用Android应用程序开发的优势,但是作为AC#开发人员,我仍然发现单调体验更像是Visual Studio One。

您会选择哪一个,您在单触摸和钛上的经历是什么?

有帮助吗?

解决方案

就像任何一个 - 或平台或语言 - 或框架 - 或什么问题一样,它应该真正归结为什么 想。

忘了所有的for-want-to-want-to-ther-the-want-the-the-the-to-to-to-to-to-to-to-Dues建议建议。如果您对学习Objective-C,Xcode和相关的Apple Bits感兴趣,则是GoFerit。我做到了。很有趣,但是 我的 兴趣是开发iPhone应用程序。学习一种新的语言,框架和IDE只是一个奖励(我喜欢这种东西)。我开始时也有必要。

自发布以来,我一直在使用Monotouch,我喜欢它。 更喜欢C#而不是Objective-C,我喜欢访问Monotouch提供的.NET(MONO)框架的子集。某些事情比可可(Cocoa)更容易使用.net(字符串操纵,日期操纵 任何事物 XML等)。

我也喜欢不再处理参考会计。多年来不必跟踪该水平的资源,我感到宠坏了。我不介意在自己之后清理,但是我不想手动执行我自动使用的所有其他现代开发平台。另外,即使对于经验丰富的Objective-C Devs,参考计数也不明智。滚动浏览OS X的控制台输出,以查看由于内存管理问题而导致多少个应用程序崩溃(我知道 - 这基本上可能发生任何应用程序,但是当您涉及过度劳累的开发人员时,犯错的错误要容易得多其注意力的跨度已被摧毁了十二个小时的IF,如果这样,那么否则就被摧毁了。

我仍然使用Objective -C/Xcode-我真的学会了喜欢Apple的工具。老实说,我觉得它们很尴尬,有点神秘,但仍然很有趣。

但是...然后我也喜欢这样:

public string SomeString { get; set; }

要使用Objective-C(无论如何在iPhone上)做同样的事情,您需要声明一个本地变量来支持属性,编写属性声明,然后使用“合成”指令来为您生成属性(取决于关于您指定的属性属性,您可能拥有一个属性,该属性包装了getters和setter,可以为您负责参考计数 - 总的来说,这 节省时间,但是C#Way是这里的清晰赢家)。

这只是单调如何使您的生活更轻松的一个例子,尤其是如果您习惯了.NET/JAVA/PYTHON/其他不需要您的手指脏的语言(除非您想) 。

至于iPhone,除了.NET到iPhone世界的一部分外,单调命名空间图到Cocoatouch,因此,如果您对Monotouch UiviewController感到困惑,您可以跳到Apple的Docs上在UiviewController上。 Monotouch .Net-Zizes Cocoatouch,但它足够接近,您不太可能撞到墙壁(如果您使用Xcode/Objective-C,那也不会碰到)。很光滑。

钛是不同的。因为他们正在尝试()创建一个抽象层,使您可以为多个平台编写相同的应用程序,您将处理通常的缺点:完全不同的API,灵活性丧失(可以说单触摸相同,但不能远程远程学位),基本上必须学习一个全新的平台(这是通过围绕Xcode/Objective-C/Cocoatouch避免的方法,对吗?)。

我也讨厌JavaScript,所以我将对钛有偏见。但是,即使不是这种情况 - 即使我可以使用我喜欢的语言,API也不会让我幻想。或我的一切。

无论您选择哪种开发工具, 将要 最终不得不学习有关Cocoatouch的知识。无论是Xcode/objective-c,单触摸还是钛, 某物 打破或全力以赴,您最终将不得不参考Cocoatouch文档。

如果我在iPhone开发方面发表了演讲(我拥有的以及将再次做的),如果我要讨论苹果开发工具的替代方案(我会),我仍然强烈鼓励Dev至少工作通过使用本机工具的一些基本iPhone应用程序。这将使您成为平台时期更好的开发人员。您可以使用此开始阶段来确定您是否是否 除了免费的苹果供应碎片以外的任何东西。你可能不会。我一直在使用单调,因为它使我感到高兴 - 不是因为有必要。

因此,总结一些基本标准:

  • 偏好(语言/框架)

  • 设备(您是关心非iPhone平台还是认为您有一天可能?)

  • 舒适(如果您喜欢并知道C#比Objective-C好得多,没有理由不使用Monotouch)

除非他们实际上没有,否则不要听反对者 用过的 他们正在谈论的技术。例如,我已经阅读了有关钛的信息,但是我没有经验丰富 - 我只知道我不希望因为我的喜好与之有任何关系。那并不是“不好” - 只是我一生中不想要的东西。

Objective-C人群可能会非常热心。虽然里面有很多开放的开发人员,但有很多,所以 所以 许多认为Objective-C,Cocoa和Blah等等的人是Devkind将永远需要的最后开发工具。

别理他们。

如果您担心支持,请考虑以下一些内容:

  • 苹果可能会保持最新状态,因为他们是制造这种垃圾的人。

  • Monotouch可能会保持最新状态 - Mono Peep在Microsoft上做得非常出色,我认为他们没有理由与Apple做同样的事情。他们的工作使我震惊。尽管五分钟前就已经发布了单调,但它们已经对iPhone 3.1的东西进行了更新。他们对此很认真,我认为他们是魔术。他们是开发世界的基布勒精灵。他们坐在秘密的层中,将所有人(好吧 - 不是每个人都喜欢的人)提出来,但没有其他人会尝试这样做。

  • Titanium要么将成为一个尴尬的统一API,用于为多个平台编写应用程序,这完全是它自己的东西,要么随着不同平台的功能差异,它将变得越来越分裂。是的,这是一堆典型的扶手椅,渴望的是……我应该用“我的看法……”将这个子弹的物品放在这里,如果只有一种方法可以返回并更改它。

我现在闭嘴。

去做自己喜欢的东西。 Monotouch是苹果公司的“安全”替代品。恐怕钛将沿着同样的旧oops掉下来,这是如此高的平台 - 平台-Abstraction-abstraction-layer-stuff-does does notly Works的道路,与其他许多技术相比。但是,如果您做一些简单的事情,那就没有害处了,尤其是考虑到它在Beta期间是免费的。

Aright。

现在真的关闭...我希望这会有所帮助。

其他提示

这些是您可以构建iPhone应用程序的有趣而有趣的方法。但是,对于真正快速的本地iPhone开发,您最好的选择是免费的iPhone SDK和Xcode。

老实说,最难学习的东西是框架本身的功能,而不是语言语法。但这是您必须解决的问题,因为这些IDE/语言仍然需要您掌握可可(和可可触摸)的一些惯例。

我并不是说这是可可 /客观-C-C势利小人,但是如果您知道C(作为C#DEV您这样做),实际上没有任何进入的障碍。

此外,您将可以访问这些刚起步的翻译器/IDE/语言无法使用的大量教程和示例代码。

学习另一种编程语言很少是一件坏事,作为经验丰富的程序员,您的时间投资不会像您想象的那样大。

我创建了一个开源项目 http://propertycross.com 通过显示Sencha,Titanium,Xamarin等实现的相同应用程序,可以帮助开发人员选择跨平台移动框架。该项目使您可以轻松地从最终用户体验,代码,IDE,开发人员体验等方面比较广泛的框架。

我有点喜欢提供的想法。我作为Java开发人员的人物使用Ispectrum(http://www.flexycore.com)。它还带有IDE,调试器和其他内容,这使开发变得非常方便,因为它受益于Eclipse Java插件的所有功能。基于Java,这也允许从其他Java应用程序轻松地重复使用已经存在的代码,如果除iPhone以外的几乎所有平台(桌面和移动设备)上都存在Java,则可以非常方便地将Java在几乎所有平台上都存在。另外,它是免费的开源项目。

我宁愿考虑这种解决方案,因为我不喜欢回到Emacs中发展的想法:)。

我知道这是一个古老的话题,但为了保持最新状态,看起来单调和其他跨平台框架是 将在SDK 4.0中被禁止. 。写iPhone应用程序的唯一“安全”下注是至少在暂时使用Xcode和Objective-C。

如果您是c#程序员,为什么您不应该投入一些时间来学习目标C。说实话,这不会花费太多时间。但是,您可以在带有新语言的新平台上工作感觉很好。一直以来学习新事物令我着迷。

有很多方法可以使用该设备。苹果在SDK许可证中指出,唯一批准的进入设备的方法是通过C,C ++,Objectivec和JavaScript。

在此时间点,在App Store中接受了基于单触摸和Appcelerator钛的应用程序。多亏了许可证的变化,对此主题引起了很多恐惧,不确定性和怀疑。苹果公司吓到了所有不做objectivec的人。

我建议您做的任何对开发人员最有意义的事情。如果您知道C#和.NET,则应该使用单调。如果您知道Objectivec或Mac平台,则Objectivec可能是要走的方法。如果您知道X并且它在iPhone上,那么X是我建议先看的地方。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top