How Apple people have implemented features in Cocoa framework

Yes. the way Apple migrate newly implemented feature between Mac OS X and iOS is different now.

Originally, if implementing on Cocoa framework was like this :

  1. popular messages used in AppKit/Foundation are implemented on Core * level including Core Foundation. So, people who cares performance can directly call Core Video, Core Text, etc and Core Foundation functions. AppKit and higher object oriented approach was implemented using the newly implemented C based Core * functions.
  2. When new features are implemented with certain performance target, they were implemented on Core * level and for immediately imaginable popular features they implemented AppKit level of interface(class) on top of the Core * functions. Then in following update of the OS or version of the OS, they introduce more features introduced in Core * level to its corresponding Obj-C class

However, nowadays, the pattern looks to be broken.
One of the examples is  the timer source in the GCD space. Some of the dispatch source behavior can be also implemented on NSFileHandle class and any other interfaces starting with NS, i.e. in AppKit. However, it doesn’t look to me that they don’t so far. GCD was introduced in Snow Leopard ( if my memory is still good. ) Then, although it would not be possible to introduce corresponding features in AppKit, by now they should have done. 

It looks to me that they are just busy in migrating new features introduced in iOS to Mac OS X in Core * or other  underlying frameworks only.

Although it may not confuse new iOS developers since the introduction of iOS, to us, who are long time developers on Mac OS X, it feels a little odd and feels like things are not being done as completely as Apple people did it a while ago.

If Apple is not going to give up OS X and still do care of sound framework design, they should hire more developers in framework team and should invest their time to train the new developers to speed up framework development at Apple, I think.


Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: