MonoTouch诉Objective-C适用于新的iPhone开发者

Pet*_*ter 9 c# objective-c xamarin.ios ios

我正在与一家小型创业公司合作,目标是创建一个iPhone应用程序.我们团队的程序员都知道C和Java,但我们没有ObjC/C#/ iPhone经验 - 无论如何我们都会学到一些东西.我在这个主题上看到的所有问题都是从C#程序员进入iOS的角度出发的,所以我没有关于学习其中一个的相对优点的任何信息.

所以,我想知道的是C#和Objective-C对于新程序员的相对优点,就这些事情而言:

  • 性能
  • 便于使用
  • 易于学习
  • 可靠性(即,新的iOS版本会打破MonoTouch应用吗?)

另外,使用Android进行跨平台开发是否会对MonoTouch进行编写?

mod*_*che 13

如果你的创业公司的目标是创建一个iPhone应用程序,那么显然你应该学习iOS应用程序构建的语言Objective-C.您的团队已经具有C语言的经验,因此应该非常容易上手.Big Nerd Ranch书籍将在一两周内让你起步和运行(我与Big Nerd Ranch无关,我认为它们很棒).

我不明白为什么你提出MonoTouch,考虑到你的团队没有C#/ ..NET体验.还有很多其他框架,如MonoTouch,包括Titanium SDK(JavaScript),RubyMotion(Ruby)等等.所有这些都很棒,但我认为这主要是针对那些有各自语言经验的人.它们允许您使用您更熟悉的语言编写iOS应用程序,但具有以下缺点:

  1. 性能可以同样好,但通常比用Objective-C编写的应用程序差一点(有时很多).
  2. 学习资源不如iOS SDK/Objective-C那样丰富.有很多人想要制作iOS应用程序,而那些人有些人使用这些框架,并且他们被稀释在其中.只有一小部分可用于iOS开发的资源将用于任何给定的框架.
  3. 这些框架基于iOS SDK/Objective-C,因此自然开发总是落后一步.如果Apple在iOS SDK的下一个版本中推出了全新的API,那么你将不得不等待这些框架适应(用Objective-C编写的应用程序也可能会破坏,但它会更容易处理第2点).
  4. 大多数这些框架都需要熟悉iOS SDK.您仍然需要知道应用程序- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions在启动时调用该方法,但此外您还需要记住如何将其转换为适用于MonoTouch的方法:public override bool FinishedLaunching (UIApplication app, NSDictionary options).iOS SDK非常庞大,大多数iOS开发人员依靠Apple的文档来提供洞察力.因此,您将查看为Objective-C编写的API文档,并将方法转换为您选择的框架.
  5. Objective-C生态系统不断发展,包括CocoaPods,bwoken等酷炫的新项目.这些项目主要是在考虑Objective-C和Xcode的情况下开发的.配置它们以使用您选择的框架将几乎总是会给您带来额外的时间和工作.

以上几点一般使我无法深入研究其他任何框架.它们都非常酷,但它们在采用中的主要优点似乎是促进了Objective-C之外具有深厚技能的人的开发,或允许小型团队进行跨平台开发,缺乏投资Android iOS 的资源(以及Windows Phone)程序员.希望这些好处超过上述采用者的成本.

另外,使用Android进行跨平台开发是否会对MonoTouch进行编写?

我想会的.实际上,MonoTouch主页宣称这是使用框架的主要优势.我对视图/控制器类不太确定,因为看起来它们会被绑定UIKit,但是模型中封装的逻辑应该相当容易移植.

简而言之,我认为您和您的团队应该坚持使用Objective-C进行iOS开发.


Joe*_*orn 7

如果您只是构建一个iPhone应用程序,那么请务必选择Objective C.但如果您想要一个移动应用程序 - 可能包括Android,Windows Phone,Windows rt,blackberry,webos或其他选项 - 您可能想要仔细观察一些替代平台,MonoTouch是其中一个突出的选择.