应用程序。我们认为,如果我们在 Android 上使用 MonoTouch 和 Mono,我们只需要维护一个代码库,每个设备只有一个不同的 UI 层。
如果您正确构建应用程序,这是一种可能性。如果没有:没有。
如果您使用 Java+ ObjC +C#(用于 WP7/Win8 Metro 等),那么这根本不是一个选项
因为目前我们的小团队中没有人开发过智能手机应用程序,我们很快就需要它,我们想外包它。我们询问了其他公司是否更喜欢 MonoTouch 或 Objective C 进行 iPhone 开发。他们中的大多数人说,他们会选择Objective C。
如果您将其外包,您当然应该指定您想要写的内容吗?如果您需要在内部支持它,并且您只有 C# 技能,那么 MonoTouch 等对您(支付账单的人)更有意义!
他们说Objective C提供了更多的功能和可能性,
FUD,也不对。Monotouch 提供完整的 API。如果它不存在,作为 Xamarin 绑定它(他们以前经常这样做)
它更快
我很想看到基准。是的,从技术上讲,它在某些情况下可能更快,但在一般使用中,MonoTouch 相同或更快。
程序员错误是 iOS 应用程序性能问题的更常见原因。例如,不让事情脱离 UI 线程(这在 MonoTouch 中比在 ObjC 中更容易做到,这些块有很大帮助),或者花费太长时间才能退出 FinishedLaunching(如果你愿意,可以使用“main”方法)真的不是……)
垃圾收集和诸如 linq、xml/json 解析、泛型和集合之类的东西也非常有价值,而且速度非常快。
而对于 MonoTouch,Apple 将来可能不再支持它。
是的,有机会。蒂姆库克也有可能用苹果的数十亿美元跑掉并购买整个夏威夷(而不是拉里埃里森的“我将拥有这个岛”购买)。但现在机会相当渺茫。
所有这些都是真的还是有其他理由更喜欢Objective C?我知道周围还有其他类似的话题,但他们没有回答我的问题,尤其是关于 Apple 对 MonoTouch 的支持的问题。
Apple 不支持 MonoTouch。Xamarin 做到了,而且他们做得非常好。除了他们的产品 XCode,Apple 不支持任何东西。
Apple 确实允许MonoTouch 应用程序(有很多)。另一种看待它的方式:通常,前 100 名游戏中有 95% 是使用 Unity3D 编写的,它基于相同的技术(C# 代码的提前编译和嵌入 Mono/.NET 框架的缩减版本)。
有理由更喜欢 ObjC,这将是:
- 你已经知道 ObjC 和 CocoaTouch 并且喜欢它。
- 你的团队已经知道 ObjC 和 CocoaTouch,或者你可以轻松雇佣懂的人(注意:目前,据我所知,iOS 开发人员的招聘成本非常高,如果你能找到他们的话)
- 您需要在测试版发布之日使用它们。请记住,您可以使用当前的 MonoTouch 并将其部署到您的 iOS[已编辑] 设备上并安装测试版。你只是不能使用 iOS6 YET 中的新东西(Xamarin 说“大约 2 周”,现在应该是……)。另外请记住,您不能将应用程序部署到使用 beta SDK 构建的商店,即使您不使用其中的任何东西。您甚至不能在产品描述中提及 iOS[已编辑](我已经尝试过)
- 你喜欢 [squareBrackets andTheOccasional:@"strange syntax things"];
现在,构建一个跨平台、共享代码的应用程序会是一件容易的事吗?一定不行。对于一个非平凡的应用程序来说,这是一个非常复杂的开发。但这就是软件开发的乐趣所在:如果它很容易,那就太无聊了!抓住 Greg Shackles 的书 ( http://www.amazon.com/dp/1449320236 ) 了解 iOS+WinPhone+Android 风格开发需要什么。