单触 v.Objective-C适用于新的iPhone开发人员

本文关键字:iPhone 开发 Objective-C 适用于 单触 | 更新日期: 2023-09-27 18:34:05

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

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

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

另外,用MonoTouch编写对Android的跨平台开发有什么好处吗?

单触 v.Objective-C适用于新的iPhone开发人员

如果你的创业公司的目标是创建一个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,因此开发自然总是落后一步。如果苹果在下一个版本的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之外具有深厚技能的人的开发,或者允许缺乏资源投资于AndroidiOS(和Windows Phone(程序员的小团队进行跨平台开发。希望对采用者来说,好处超过上述成本。

另外,用MonoTouch编写对Android的跨平台开发有什么好处吗?

我想会的。事实上,MonoTouch主页将其吹捧为使用该框架的主要优势。我不太确定视图/控制器类,因为它们似乎会被绑定到UIKit中,但模型中封装的逻辑应该很容易移植。

长话短说,我认为您和您的团队应该坚持使用Objective-C进行iOS开发。

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

目标 C 是 C 的

严格超集,因此,如果您了解 ARM 上编译的 C 代码的性能特征,则可以只使用您熟悉的 C 子集,但 iOS UI 除外。

似乎有报道称,经验丰富的 C 程序员开始在 2 周内用 Objective C 编写 iOS 应用程序。 但是,当然,在持续的学习过程中学习广泛的框架和API,无论语言如何。

对于性能,答案是Objective-C,一路走来。

也就是说,看看用HTML5做到这一点。 如果您坚持加速转换,应用程序前端的 HTML5 性能出奇地好。 将HTML5应用程序移动到Android也非常容易。

简单的答案是Objective-C。 学习起来并不难。 如果你在 C 上很扎实,在 OOP 上很坚实,你会没事的。