我们希望为iOS和Android智能手机开发应用程序.我们主要使用Microsoft技术来开发我们的应用程序.我们认为如果我们使用MonoTouch和Mono for Android,我们只需维护一个代码库,每个设备只有一个不同的UI层.
因为目前我们的小团队中没有人开发智能手机应用程序,我们很快就需要它,我们希望将其外包.我们向其他公司询问他们是否更喜欢用于iPhone开发的MonoTouch或Objective C. 他们中的大多数人都表示会选择目标C.他们说Objective C提供了更多的功能和可能性,它更快,而对于MonoTouch,苹果有可能在将来不再支持它.所有这些都是正确的还是有其他理由更喜欢Objective C?我知道还有其他这样的线程,但他们没有回答我的问题,特别是有关Apple支持MonoTouch的问题.
Nic*_*ise 40
应用.我们认为如果我们使用MonoTouch和Mono for Android,我们只需维护一个代码库,每个设备只有一个不同的UI层.
如果你正确构建你的应用程序,这是一种可能性.如果不是:不.
如果您使用Java + ObjC + C#(对于WP7/Win8的地铁等),那么这是不是一种选择AT ALL
因为目前我们的小团队中没有人开发智能手机应用程序,我们很快就需要它,我们希望将其外包.我们向其他公司询问他们是否更喜欢用于iPhone开发的MonoTouch或Objective C. 大多数人说,会选择目标C.
如果你要外包它,你应该决定你想要它写的东西,当然?如果你需要在内部支持它,而你只有C#技能,那么MonoTouch等对你来说更有意义,人们付账单!
他们说Objective C提供了更多功能和可能性,
FUD,也不正确.Monotouch提供完整的API.如果它不在那里,就像Xamarin绑定它(他们之前经常做的)
它更快
我很想看到基准.是的,从技术上讲,它可以在某些情况下更快,但在一般使用中,MonoTouch的相同或更快.
程序员错误是iOS应用程序性能问题的更常见原因.例如,没有从UI线程中获取东西(在MonoTouch中比在ObjC中更容易做到,这些块已经帮助了很多),或者花了很长时间才能摆脱FinishedLaunching("主要"方法,如果你愿意,那么它不是真的...)
垃圾收集和linq,xml/json解析,泛型和集合之类的东西也非常有价值,而且非常快.
而对于MonoTouch,苹果有可能在将来不再支持它.
是的,有机会.蒂姆库克也有机会与苹果公司的数十亿美元并购买整个夏威夷(而不是拉里·埃里森的"我只是购买这个岛屿").但现在机会相当渺茫.
所有这些都是正确的还是有其他理由更喜欢Objective C?我知道还有其他这样的线程,但他们没有回答我的问题,特别是有关Apple支持MonoTouch的问题.
Apple不支持MonoTouch.Xamarin确实如此,他们做得非常好.Apple不支持XCode以外的任何产品,XCode是他们的产品.
Apple DOES 允许使用 MonoTouch应用程序(有很多).另一种看待它的方式:通常,前100个游戏中有95%是使用Unity3D编写的,Unity3D基于相同的技术(提前编译C#代码并嵌入Mono/.NET框架的缩减版本) ).
有理由倾向于ObjC,它将是:
现在,构建一个跨平台,共享代码应用程序是一件容易的事吗?一定不行.对于非平凡的应用程序来说,这是一个非常复杂的开发.但这就是软件开发的有趣部分:如果它很简单,那就太无聊了!抓住Greg Shackles的书(http://www.amazon.com/dp/1449320236),了解iOS + WinPhone + Android风格开发所需的内容.
Mik*_*enz 11
我的预感是,你谈过的公司只是习惯使用Objective-C.这就是他们的技能所在,这也是他们不愿偏离自己道路的最大原因.其他原因可以双向争论.
确实,没有人可以预测苹果将会做什么,但苹果将在2010年夏天禁止使用第三方工具包和API的可能性非常小.这只是很短的一段时间,而且完全逆转了那个决定.他们目前的重点是使应用程序开发更容易,这意味着保持该领域对替代开发方法开放.我认为MonoTouch是安全的.
至于速度,C#通常会生成非常快的可执行文件.他们可能不是很一样快的Objective-C,但我怀疑你会发现有不同的.我记得在某些测试中看到一个网站显示C#优于C/C++,但那是在.NET环境中,而不是Mono ......不幸的是我再也找不到引用了.我会继续寻找.但速度的底线是C#速度非常好.它不像BASIC vs C.更像是Java/JIT vs C.
C#为Objective-C 提供了许多(!)优势,并且已经在其他Stack Overflow答案中进行了枚举,所以我在此不再赘述.你可以很容易地找到它们.
我是MonoTouch的明显粉丝,但我不得不说一件事:我觉得公司认为这是错误的,因为他们能熟练使用C#/ .NET,他们很容易就能开发和/或维护iOS使用MonoTouch的应用程序.事实并非如此,因为MonoTouch基本上是CocoaTouch API的C#层,这意味着你必须学习Apple的做事方式.你有app代理和视图控制器以及所有UIKit的东西.那里有一个真正的学习曲线.但如果你能熟练使用C#,MonoTouch将是一个巨大的帮助.
更新:
我发现了关于C#速度的文章:头对头基准:C++ vs .NET
我实际上已经为我开发的每个应用程序使用过MonoTouch.性能从来就不是问题,我无法想象它会对我使用Objective-C有多糟糕.我在美国应用程序商店中有2个前十大应用程序:"画一个火柴人"和"画一个火柴人:第2集"(不用担心我们正在开展更多工作).
如果您了解C#和.Net,那么与尝试学习Objective-C相比,您的工作效率将会大幅增加.在iOS开发之前,我是一名C#.Net开发人员(仅限Windows),过渡到MonoTouch非常棒.
如果你喜欢Linq,解析XML少于100行,垃圾收集,泛型,简单的多线程,没有奇怪的方括号,MonoTouch就适合你.
我同时使用Objective-C和c#(MonoTouch和Droid),我真的很喜欢.当我用c#编写代码时,有许多功能,比如我在Obj-C中喜欢的Linq,当我在Obj-C编写代码时,我会喜欢在c#中有很多东西,但是我很快适应了我正在编码的任何东西.重新表现,我发现没有任何差别,即使是相当图形密集的东西,所以我不会将其作为不使用c#的理由.
我认为这最终取决于您编写的内容,尽管当然有一个设计良好的跨平台项目,如果您使用Mono,您可以拥有完全跨平台的核心代码,而您只需要执行UI以特定于平台的方式提供的东西 - 当涉及到这一点时,您显然需要了解原生内容,以使UI以适合平台并且对用户熟悉的方式工作.
| 归档时间: |
|
| 查看次数: |
16058 次 |
| 最近记录: |