简体   繁体   English

与IPhone SDK相比,Mono Touch有多好?

[英]How good is Mono Touch in comparison to the IPhone SDK?

I'm new to IPhone development and have to decide on a suitable tool to develop my application in. Since I am know C# / .NET, but not objective C, Mono Touch seems appealing to me. 我是IPhone开发的新手,必须决定开发我的应用程序的合适工具。因为我知道C#/ .NET,但不是客观C,Mono Touch似乎对我很有吸引力。 But is it is worth spending the extra $400? 但值得多花400美元吗?

If have tried both, I'd be interested in your opinion. 如果两者都试过,我会对你的意见感兴趣。

I just posted about this at www.zouak.com , but in short for me it was a case of divide and conquer. 我刚刚在www.zouak.com上发布了这个消息 ,但对我而言,这是一个分而治之的案例。 I have years of .NET experience and honestly found learning Objective-C frustrating. 我有多年的.NET经验,并诚实地发现学习Objective-C令人沮丧。 Having a new language plus a new set of tools reduced my productivity significantly, also having to deal with manual memory management after years of not (prior to 2001 when I started with .NET I was a Java guy since its inception, so it's been a while) was an extra layer of "been there, don't want to go back." 拥有一种新语言和一套新工具会大大降低我的工作效率,而且在多年之后不得不处理手动内存管理(2001年之前我开始使用.NET时,我从一开始就是一个Java人员,因此它是一个虽然是一个额外的“在那里,不想回去”。

I've found the MonoTouch toolkit to be very worthwhile, and while I understand some of the objections and concerns, I'm someone for whom leveraging what I know (C#) allowed me to focus on what I didn't know (Interface Builder, the API, etc.). 我发现MonoTouch工具包非常值得,虽然我理解了一些反对意见和关注点,但我是一个利用我所知道的人(C#)让我专注于我不知道的事情(Interface Builder) ,API等)。 At this point now that I've built up a significant amount of familiarity with the Apple tools I'm nearing a point where if I wanted I could look at taking on Objective-C as a new language, given that I am a lot more comfortable, but for me learning a new language isn't as rewarding an accomplishment for me at this point in my career compared with learning a platform and getting quality applications out the door is. 在这一点上,我已经建立了对Apple工具的大量熟悉,我接近了一个点,如果我想我可以考虑将Objective-C作为一种新语言,因为我更多舒适,但对我来说,在学习平台和获得高质量的应用程序之外,在我的职业生涯中学习一门新语言对我来说并不是一件有成就的事。 For other folks I know they enjoy delivering "as Apple intended", and I fully respect that. 对于其他人,我知道他们喜欢“按照Apple的意图”提供,我完全尊重这一点。 Also, if Apple had a Java toolkit, I would be all over that. 此外,如果Apple有一个Java工具包,我会全力以赴。 But the conceptual distance between C# and Objective-C is more than I'm willing to invest at this point. 但是C#和Objective-C之间的概念距离远远超过我愿意在这一点上投资。

That's my 2 cents, 那是我的2美分,

Driss. 德里斯。

Great podcast on this week's dotnetrocks about this. 关于这个问题,本周关于这个问题的观点非常棒。

One HUGE factor that would sway me is the fact that they are currently working on Monodroid and I guess that WinMo 7 will probably be supported through some moonlight magic. 影响我的一个巨大因素是他们目前正在研究Monodroid,我猜WinMo 7可能会通过一些月光魔法得到支持。

Imagine targetting the top 3 mobile platforms with one language? 想象一下用一种语言定位前三大移动平台? Sweet.... 甜....

I've been using MonoTouch for 5 months, and really like it. 我一直在使用MonoTouch 5个月,非常喜欢它。

Take a look at my answer to a similar question here: MonoTouch - has anyone used this? 看看我在这里回答类似问题的答案: MonoTouch - 有没有人用过这个?

I am an iPhone developer, I have tried mono touch, but for me I would say NO, it's not worth the extra 400. 我是一名iPhone开发者,我尝试过单声道触摸,但对我来说,我会说不,这不值得额外的400。

First of all several free frameworks exist that allow you to target multiple platforms at once using different (usually high level) languages, such as PhoneGap , there's even a Flex framework somewhere, without counting Unity3D which actually uses C# and even allows you to deploy on iPhone and Nintendo Wii. 首先,存在一些免费框架,允许您使用不同(通常是高级)语言一次定位多个平台,例如PhoneGap ,甚至还有一个Flex框架,不计算实际使用C#的Unity3D甚至允许您部署iPhone和任天堂Wii。

Some of the Cons of using this third party frameworks are: 使用此第三方框架的一些缺点是:

1- Extra software layer, which obviously increases the possibility of failure. 1-额外的软件层,显然增加了失败的可能性。 Last year it happened with Unity3D. 去年它发生在Unity3D上。 Somehow the applications developed with it started being rejected by Apple (official Unity announcement here) , Unity guys responded fast, and I think they fixed the issue with Apple in 3 days. 不知怎的,用它开发的应用程序开始被苹果公司拒绝(官方Unity 宣布这里),Unity家伙反应迅速,我认为他们在3天内解决了Apple的问题。 But what if 3 days is too much for you, or even worse, what if the external framework that you are using to develop doesn't have that quality of support and the 3 days end up being weeks?... what if your applications got broken with an OS update ? 但是,如果3天对你来说太多了,甚至更糟糕的是,如果你用来开发的外部框架没有那种质量的支持而且3天最终会持续几周呢?...如果你的应用程序怎么办?操作系统更新破了吗?

2- You totally loose Xcode debugging chances (loose the symbols), and you are kinda reduced to printf debug. 2-你完全放松了Xcode的调试机会(松散符号),你有点减少了printf调试。 Of course you can debug in the Mono IDE, but still, Xcode is a powerful beast and all the SDK Betas are delivered to the developers to be used with particular Xcode versions. 当然你可以在Mono IDE中进行调试,但是,Xcode是一个功能强大的野兽,所有SDK Betas都交付给开发人员,用于特定的Xcode版本。

3- Binary size tends to be bigger in comparison to native Objective-C applications. 3-与原生Objective-C应用程序相比,二进制大小往往更大。 ( 6 to 7Mb larger in average ), and remember that if your application is above 20 Mb it can't be downloaded from an iPhone using 3G or Edge, ( which is the most popular way to install apps ). (平均大6到7Mb),请记住,如果您的应用程序超过20 Mb, 则无法使用3G或Edge从iPhone下载(这是最常用的安装应用程序的方式)。 So if that matters to you, it's another issue. 所以如果这对你很重要,那就是另一个问题。

In conclusion: 结论:

If you want to use MonoTouch because you don't know Objective-C, go for it, but still I would really recommend you to take a bit of time to learn the Objective-C language and the official Apple API's. 如果你想使用MonoTouch,因为你不了解Objective-C,那就去吧,但我还是建议你花点时间学习Objective-C语言和官方的Apple API。 Here's a great point of view about this. 这是一个很好的观点。

I would say no, because the biggest thing to learn about the iPhone SDK is not Objective-C, but the APIs instead. 我会说不,因为要学习iPhone SDK最重要的不是Objective-C,而是API。 Even if you used Mono Touch, you would have to learn the API for the iPhone. 即使您使用过Mono Touch,也必须学习iPhone的API。

It never hurts to learn a new programming language. 学习一门新的编程语言绝不会让人痛苦。

(However, don't listen to me, because I am using Lua to write my iPhone applications...) (但是,不要听我说,因为我使用Lua来编写我的iPhone应用程序...)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM