现状
无论各方面如何评论,在 Apple 平台下开发越来越丰富。回想几年前如果想要招聘专业在 Mac/iPhone 平台下的开发人员,那几乎是不可能的事情。
Apple 平台下开发的那种狂热,让我觉得很是意外但想想却又是情理之中。Apple 的总市值已经超过微软,同时 ObjC 已经挺进了编程语言的前十 。
这种情况让我总不免对比当年的 C# 和 Java -- Apple 平台下的开发,又将会是新的一轮的淘金热。
成本
与其他平台不同,想要在 Apple 平台下开发,需要有一定的硬件成本。首先,最好必须要有苹果的产品(用「黑苹果」使用不是「那么回事」)。同时如果想要 iPhone 下的开发并想要在 App Store 中卖的话,那么又得交份「保护费」。
然后就是其他的软成本。 具体这里有篇文章写的很详细 ,这里主要列出的可能会碰到的技术问题:
- 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 平台下开发优势:
- 开发 iPhone 软件能直接带给开发者收益
- Apple 的用户群有相较高的消费能力
- Mac 下的软件相对较少,所以无竞争压力比较小
- Mac OS X 其实就是个 BSD(via)
那么劣势也是相对比较的明显:
- iPhone 其实是个半封闭的系统
- 学习 ObjC 有很大的成本
因此我的观点,如果你想在 Apple 平台下开发
- 你要熟悉 Apple 的产品,也就是首先么成为它的用户
- 做好打「持久战」的准备,学习任何技术切忌浮躁
- 改变目前开发平台下固有的观点,对于而言一切都是新的
- 有必要的时间和精力
再次需要提及的就是切忌浮躁,毕竟做好技术并不是件非常容易的事情,尤其是对于个全新的平台而言。短期内的收益平衡或许会很难做到,但相信一旦坚持下来终究会有回报。
PS,不喜欢 iSSH 占用一个 Dock 图标的用户,可以考虑试试我的修改版本,增加了重新链接、链接通知等功能: http://code.google.com/p/issh-improved/
-- EOF --