AppKit (formalmente Application Kit ) [1] es un conjunto de herramientas de interfaz gráfica de usuario . Inicialmente sirvió como marco de interfaz de usuario para NeXTSTEP . [2] Junto con Foundation y Display PostScript , se convirtió en una de las partes centrales de la especificación OpenStep de API. Más tarde, AppKit y Foundation pasaron a formar parte de Cocoa , el marco API Objective-C de macOS . GNUstep , la implementación de GNU de la API OpenStep/Cocoa, también contiene una implementación de la API AppKit.
AppKit comprende una colección de clases y protocolos de Objective-C que se pueden utilizar para crear una aplicación en OpenStep/Cocoa. Estas clases también se pueden utilizar en Swift a través de su puente Objective-C. Xcode tiene una funcionalidad incorporada para desarrollar una aplicación Cocoa usando AppKit, incluida la capacidad de diseñar visualmente interfaces de usuario con Interface Builder . Se basa en gran medida en patrones como tipos de referencia , delegación , notificaciones , acción-objetivo y controlador-vista-modelo . Una señal de la herencia de NeXTSTEP, las clases y protocolos de AppKit todavía usan el prefijo "NS".
La mayoría de las aplicaciones incluidas con macOS (por ejemplo, Finder , TextEdit , Calendar y Preview ) utilizan AppKit para proporcionar su interfaz de usuario.
macOS , iOS , iPadOS y tvOS también admiten otros marcos de UI, incluido UIKit , que se deriva de AppKit y utiliza muchas estructuras similares, y SwiftUI , un marco de UI declarativo exclusivo de Swift .
Antes de macOS Catalina , macOS también admitía Carbon , un marco de interfaz de usuario derivado de Macintosh Toolbox .
De las más de 170 clases incluidas en el kit de solicitud, las siguientes clases forman el núcleo: [3]
NSApplication
: un objeto singleton que representa la aplicación como un todo y realiza un seguimiento de sus ventanas y otros estados globalesNSWindow
: un objeto que representa una ventana en la pantalla, contiene una jerarquía de vistasNSView
: un objeto que representa una región rectangular; puede dibujar su propio contenido de interfaz de usuario (usando motores de dibujo como Quartz , Core Animation y Metal ) y también puede contener un subárbol de otras vistas.NSResponder
: un objeto que puede responder a eventos durante la vida de la aplicación; NSApplication
, NSWindow
y NSView
son todas subclases deNSResponder
NSDocument
: un objeto que representa un documento guardado en el disco que gestiona su visualización en una ventanaNSController
: una clase abstracta que implementa alguna funcionalidad para un controlador , mediando entre vistas y objetos del modelo