Mac中的系统架构设计

国内很少有人从事Mac App开发,这方面资料也少之又少。由于近期的一些开发工作设计到一些Mac App内容。不得不阅读Mac App开发相关文档。实时上最好的文档不在那些所谓的畅销书中。你只需要访问developer.apple.com即可获取全世界最好的Mac App开发文档。

标题有点大,但不妨碍阅读。想要开发Mac App,需要先了解整个Mac系统架构。Mac系统和它的架构设计非常有意思。所有的系统基于unix系统,这句话有点不太准确。但可以理解为Mac OS是世界上最好的FreeBSD变种,同时也是世界上最好的系统,没有之一。

Mac OS 系统一共分为5层,每一层对应不同的framework,你在开发Mac App时,应该选择对应的framework。同时应尽量选择上层的framework。上层的framework提供了米娜想对象的抽象。这样可以减少你的代码,使你快速开发你的引用。

系统架构如下图

frameworks_layer.png

对于上图,我想我永远不可能使用到Kernel层和Core OS层。这些内容偏向底层,在上层应用中很少用到,除非我想搞垮我的Mac。

所有的应用程序都会使用到Foundation.framework,这是调用整个系统能力的基础。这个框架中为我们封装了最基础的Object。在swift中,这个框架也是默认链接的。而我要面对的则是Cocoa中的AppKit.framework。这个库是建立Cocoa应用程序的核心。

你所看到的大部分基于Mac OS的应用程序都基于这两个库。当然,如果需要使用到一些动画特效或者图像音频操作的话,你可能会涉及到Media中的内容。

Mac中所提供的framework大量使用了设计模式,这些模式贯穿整个框架涉及。你得了解所有模式的设计思路和正确的使用方法,才能做出对的编码。这也是让Mac App开发门槛提升了不少。看到这里,开始怀念C中的美好,简单,高效。

所以,尝试Mac App开发,你要了解学习熟悉三个内容

1、Objective-C 或者 swift,C要必会 2、了解Unix,这有助于你了解整个Mac OS的运作机理 3、熟悉framework,你不仅仅要清楚这些Class和Protocol的内容,更重要的是清楚的明白其中涉及到的涉及模式。

关于心得总结,先记录到这里,这是条坎坷路。