现状

无论各方面如何评论,在 Apple 平台下开发越来越丰富。回想几年前如果想要招聘专业在 Mac/iPhone 平台下的开发人员,那几乎是不可能的事情。

Apple 平台下开发的那种狂热,让我觉得很是意外但想想却又是情理之中。Apple 的总市值已经超过微软,同时 ObjC 已经挺进了编程语言的前十

这种情况让我总不免对比当年的 C# 和 Java -- Apple 平台下的开发,又将会是新的一轮的淘金热。

成本

与其他平台不同,想要在 Apple 平台下开发,需要有一定的硬件成本。首先,最好必须要有苹果的产品(用「黑苹果」使用不是「那么回事」)。同时如果想要 iPhone 下的开发并想要在 App Store 中卖的话,那么又得交份「保护费」。

然后就是其他的软成本。 具体这里有篇文章写的很详细 ,这里主要列出的可能会碰到的技术问题:

https://friable.rocks/_/2010_06_16/1276695984.png

  • ObjC 语言本身 19%
  • 我不了解 ANSI C 12%
  • Cocoa 实在太大了 11%
  • 内存管理 10%
  • 界面 UI 设计和开发 10%
  • 我习惯使用 Java 和 C 了 10%
  • 如何设计委托模式 8%
  • Cocoa 模型等 8%
  • 我不了解面向对象编程(OOP) 8%
  • 我不清楚文档如何建立 5%
  • Cocoa 的(库)绑定等 5%
  • Xcode 工具使用 3%

国内开发者还有个必须逾越的鸿沟,就是语言和社区问题。目前,国内 Apple 平台下的开发相关的中文书籍和文档几乎是缺失;国内的专业苹果开发论坛也屈指可数。

值不值得?

那么,该不该花那么多的时间在新平台上。这对于在有其他平台中有相关经验的人而言,这是个博弈的过程。

相对其他「传统的平台」,可以看到即将从事 iPhone 开发的开发者们都是看到 App Store 的直接利益而去。而传统的 8/2 原则在任何时候都会适用。

在即将饱和的市场中打开道口子,并不是件很容易的事情,这往往并不是技术上的问题。

相对在 Apple 平台下开发优势:

  1. 开发 iPhone 软件能直接带给开发者收益
  2. Apple 的用户群有相较高的消费能力
  3. Mac 下的软件相对较少,所以无竞争压力比较小
  4. Mac OS X 其实就是个 BSD(via)

那么劣势也是相对比较的明显:

  1. iPhone 其实是个半封闭的系统
  2. 学习 ObjC 有很大的成本

因此我的观点,如果你想在 Apple 平台下开发

  1. 你要熟悉 Apple 的产品,也就是首先么成为它的用户
  2. 做好打「持久战」的准备,学习任何技术切忌浮躁
  3. 改变目前开发平台下固有的观点,对于而言一切都是新的
  4. 有必要的时间和精力

再次需要提及的就是切忌浮躁,毕竟做好技术并不是件非常容易的事情,尤其是对于个全新的平台而言。短期内的收益平衡或许会很难做到,但相信一旦坚持下来终究会有回报。

PS,不喜欢 iSSH 占用一个 Dock 图标的用户,可以考虑试试我的修改版本,增加了重新链接、链接通知等功能: http://code.google.com/p/issh-improved/

-- EOF --