5 ms·
This argument seems strange to me. UIKit was written, from the ground up, by people who either worked on AppKit or worked with AppKit, with full access to the
by kenferry 16y ago
This argument seems strange to me.
UIKit was written, from the ground up, by people who either worked on AppKit or worked with AppKit, with full access to the AppKit source base. They share almost all design patterns, and some source code. UIKit is clearly based on AppKit.
Pervasive use of layers is indeed a difference. That's hardly the only thing interesting about either framework, though.
- joshaber 16y agoCompare NSView vs. UIView. Or NSViewController vs. UIViewController. Or NSTableView vs. UITableView. NSButton vs. UIButton. Same names but very different design patterns and APIs. I've worked on many iOS and Mac apps. I'm honestly not sure how anyone can claim AppKit and UIKit are essentially the same.
- kenferry 16y agoWhat would you consider the essential Cocoa design patterns? I would point at the items listed at http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/CocoaFundamentals/CommunicatingWithObjects/CommunicateWithObjects.html http://developer.apple.com/library/ios/#documentation/Cocoa/... . Delegation, notification, target action, the responder chain - these are all shared. The frameworks are not identical, but to say they're not related… they only look wildly different if you're focusing in incredibly closely. If you consider .Net, or Java, or Rails, or GTK, or almost anything else, the differences between AppKit and UIKit are miniscule.
- ajg1977 16y agoNobody is saying that that they're not related. They clearly are (although the presence of other UI libraries does not affect any comparison of that relationship at all. Your examples of delegates, responders, targets etc are concepts - and indeed UIKit and AppKit are both built around the same concepts. The implementations of both is quite different however, to the point that porting something of complexity from UIKit to AppKit involves a lot of tedious changes - or worse: creation of abstraction layers if the codebase is to be maintained for both apps.
- deleted 16y ago[deleted]