2010年6月2日星期三

随便说说Cocoa学习

我开始学习Cocoa也有一段时间了,一直吊儿郎当的看着书,很浮躁,不过经过这么一段时间的学习,也算有点心得,就随便说说,和大家分享。

1. Cocoa和Objective-C科普

Cocoa是一个巨大的库,主要有三大组件:Foundation框架,Application Kit框架(简称AppKit)和CoreData。

Foundation框架是Cocoa的基本(类)库,AppKit是Cocoa的图形界面库,CoreData是数据持久化库。

Cocoa框架是用Objective-C语言编写的,因此,要写Cocoa程序,就必须学习Objective-C

Objective-C是C语言的严格超集。大家熟悉的C++只能算C语言的变种。Objective-C的语法初看来很怪异,不过经过一小段时间的磨合,你就会爱上Objective-C的方括号语法。

Objective-C是一种非常动态的语言。其自省能力比Java强大很多,堪比动态的解释性语言,例如Ruby。

iPhone使用的是Cocoa Touch库,主要包括Foundation,UIKit和CoreData等。UIKit由AppKit发展而来,可以认为UIKit是一个清理过的AppKit——因为AppKit已经使用了很多年,因此由很多陈旧的,废弃的API,因为向后兼容的考虑还不能移除;而iPhone平台则没有这样的顾虑,因此UIKit的API比AppKit更加整洁。虽然AppKit和UIKit有很多相同或类似的API,而且背后的理论都是一致的,不过UIKit与AppKit的差别是比较大的,很多同名的类可能有着完全不同的继承树。

2. 书籍的选择

市面上的iPhone和Mac开发的书越来越多了。虽然这比找不到资料要好,不过,随之而来的问题是教材质量的良莠不齐。我就个人的体会来说说我对几本相对比较“有名”的书进行介绍:

a. Programming in Objective-C 2.0

这本书出版于2009年,是2003年出版的“Programming in Objective-C”的更新版本。这本书中规中矩,把Objective-C作为第一门语言来讲解。这本书的优点是比较适合没有或几乎没有编程经验的读者开始学习Objective-C。缺点是太浅显。该书讲了很多关于Objective-C和Foundation框架的东西,有很多讲的浮于表面,不过作为接触Objective-C的第一本书也还可以。

推荐度:3/5

b. Learn C on the Mac/Learn Objective-C on the Mac

这两本书我没怎么看,不过从这两本书的编排来看,感觉比Programming in Objective-C 2.0要讲解的好。如果你有足够的时间,或者你想从C入手,然后开始进入Objective-C,这本两书是不错的选择。而且这本书也讲解了基础的AppKit,因此内容比Programming in Objective-C 2.0丰富。因为我没有完全读下来,所以不多做评述。

推荐度:4/5

c. Learn Cocoa on the Mac

我正在看这本书。这本书给我的感觉就是充斥着例子。几乎每个章节都是从头到尾的在完成一个例子;而对例子本身的讲解很不足。大部分时候,照着书里的例子把例子做下来了,却还是没有弄清楚为什么。如果你比较喜欢跟着例子一步步的学习,那么这本书比较适合你。或者你已经对Objective-C和Foundation框架有了深刻的认识,这本书是熟悉Xcode和Interface Builder的很好的选择。这本书还有一个缺点是所有例子都假设开启了“垃圾收集”。所以如果你以后想学iPhone开发,请最好不要太着迷这本书,以免养成懒惰的坏习惯。

推荐度:3/5

d. Beginning iPhone 3 Development

这本书的风格和Learn Cocoa on the Mac完全一样,因为作者也基本一致。这本书我还没有看很多,因此不多做评价。不过,如果你也是初学iPhone开发,且对Objective-C也不是很熟悉,这本书绝对不是你想要的。当然,你可以按照从Learn C on the Mac -> Learn Objective-C on the Mac -> 本书,这样的轨迹学下来,也许还是不错的。

推荐度:3.5/5

e. Cocoa and Objective-C up and running

这本书我很喜欢。大概是因为我之前已经学了一点Objective-C的缘故,看这本书可以说如醍醐灌顶。这本书介绍了很多Cocoa和Objective-C的一些容易被忽略的特征;强调垃圾收集;对示例项目的描述言简意赅,重在讲解原理,因此是一本很好的书。如果你有一点C语言的基础,那么这本书是一个很好的起点。目前我还在读这本书,受益匪浅。

推荐度:4.5/5

f. Cocoa Programming Developers' Handbook

这本书可以算得上是Cocoa学习的圣经了。不过要看懂这本书讲解的内容,得有很好的C语言基础和一定的Cocoa基础。初学者略有些不适合阅读这本书。不过这本书却是不可多得的参考书。因此无论谁都要备上一本,边学边读,仔细品味,没看懂的可以先搁着,后面积累多了之后再次品味也许就豁然开朗了。

推荐度: 5/5

g. Apple的开发者文档

可能是我比较挫,我读苹果的开发者文档总觉得很吃力,甚至比读CPDH还吃力。因此,就我个人意见,初学者还是不要读,拿来做参考是可以的。等学到一定程度之后再去读这些文档,可能收获会更大。

推荐度:4/5

3. 总结

这篇博客写着写着就成了蹩脚的书评了。也罢,算是我的Cocoa学习站的一个开始吧。Cocoa是一个很有趣的框架,因此学习过程中痛并快乐着,这是一个很好的感觉。只希望自己能够有更高的效率,学到更多东西,最终能够写出一点东西来,从而能够至少对得起这个博客的主题:Cocoa Apps。

没有评论:

发表评论