开源的Objective-C项目高质量的代码?
我认为学习一种新的编程语言的最好方法之一是深入源代码,看看有经验的编程人员编写。 我发现这种问题在其他语言的堆栈溢出问题,但没有针对Objective-C。 我发现最接近这个关于好看的Cocoa用户界面的问题 ,但我正在考虑一般的代码质量,比如很好的使用习惯用法和devise模式,以及可用的文档。 另一个好的特点是代码基础足够大,需要真正的组织纪律,但是又足够小,初学者可以适应他/她的头脑。
您认为什么是符合这些标准的高质量开源项目?
我发现Adium是一个精心devise和编写的Objective-C项目。 它也有一个巨大的代码库。
在CocoaDev上有一个开源的Mac项目列表: http ://cocoadev.com/CocoaOpen
并不是所有的项目都是活跃的,但其中有相当一部分是。 我特别推荐:
- BWToolkit – http://bitbucket.org/bwalkin/bwtoolkit/
- BGHUDAppKit – http://www.binarymethod.com/bghudappkit/
- CHDataStructures – http://cocoaheads.byu.edu/code/CHDataStructures
- MGTwitterEngine – http://mattgemmell.com/source
- Sparkle – http://code.google.com/p/sparkleplus/
- Colloquy – http://colloquy.info/project/wiki/Source%20Code
- CocoaRest – http://github.com/sdegutis/CocoaREST
- CorePlot – http://code.google.com/p/core-plot/
我不认为有什么地方可以学习Objective-C的所有习惯用法和最佳实践,但是随着时间的推移和练习,你可以随时把它们拿起来。 cocoa邮件列表和博客是很好的资源。 (有几个SO相关的问题。)
我自己并没有深入到源代码中,但Omni框架在Mac社区中备受尊重。
我在自己的框架上工作,这些框架仍然很粗糙,但是除了可理解的,结构良好的代码外,我还努力追求高质量的文档。
Google快速search框 [ qsb-mac – Google Code ]
我认为Google快速search框(QSB)值得一看。 恕我直言,这几乎是一个更清洁的Quicksilver谷歌重写( 注: N. Jitkoff,QS程序员,也参与谷歌QSB)。
苹果在其开发者网站上有大量可下载的例子。 你可以看到源代码,许可证是从我记得的BSDish(使用它的任何东西,但不要没有许可证转发原始代码)。
这是我今天早些时候写的一个testing应用程序 。 下载右上方“获取源代码”下的链接。
它很小,但它展示了良好的组织规则(单独的控制器对象,而不是一切挤入到AppDelegate中),带有一个模型类(Header)的简单模型层以及正确使用Cocoa绑定。
我曾经在GNUstep资源上工作,他们有一个很好的一致的编码风格和代码组织良好。 当然,这个项目不算小,但是如果你知道你在Cocoa项目中使用了大部分的类,那么很容易放大你感兴趣的部分。 一些GNUstep应用程序项目或Étoilé应用程序也可能是一个很好的开始。
查看PSTreeGraph ,一个用于iPad应用程序的视图控件。
iMedia Browser支持10.4 – 10.7策略,整洁有针对性地组织和深度评论。 使用ImageKit的内在问题已经被大胆地接近和解决了。
我渴望这种与实际相混杂的思想水平。