25/09/2022
AppKit er et fundamentalt framework inden for Apples økosystem, primært kendt for sin rolle i udviklingen af applikationer til macOS. Selvom navnet AppKit ofte associeres med desktop-oplevelsen, har dets principper og arkitektur haft en betydelig indflydelse på, hvordan Apple har tilgået udviklingen af mobile applikationer, især med introduktionen af UIKit til iOS. Denne artikel dykker ned i AppKits historie, dets kernekomponenter, og hvordan dets arv lever videre i den mobile verden.

Hvad er AppKit?
AppKit er et C-baseret API, der leveres af Apple som en del af macOS. Det er designet til at give udviklere de værktøjer og komponenter, der er nødvendige for at opbygge moderne, grafiske brugergrænseflader (GUI) til Mac-computere. Kernen i AppKit er Cocoa, et samling af objektorienterede API'er og rammer, der også inkluderer Foundation og andre hjælpe-frameworks. AppKit er ansvarlig for at håndtere begivenheder, tegne brugergrænseflader, administrere vinduer og dialogbokse, og generelt facilitere interaktionen mellem brugeren og operativsystemet på macOS.
Historien bag AppKit
AppKit har rødder, der går tilbage til NeXTSTEP, det operativsystem, der blev udviklet af NeXT, et firma grundlagt af Steve Jobs efter hans afgang fra Apple i 1985. NeXTSTEP var banebrydende inden for objektorienteret programmering og GUI-design. Da Steve Jobs vendte tilbage til Apple i slutningen af 1990'erne, blev NeXTSTEP licenseret og dannet grundlaget for den moderne macOS og senere iOS. AppKit, som vi kender det i dag, er en direkte videreudvikling af NeXTSTEPs "AppKit"-rammeværk, der blev tilpasset og udvidet til at fungere på Mac OS X (nu macOS).
Kernekomponenter i AppKit
AppKit tilbyder en rig samling af klasser og objekter, der danner byggestenene for enhver macOS-applikation. Nogle af de mest centrale komponenter inkluderer:
- NSApplication: Hovedklassen, der styrer applikationens livscyklus og håndterer begivenheder.
- NSWindow: Repræsenterer et vindue i applikationen.
- NSView: Grundlaget for alle GUI-elementer på skærmen, såsom knapper, tekstfelter og billeder. Views er organiseret i en hierarkisk struktur.
- UIViewController (i en bredere forstand, selvom det er mere specifikt for UIKit): Konceptet med at administrere views og deres interaktioner er centralt. I AppKit håndteres dette ofte af NSViewController eller direkte af views.
- Event Handling: AppKit har et sofistikeret system til at håndtere brugerinput som museklik, tastaturtryk og gestus.
- Responder Chain: Et system, der bestemmer, hvilket objekt der skal modtage og håndtere en given begivenhed.
AppKit og dets indflydelse på mobiludvikling
Selvom AppKit er specifikt for macOS, er dets designfilosofi og arkitektoniske mønstre dybt indlejret i Apples mobile udviklingsframework, UIKit. Da Apple besluttede sig for at udvikle et mobilt operativsystem, iOS, hentede de inspiration fra deres erfaringer med macOS og Cocoa. UIKit deler mange af de samme grundlæggende koncepter som AppKit:
- Objektorienteret Design: Begge frameworks er bygget omkring objektorienterede principper.
- Model-View-Controller (MVC): MVC-arkitekturmønsteret er centralt i både AppKit og UIKit, hvilket hjælper med at organisere kode og adskille data (Model), præsentation (View) og logik (Controller).
- Event-driven Programming: Begge frameworks er event-drevne, hvor applikationen reagerer på brugerinput og systembegivenheder.
- View Hierarchier: Ligesom NSView i AppKit bruger UIKit UIView til at opbygge brugergrænsefladen i et hierarkisk system.
Forskellene ligger primært i de specifikke komponenter og den brugeroplevelse, de er designet til. UIKit er optimeret til touch-interaktion, mindre skærme og den mobile kontekst, mens AppKit er designet til mus, tastatur og større skærme på desktops og laptops.
Sammenligning: AppKit vs. UIKit
For at illustrere forskellene og lighederne kan vi se på en simpel sammenligning:
| Feature | AppKit (macOS) | UIKit (iOS/iPadOS) |
|---|---|---|
| Primært OS | macOS | iOS, iPadOS |
| Grundlæggende UI-element | NSView | UIView |
| Applikationsstyring | NSApplication | UIApplication |
| Vindueshåndtering | NSWindow | Ingen direkte vinduer i samme forstand; bruger view controllers til skærmstyring. |
| Inputmetode | Mus, tastatur, trackpad | Touch, tastatur (tilbehør) |
| Designfilosofi | Desktop-centreret, multitasking med flere vinduer | Mobil-centreret, enkelt app-fokus, touch-interaktion |
Moderne Udvikling og SwiftUI
Med introduktionen af SwiftUI har Apple skabt et nyt, deklarativt framework, der sigter mod at forene udviklingen på tværs af alle Apples platforme – inklusive macOS, iOS, watchOS og tvOS. SwiftUI bygger på mange af de principper, der oprindeligt blev etableret med AppKit og UIKit, men tilbyder en mere moderne og fleksibel tilgang. Selvom SwiftUI er den nye retning, forbliver AppKit og UIKit essentielle for eksisterende applikationer og for udviklere, der foretrækker de mere traditionelle, imperative metoder.
Ofte Stillede Spørgsmål om AppKit
Er AppKit kun for Mac?
Ja, AppKit er specifikt designet til at bygge applikationer til macOS. For iOS og andre mobile platforme bruger Apple UIKit (og senest SwiftUI).
Kan jeg bruge AppKit til at bygge iOS-apps?
Nej, du kan ikke direkte bruge AppKit til at bygge iOS-apps. Du skal bruge UIKit eller SwiftUI.
Hvad er forskellen på Cocoa og AppKit?
Cocoa er et bredere rammeværk, der inkluderer AppKit, Foundation og andre API'er. AppKit er den specifikke del af Cocoa, der fokuserer på GUI-elementer og brugergrænseflade til macOS.
Er AppKit stadig relevant?
Ja, AppKit er absolut stadig relevant. Mange store og komplekse macOS-applikationer er bygget med AppKit, og det er stadig et kraftfuldt og velunderstøttet framework for Mac-udvikling.
Konklusion
AppKit repræsenterer en æra af innovation inden for desktop-applikationsudvikling. Dets arv lever videre i UIKit, som muliggjorde den revolutionerende oplevelse på iPhone og iPad. Mens SwiftUI markerer en ny fase, forbliver forståelsen af AppKit afgørende for at forstå Apples udviklingsøkosystem og den arkitektur, der har formet moderne softwareudvikling på tværs af alle platforme.
Hvis du vil læse andre artikler, der ligner AppKit: Broen mellem macOS og iOS, kan du besøge kategorien Teknologi.
