Today, AppKit is a topic that arouses great interest in society. With the advancement of technology and globalization, AppKit has become a fundamental element in people's lives. Its impact ranges from the economy, politics, culture, to the daily life of each individual. In this article we will explore the various facets of AppKit and how it has changed over time. From its origins to its relevance in today's world, AppKit is a topic that will continue to generate debate and controversy in the near future.
This article needs additional citations for verification. (March 2024) |
AppKit (formally Application Kit)[1] is a graphical user interface toolkit. It initially served as the UI framework for NeXTSTEP.[2] Along with Foundation and Display PostScript, it became one of the core parts of the OpenStep specification of APIs. Later, AppKit and Foundation became part of Cocoa, the Objective-C API framework of macOS. GNUstep, GNU's implementation of the OpenStep/Cocoa API, also contains an implementation of the AppKit API.
AppKit comprises a collection of Objective-C classes and protocols that can be used to build an application in OpenStep/Cocoa. These classes can also be used in Swift through its Objective-C bridge. Xcode has built-in functionality for developing a Cocoa application using AppKit, including the ability to visually design user interfaces with Interface Builder. It relies heavily on patterns like reference types, delegation, notifications, target–action, and model–view–controller. A sign of the NeXTSTEP heritage, AppKit's classes and protocols still use the "NS" prefix.
Most of the applications bundled with macOS—for example, the Finder, TextEdit, Calendar, and Preview—use AppKit to provide their user interface.
macOS, iOS, iPadOS, and tvOS also support other UI frameworks, including UIKit, which is derived from AppKit and uses many similar structures, and SwiftUI, a Swift-only declarative UI framework.
Prior to macOS Catalina, macOS also supported Carbon, a UI framework derived from the Macintosh Toolbox.
Of the more than 170 classes included in the Application Kit, the following classes form the core:[3]
NSApplication
: a singleton object that represents the application as a whole and tracks its windows and other global stateNSWindow
: an object representing a window on screen, it holds a hierarchy of viewsNSView
: an object representing a rectangular region; it may draw UI content of its own (using drawing engines like Quartz, Core Animation, and Metal), and it may also hold a subtree of other viewsNSResponder
: an object that can respond to events during the application's lifetime; NSApplication
, NSWindow
, and NSView
are all subclasses of NSResponder
NSDocument
: an object representing a document saved on disk that manages its display in a windowNSController
: an abstract class implementing some functionality for a controller, mediating between views and model objects