iPadOS — het besturingssysteem van Apple voor de iPad, in 2019 afgesplitst van iOS. Ontwikkelen voor iPad houdt rekening met unieke mogelijkheden: multitasking met Split View en Stage Manager, Apple Pencil-invoer met lage latentie en desktop Safari.
Belangrijkste
iPadOS — het besturingssysteem van Apple voor de iPad, voor het eerst uitgebracht in 2019 als een afsplitsing van iOS (versie 13). Hiervoor gebruikte de iPad dezelfde iOS als de iPhone. De afsplitsing van iPadOS stelde Apple in staat om functies specifiek voor het grote scherm te implementeren: multitasking, desktop Safari, Drag & Drop en ondersteuning voor externe monitors.
iPadOS behoudt volledige compatibiliteit met iOS-apps: elke iPhone-app draait op de iPad in schaalmodus. Voor een kwalitatieve gebruikerservaring is echter aanpassing nodig: gebruik van Size Classes, UISplitViewController en ondersteuning voor toetsenbordsnelkoppelingen. Volgens Apple (WWDC 2025) brengen gebruikers 80% van de tijd op de iPad door in tabletversies, niet in geschaalde versies.
iPadOS 13 (2019) bracht Slide Over en Split View. iPadOS 14 (2020) voegde Apple Pencil Scribble en compacte UI toe. iPadOS 15 (2021) introduceerde Quick Note en verbeteringen aan multitasking. iPadOS 16 (2022) presenteerde Stage Manager en ondersteuning voor externe monitors. iPadOS 17 (2023) voegde interactieve widgets en Lock Screen-aanpassing toe.
| iPadOS-versie | Jaar | Belangrijkste innovatie |
|---|---|---|
| iPadOS 13 | 2019 | Slide Over, Split View, desktop Safari |
| iPadOS 14 | 2020 | Scribble voor Apple Pencil, compacte oproepen |
| iPadOS 15 | 2021 | Quick Note, verbeterde multitaskingmanager |
| iPadOS 16 | 2022 | Stage Manager, externe monitor 6K |
| iPadOS 17 | 2023 | Interactieve widgets, Lock Screen |
| iPadOS 18 | 2024 | Math Notes-rekenmachine, Smart Script |
iPadOS is gebaseerd op dezelfde XNU-kernel en Darwin als iOS, maar gebruikt een aangepaste UIKit-shell die is aangepast voor het werken met meerdere vensters en willekeurige schermformaten. Het belangrijkste architecturale verschil — ondersteuning voor UIScene, geïntroduceerd in iOS 13.
In iPadOS is elk venster (inclusief in Split View) een aparte UISceneSession met een eigen levenscyclus. In tegenstelling tot de iPhone, waar één app één UIWindowScene heeft, kan één app op de iPad meerdere UIScene hebben (meerdere vensters, Slide Over, Stage Manager). SceneDelegate beheert de status van elk venster onafhankelijk.
import UIKit
import SwiftUI
/// SceneDelegate voor ondersteuning van meerdere vensters op iPadOS
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
var splitVC: UISplitViewController?
func scene(_ scene: UIScene,
willConnectTo session: UISceneSession,
options connectionOptions: UIScene.ConnectionOptions) {
guard let windowScene = (scene as? UIWindowScene) else { return }
// UISplitViewController maken voor tablet-navigatie
let splitVC = UISplitViewController(style: .tripleColumn)
splitVC.primaryBackgroundStyle = .sidebar
let sidebar = SidebarViewController()
let primary = PrimaryViewController()
let detail = DetailViewController()
splitVC.viewControllers = [sidebar, primary, detail]
let window = UIWindow(windowScene: windowScene)
window.rootViewController = splitVC
window.makeKeyAndVisible()
self.window = window
}
// Aanpassing bij wijzigen van venstergrootte (Split View)
func windowScene(_ windowScene: UIWindowScene,
didUpdate previousCoordinateSpace: UICoordinateSpace,
interfaceOrientation previousOrientation: UIInterfaceOrientation) {
let isMultitasking = windowScene.traitCollection.horizontalSizeClass == .compact
print("iPadOS multitasking mode: \(isMultitasking ? "compact" : "regular")")
}
}UISplitViewController met de .tripleColumn-stijl toont drie kolommen tegelijk: sidebar (navigatie), primary (lijst) en detail (inhoud). Bij overgang naar compacte modus (Split View met een andere app) vouwt UIKit automatisch de kolommen in een navigatiestapel. De ontwikkelaar beheert dit gedrag niet handmatig — UIKit past de lay-out aan via traitCollection.
In iPadOS zijn beschikbaar: ondersteuning voor externe schijven via Files (USB-C/Thunderbolt), terminalmodus van Safari met elementinspectie, toetsenbordsnelkoppelingen via UIKeyCommand, systeemdownloadmanager, Drag & Drop tussen apps en Picture in Picture met aanpasbare venstergrootte.
Multitasking — de belangrijkste functie van iPadOS die het fundamenteel onderscheidt van iOS. De gebruiker kan tegelijkertijd met meerdere apps op één scherm werken. De ontwikkelaar moet garanderen dat de app correct werkt in elke multitasking-modus.
Split View verdeelt het iPad-scherm tussen twee apps in een verhouding van 50/50 of 33/67. Elke app krijgt een eigen UISceneSession met eigen geheugen en levenscyclus. Bij een schermbreedte van minder dan 600 punten schakelt UIKit de app geforceerd naar een compacte horizontale size class. De app moet deze wijziging correct verwerken.
Slide Over — een zwevend venster boven de actieve app (breedte 320 punten). De app in Slide Over schakelt over naar een compacte horizontale size class (.compact). Het is belangrijk om de UI te optimaliseren voor een smal scherm. In Slide Over kan de app worden opgeroepen door vanaf de rechterrand te vegen of via het dock. De gebruiker kan Slide Over naar Split View slepen of sluiten door naar rechts te vegen.
Stage Manager (iPadOS 16+, M1 en nieuwer) — een vensterbeheerder waarmee overlappende vensters van willekeurige grootte kunnen worden gemaakt. Ondersteunt tot 4 vensters op het iPad-scherm en tot 4 op een externe monitor (totaal 8). Apps ontvangen de UISceneWillConnectNotification-gebeurtenis voor elk nieuw venster. Stage Manager verandert de levenscyclusregels: een venster op de achtergrond wordt niet bevroren, maar blijft werken met beperkte bronnen.
| Modus | Aantal vensters | Venstergrootte | Size Class |
|---|---|---|---|
| Volledig scherm | 1 | 100% scherm | Regular |
| Split View 50/50 | 2 | 50% scherm | Regular (iPad Pro 12.9) of Compact |
| Split View 33/67 | 2 | 33% / 67% | Compact voor 33% |
| Slide Over | 1 + zwevend | 320 pt | Compact |
| Stage Manager | 1–4 | Willekeurig | Afhankelijk van grootte |
Apple Pencil — een actieve stylus van Apple met ondersteuning voor kantelen, druk en hover-detectie (iPad Pro M2+). De vertraging tussen de beweging van de pen en het tonen van inkt is 9–20 ms, afhankelijk van het model. PencilKit — het belangrijkste framework voor het integreren van tekenen in een app.
PKCanvasView biedt een kant-en-klaar tekenoppervlak met ondersteuning voor inkt, potlood, marker en gum. PKToolPicker — het paneel voor het selecteren van gereedschap. De ontwikkelaar hoeft geen rendering van lijnen te implementeren — PencilKit doet dit hardwarematig met Metal-shaders. Kleur, dikte en transparantie van de pen zijn instelbaar.
import PencilKit
import UIKit
class DrawingViewController: UIViewController {
private lazy var canvasView: PKCanvasView = {
let canvas = PKCanvasView()
canvas.tool = PKInkingTool(.pen, color: .black, width: 5)
canvas.delegate = self
canvas.drawingPolicy = .anyInput
canvas.backgroundColor = .white
return canvas
}()
private lazy var toolPicker: PKToolPicker = {
let picker = PKToolPicker()
picker.addObserver(canvasView)
picker.setVisible(true, forFirstResponder: canvasView)
return picker
}()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(canvasView)
canvasView.frame = view.bounds
canvasView.becomeFirstResponder()
toolPicker.addObserver(canvasView)
}
// Tekening opslaan in PKDrawing (binair formaat)
func saveDrawing() {
let drawingData = canvasView.drawing.dataRepresentation()
let url = FileManager.default.urls(
for: .documentDirectory, in: .userDomainMask
)[0].appendingPathComponent("drawing.drawing")
try? drawingData.write(to: url)
}
}
extension DrawingViewController: PKCanvasViewDelegate {
func canvasViewDrawingDidChange(_ canvasView: PKCanvasView) {
print("Canvas changed: \(canvasView.drawing.strokes.count) strokes")
}
}PKCanvasView met drawingPolicy .anyInput accepteert zowel Apple Pencil als vinger. PKToolPicker geeft de gebruiker de keuze uit gereedschappen zonder dat er een eigen UI geschreven hoeft te worden. PKDrawing wordt opgeslagen in binair formaat met een hoge compressiegraad — een uur tekenen neemt ongeveer 5–10 MB in beslag.
Scribble (iPadOS 14+) maakt handschriftinvoer mogelijk in elk UITextField en UITextView. Het systeem herkent handschrift op het apparaat met behulp van Neural Engine. Het ML-model werkt met Latijns en Cyrillisch schrift. In iOS 17+ ondersteunt Scribble automatische correctie en voorspelling van het volgende woord. De ontwikkelaar hoeft geen code toe te voegen — Scribble werkt automatisch bij een invoerveld.
Vanaf iPadOS 17.4 en Apple Pencil Pro ontvangen ontwikkelaars hover-gebeurtenissen wanneer de pen het scherm nadert (tot 12 mm). De gebeurtenis bevat positie, drukkracht en azimut. Toepassing: voorvertoning van het aanraakpunt van het penseel in tekenapps, tool preview, visuele feedback vóór aanraking.
Adaptieve interface — een verplichte vereiste voor iPad-apps. De iPad werkt in verschillende schermformaten (8.3″–13″) en multitasking-modussen. UIKit biedt Size Classes (horizontal: .regular/.compact, vertical: .regular/.compact) en UISplitViewController voor automatische aanpassing.
Size Classes — een abstractie die de beschikbare ruimte bepaalt. Op de iPad in volledig scherm zijn beide assen .regular. In Split View (50%) kan de horizontale klasse .compact worden op iPad mini of iPad Air. Alle populaire lay-outs gebouwd op Auto Layout en UICollectionViewCompositionalLayout passen zich automatisch aan. Aangepaste aanpassing wordt gedaan door het overschrijven van traitCollectionDidChange.
import SwiftUI
/// Adaptieve lay-out voor iPad met Size Classes
struct AdaptiveContentView: View {
@Environment(\.horizontalSizeClass) private var horizontalSizeClass
@Environment(\.verticalSizeClass) private var verticalSizeClass
var body: some View {
if horizontalSizeClass == .regular && verticalSizeClass == .regular {
// Tabletmodus: sidebar + content
NavigationSplitView {
SidebarView()
} detail: {
ContentGridView()
}
} else {
// Compacte modus: stack-navigatie
NavigationStack {
ContentGridView()
}
}
}
}
/// Voorbeeld van adaptief raster: 3 kolommen op iPad, 2 op iPhone
struct ContentGridView: View {
@Environment(\.horizontalSizeClass) private var horizontalSizeClass
private var columns: [GridItem] {
let count = horizontalSizeClass == .regular ? 3 : 2
return Array(repeating: GridItem(.flexible(), spacing: 16), count: count)
}
var body: some View {
ScrollView {
LazyVGrid(columns: columns, spacing: 16) {
ForEach(items) { item in
ItemCard(item: item)
}
}
.padding()
}
}
}In het voorbeeld wordt NavigationSplitView alleen gebruikt wanneer horizontalSizeClass == .regular (iPad volledig scherm). NavigationStack wordt toegepast in compacte modus. Het aantal kolommen in het raster (3 vs 2) verandert ook afhankelijk van Size Classes. Alles wordt automatisch bijgewerkt bij het wijzigen van de multitasking-modus.
UIKit biedt UISplitViewController met drie stijlen: .doubleColumn (sidebar + detail), .tripleColumn (sidebar + primary + detail) en .single. In iPadOS 16+ schakelt splitViewController automatisch tussen stijlen bij wijziging van size class. De ontwikkelaar stelt viewControllers in voor elke kolom, UIKit beheert de zichtbaarheid.
iPadOS SDK bevat alle iOS-frameworks en ook API's die alleen op de iPad beschikbaar zijn. Hieronder worden de belangrijkste iPad-specifieke mogelijkheden beschreven.
iPadOS ondersteunt Drag & Drop tussen apps en binnen een app. UIDragInteraction en UIDropInteraction maken het slepen van tekst, afbeeldingen, bestanden en aangepaste objecten mogelijk. Drag & Drop werkt gelijktijdig met Multi-Touch: de gebruiker kan meerdere elementen met verschillende vingers slepen. In SwiftUI worden de modifiers .onDrag en .onDrop gebruikt.
Bij aansluiten van een toetsenbord (Magic Keyboard, Smart Keyboard) maakt UIKeyCommand het mogelijk om snelkoppelingen toe te voegen. In iPadOS 17+ worden toetsenbordsnelkoppelingen weergegeven bij lang indrukken van Cmd. Apple raadt aan om standaardcombinaties te ondersteunen: ⌘C (kopiëren), ⌘V (plakken), ⌘F (zoeken), ⌘N (nieuw document).
iPadOS 17+ ondersteunt externe monitors met native resolutie tot 6K (Pro Display XDR). Een app kan inhoud weergeven op het externe scherm via UIWindowScene met een aparte sessie-ID. Stage Manager maakt het mogelijk om tot 4 vensters met aanpasbare grootte op de externe monitor te plaatsen.
| API | Doel | Beschikbaar in iOS |
|---|---|---|
| UISplitViewController | Navigatie met meerdere kolommen | Ja |
| PencilKit | Apple Pencil tekenen | Nee |
| UIDragInteraction | Drag & Drop | Ja (alleen in app) |
| UIKeyCommand | Toetsenbordsnelkoppelingen | Ja (alleen met extern toetsenbord) |
| UIScene | Multi-venster modus | Ja (alleen iPad) |
| UIPencilInteraction | Dubbeltik Apple Pencil | Nee |
| PDFKit | PDF bekijken en annoteren | Ja |
Ontwikkelen voor iPadOS vereist een speciale benadering van UI/UX, prestaties en testen. Fouten die op de iPhone vergeeflijk zijn, worden op de iPad kritiek vanwege het grotere scherm en multitasking.
De iPad gebruikt M-serie chips (M1, M2, M4) met uniform geheugen tot 16 GB. Ondanks krachtige hardware deelt de app in Split View of Slide Over bronnen met een andere app. Geheugendruk is hoger dan op de iPhone. Gebruik beeldcompressie, lazy loading van collecties en profilering via Instruments Allocations. iPad Pro M4 met 16 GB maakt het mogelijk om apps op desktoppniveau uit te voeren (Final Cut Pro, Logic Pro).
De meeste iPad-gebruikers gebruiken een extern toetsenbord. De interface moet volledig vanaf het toetsenbord bedienbaar zijn: Tab voor navigatie tussen velden, Space voor het activeren van het geselecteerde element, Enter voor bevestiging. Voeg ondersteuning toe voor Full Keyboard Access — de systeeminstelling waarmee elk UI-element vanaf het toetsenbord kan worden bediend.
De iPad-simulator reproduceert het multitasking-gedrag niet volledig. Test op een echt apparaat in verschillende modi: Split View met een zware app (Safari met 20 tabbladen), Stage Manager met 4 vensters, Slide Over met snel wisselen van apps. Controleer het scenario: de gebruiker opent de app vanuit Slide Over, sleept deze naar Split View, wijzigt de grootte, sluit — de app mag niet crashen.
// Controleren van huidige multitasking-modus op iPadOS
- (void)checkMultitaskingMode:(UIWindowScene *)scene {
if (scene.traitCollection.userInterfaceIdiom != UIUserInterfaceIdiomPad) {
return;
}
BOOL isFullScreen = (scene.traitCollection.horizontalSizeClass == UIUserInterfaceSizeClassRegular &&
scene.traitCollection.verticalSizeClass == UIUserInterfaceSizeClassRegular);
BOOL isSlideOver = (CGRectGetWidth(scene.coordinateSpace.bounds) == 320.0);
if (scene.windows.first?.windowScene?.activationConditions.canBecomeFocused == YES) {
NSLog(@"Stage Manager actief");
}
if (isSlideOver) {
NSLog(@"Slide Over modus");
} else if (isFullScreen) {
NSLog(@"Volledig scherm modus");
} else {
NSLog(@"Split View modus");
}
}Veelgestelde vragen
iPadOS heeft uitgebreide multitasking (Split View, Slide Over, Stage Manager), ondersteuning voor Apple Pencil met hover-detectie, desktop Safari met downloadmanager, externe monitors met native resolutie en het bestandssysteem Files met toegang tot externe schijven via USB-C.
Split View wordt automatisch ondersteund als de app UISplitViewController gebruikt. De app moet wijzigingen in size class correct verwerken: bij overgang naar compacte modus UINavigationController gebruiken voor de schermstapel. Voor het expliciet weigeren van Split View stelt u UIRequiresFullScreen = YES in in Info.plist.
Gebruik PencilKit: PKCanvasView voor het tekenoppervlak en PKToolPicker voor het selecteren van gereedschap. Voor aangepaste verwerking van pen-aanrakingen — UIEvent met type .hover en UIPencilInteraction voor dubbeltikken. Latentie Apple Pencil Pro — 9 ms, vorige generatie — 20 ms.
iPad mini 8,3″ (2266×1488), iPad Air 10,9″ (2360×1640), iPad Pro 11″ (2388×1668), iPad Pro 13″ M4 (2752×2064). Gebruik Size Classes en Auto Layout voor aanpassing. Externe monitors tot 6K via Thunderbolt. Stage Manager ondersteunt tot 8 vensters (4 op iPad + 4 op externe monitor).
iPadOS 17+ ondersteunt externe monitors via USB-C/Thunderbolt met native resolutie tot 6K. De app kan inhoud weergeven op de externe monitor via een aparte UIWindowScene met een eigen levenscyclus. Stage Manager ondersteunt tot 4 vensters op de externe monitor.
Samenvatting
We ontwikkelen een mobiele applicatie turnkey
IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.
Lees ook