iPadOS — az Apple operációs rendszere iPadhez, amelyet 2019-ben választottak le az iOS-ről. Az iPadre történő fejlesztés figyelembe veszi az egyedi lehetőségeket: a Split View és Stage Manager többfeladatos módot, az Apple Pencil alacsony késleltetésű bevitelt és az asztali Safarit.
Főbb pontok
iPadOS — az Apple operációs rendszere iPadhez, amelyet először 2019-ben adtak ki az iOS (13-as verzió) ágaként. Ezelőtt az iPad ugyanazt az iOS-t használta, mint az iPhone. Az iPadOS leválasztása lehetővé tette az Apple számára, hogy nagyképernyő-specifikus funkciókat valósítson meg: multitasking, asztali Safari, Drag & Drop és külső monitorok támogatása.
Az iPadOS megtartja a teljes kompatibilitást az iOS-alkalmazásokkal: bármely iPhone-alkalmazás fut iPad-en méretezési módban. A minőségi felhasználói élményhez azonban adaptáció szükséges: Size Classes, UISplitViewController használata és billentyűzetparancsok támogatása. Az Apple adatai szerint (WWDC 2025) az iPad-en töltött idő 80%-át a felhasználók táblagépes verziókban töltik, nem a méretezett verziókban.
Az iPadOS 13 (2019) elhozta a Slide Over és Split View funkciókat. Az iPadOS 14 (2020) hozzáadta az Apple Pencil Scribble-t és a kompakt UI-t. Az iPadOS 15 (2021) bevezette a Quick Note-ot és a multitasking fejlesztéseit. Az iPadOS 16 (2022) bemutatta a Stage Managert és a külső monitorok támogatását. Az iPadOS 17 (2023) interaktív widgeteket és Lock Screen testreszabást adott hozzá.
| iPadOS verzió | Év | Kulcs innováció |
|---|---|---|
| iPadOS 13 | 2019 | Slide Over, Split View, asztali Safari |
| iPadOS 14 | 2020 | Scribble Apple Pencilhez, kompakt hívások |
| iPadOS 15 | 2021 | Quick Note, továbbfejlesztett multitasking menedzser |
| iPadOS 16 | 2022 | Stage Manager, 6K külső monitor |
| iPadOS 17 | 2023 | Interaktív widgetek, Lock Screen |
| iPadOS 18 | 2024 | Math Notes számológép, Smart Script |
Az iPadOS ugyanazon az XNU kernelen és Darwinon alapul, mint az iOS, de egy módosított UIKit héjat használ, amely több ablakkal és tetszőleges képernyőméretekkel való munkára van adaptálva. A kulcs architekturális különbség — az UIScene támogatása, amelyet az iOS 13-ban vezettek be.
Az iPadOS-ben minden ablak (beleértve a Split View-t is) egy külön UISceneSession saját életciklussal. Ellentétben az iPhone-nal, ahol egy alkalmazásnak egy UIWindowScene-je van, az iPad-en egy alkalmazásnak több UIScene-je lehet (több ablak, Slide Over, Stage Manager). A SceneDelegate minden ablak állapotát függetlenül kezeli.
import UIKit
import SwiftUI
/// SceneDelegate több ablak támogatásához iPadOS-en
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 létrehozása tablet navigációhoz
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
}
// Adaptáció ablakméret változásakor (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")")
}
}Az UISplitViewController .tripleColumn stílussal egyszerre három oszlopot jelenít meg: sidebar (navigáció), primary (lista) és detail (tartalom). Kompakt módba váltáskor (Split View másik alkalmazással) az UIKit automatikusan összecsukja az oszlopokat egy navigációs verembe. A fejlesztő nem kezeli ezt a viselkedést manuálisan — az UIKit a traitCollection-en keresztül adaptálja az elrendezést.
Az iPadOS-ben elérhető: külső meghajtók támogatása a Files-on keresztül (USB-C/Thunderbolt), Safari terminál mód elemellenőrzéssel, billentyűzetparancsok UIKeyCommand-on keresztül, rendszer letöltéskezelő, Drag & Drop alkalmazások között és Picture in Picture változtatható ablakmérettel.
Multitasking — az iPadOS kulcsfontosságú jellemzője, amely alapvetően megkülönbözteti az iOS-től. A felhasználó egyszerre több alkalmazással dolgozhat egy képernyőn. A fejlesztőnek garantálnia kell, hogy az alkalmazás minden multitasking módban helyesen működjön.
A Split View két alkalmazás között osztja meg az iPad képernyőjét 50/50 vagy 33/67 arányban. Minden alkalmazás saját UISceneSession-t kap saját memóriával és életciklussal. 600 pontnál kisebb képernyőszélességnél az UIKit kényszerítetten kompakt horizontális size class-ba kapcsolja az alkalmazást. Az alkalmazásnak helyesen kell kezelnie ezt a változást.
Slide Over — lebegő ablak az aktív alkalmazás felett (320 pont szélesség). A Slide Over-ben lévő alkalmazás kompakt horizontális size class-ba (.compact) kapcsol. Fontos optimalizálni a UI-t keskeny képernyőhöz. A Slide Over-ben az alkalmazás a jobb szélről húzással vagy a dokkon keresztül hívható elő. A felhasználó áthúzhatja a Slide Over-t Split View-ba, vagy jobbra húzással bezárhatja.
Stage Manager (iPadOS 16+, M1 és újabb) — egy ablakkezelő, amely lehetővé teszi tetszőleges méretű átfedő ablakok létrehozását. Akár 4 ablakot támogat az iPad képernyőjén és akár 4-et a külső monitoron (összesen 8). Az alkalmazások UISceneWillConnectNotification eseményt kapnak minden új ablakhoz. A Stage Manager megváltoztatja az életciklus szabályokat: a háttérben lévő ablak nem fagy le, hanem korlátozott erőforrásokkal folytatja a működést.
| Mód | Ablakok száma | Ablak mérete | Size Class |
|---|---|---|---|
| Teljes képernyő | 1 | 100% képernyő | Regular |
| Split View 50/50 | 2 | 50% képernyő | Regular (iPad Pro 12.9) vagy Compact |
| Split View 33/67 | 2 | 33% / 67% | Compact a 33%-hoz |
| Slide Over | 1 + lebegő | 320 pt | Compact |
| Stage Manager | 1–4 | Tetszőleges | Mérettől függ |
Apple Pencil — az Apple aktív tollja döntés, nyomás és hover érzékelés támogatásával (iPad Pro M2+). A toll mozgása és a tinta megjelenítése közötti késés 9–20 ms modelltől függően. A PencilKit — a fő framework a rajzolás alkalmazásba integrálásához.
PKCanvasView kész rajzfelületet biztosít tinta, ceruza, marker és radír támogatásával. PKToolPicker — az eszközválasztó panel. A fejlesztőnek nem kell megvalósítania a vonások renderelését — a PencilKit ezt hardveresen végzi Metal shaderekkel. A toll színének, vastagságának és átlátszóságának beállítása elérhető.
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)
}
// Rajz mentése PKDrawing-ban (bináris formátum)
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 drawingPolicy .anyInput értékkel elfogadja mind az Apple Pencil-t, mind az ujjat. A PKToolPicker lehetővé teszi a felhasználó számára az eszközök kiválasztását anélkül, hogy saját UI-t kellene írni. A PKDrawing bináris formátumban tárolódik magas tömörítési fokkal — egy óra rajzolás körülbelül 5–10 MB-ot foglal.
A Scribble (iPadOS 14+) lehetővé teszi a kézírásos bevitelt bármely UITextField és UITextView mezőben. A rendszer a Neural Engine segítségével ismeri fel a kézírást az eszközön. Az ML modell latin és cirill írással működik. Az iOS 17+-ban a Scribble támogatja az automatikus javítást és a következő szó előrejelzését. A fejlesztőnek nem kell kódot hozzáadnia — a Scribble automatikusan működik beviteli mező jelenlétében.
Az iPadOS 17.4 és Apple Pencil Pro óta a fejlesztők hover eseményeket kapnak, amikor a toll megközelíti a képernyőt (akár 12 mm-ig). Az esemény tartalmazza a pozíciót, a nyomás erősségét és azimutot. Alkalmazás: az ecset érintési pontjának előnézete rajzoló alkalmazásokban, eszköz előnézet, vizuális visszajelzés érintés előtt.
Adaptív felület — kötelező követelmény az iPad alkalmazások számára. Az iPad különböző képernyőméreteken (8.3″–13″) és multitasking módokban működik. Az UIKit Size Classes (horizontal: .regular/.compact, vertical: .regular/.compact) és UISplitViewController biztosít az automatikus adaptációhoz.
Size Classes — egy absztrakció, amely meghatározza a rendelkezésre álló teret. Az iPad-en teljes képernyős módban mindkét tengely .regular. Split View-ban (50%) a horizontális osztály .compact lehet iPad mini vagy iPad Air esetén. Az Auto Layout és UICollectionViewCompositionalLayout alapú népszerű elrendezések automatikusan adaptálódnak. Az egyedi adaptáció a traitCollectionDidChange felülírásával történik.
import SwiftUI
/// Adaptív elrendezés iPad-hez Size Classes használatával
struct AdaptiveContentView: View {
@Environment(\.horizontalSizeClass) private var horizontalSizeClass
@Environment(\.verticalSizeClass) private var verticalSizeClass
var body: some View {
if horizontalSizeClass == .regular && verticalSizeClass == .regular {
// Tablet mód: sidebar + content
NavigationSplitView {
SidebarView()
} detail: {
ContentGridView()
}
} else {
// Kompakt mód: verem navigáció
NavigationStack {
ContentGridView()
}
}
}
}
/// Példa adaptív rácsra: 3 oszlop iPad-en, 2 iPhone-on
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()
}
}
}A példában a NavigationSplitView csak akkor használatos, ha horizontalSizeClass == .regular (iPad teljes képernyő). A NavigationStack kompakt módban alkalmazandó. A rács oszlopainak száma (3 vs 2) szintén a Size Classes-tól függően változik. Minden automatikusan frissül a multitasking mód változásakor.
Az UIKit három stílusú UISplitViewController-t biztosít: .doubleColumn (sidebar + detail), .tripleColumn (sidebar + primary + detail) és .single. Az iPadOS 16+-ban a splitViewController automatikusan vált a stílusok között a size class változásakor. A fejlesztő beállítja a viewControllers-t minden oszlophoz, az UIKit kezeli a láthatóságot.
Az iPadOS SDK tartalmazza az összes iOS frameworköt, valamint azokat az API-kat, amelyek csak iPad-en érhetők el. Az alábbiakban a legfontosabb iPad-specifikus képességek találhatók.
Az iPadOS támogatja a Drag & Drop-ot alkalmazások között és alkalmazáson belül. A UIDragInteraction és UIDropInteraction lehetővé teszik szöveg, képek, fájlok és egyedi objektumok húzását. A Drag & Drop egyidejűleg működik a Multi-Touch-sal: a felhasználó több elemet is húzhat különböző ujjakkal. A SwiftUI-ben a .onDrag és .onDrop módosítók használatosak.
Billentyűzet csatlakoztatásakor (Magic Keyboard, Smart Keyboard) a UIKeyCommand lehetővé teszi parancsikonok hozzáadását. Az iPadOS 17+-ban a billentyűzetparancsok a Cmd hosszú lenyomásakor jelennek meg. Az Apple a szabványos kombinációk támogatását javasolja: ⌘C (másolás), ⌘V (beillesztés), ⌘F (keresés), ⌘N (új dokumentum).
Az iPadOS 17+ támogatja a külső monitorokat natív felbontással akár 6K-ig (Pro Display XDR). Az alkalmazás tartalmat jeleníthet meg a külső képernyőn UIWindowScene-en keresztül külön munkamenet-azonosítóval. A Stage Manager lehetővé teszi akár 4 változtatható méretű ablak elhelyezését a külső monitoron.
| API | Cél | Elérhető iOS-ben |
|---|---|---|
| UISplitViewController | Többoszlopos navigáció | Igen |
| PencilKit | Apple Pencil rajzolás | Nem |
| UIDragInteraction | Drag & Drop | Igen (csak alkalmazáson belül) |
| UIKeyCommand | Billentyűzetparancsok | Igen (csak külső billentyűzettel) |
| UIScene | Többablakos mód | Igen (csak iPad) |
| UIPencilInteraction | Apple Pencil dupla koppintás | Nem |
| PDFKit | PDF megtekintés és annotáció | Igen |
Az iPadOS-re történő fejlesztés különleges megközelítést igényel a UI/UX, teljesítmény és tesztelés terén. Az iPhone-on megbocsátható hibák kritikussá válnak iPad-en a nagyobb képernyő és a multitasking miatt.
Az iPad M-sorozatú chipeket (M1, M2, M4) használ egységesített memóriával akár 16 GB-ig. Az erős hardver ellenére a Split View vagy Slide Over módban lévő alkalmazás megosztja az erőforrásokat egy másik alkalmazással. Memória nyomás magasabb, mint iPhone-on. Használjon képkompressziót, kollekciók lusta betöltését és profilozást Instruments Allocations segítségével. Az iPad Pro M4 16 GB memóriával lehetővé teszi asztali szintű alkalmazások (Final Cut Pro, Logic Pro) futtatását.
Az iPad-felhasználók többsége külső billentyűzetet használ. A felületnek teljesen billentyűzetről irányíthatónak kell lennie: Tab a mezők közötti navigációhoz, Space a kiválasztott elem aktiválásához, Enter a megerősítéshez. Adjon hozzá támogatást a Full Keyboard Access-hez — a rendszerbeállításhoz, amely lehetővé teszi bármely UI elem billentyűzetről történő vezérlését.
Az iPad szimulátor nem reprodukálja teljesen a multitasking viselkedését. Teszteljen valós eszközön különböző módokban: Split View nehéz alkalmazással (Safari 20 lappal), Stage Manager 4 ablakkal, Slide Over gyors alkalmazásváltással. Ellenőrizze a forgatókönyvet: a felhasználó megnyitja az alkalmazást a Slide Over-ből, áthúzza Split View-ba, méretezi, bezárja — az alkalmazás nem szabad, hogy összeomoljon.
// Aktuális multitasking mód ellenőrzése iPadOS-en
- (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 aktív");
}
if (isSlideOver) {
NSLog(@"Slide Over mód");
} else if (isFullScreen) {
NSLog(@"Teljes képernyős mód");
} else {
NSLog(@"Split View mód");
}
}Gyakran Ismételt Kérdések
Az iPadOS kiterjesztett multitaskinggal (Split View, Slide Over, Stage Manager), Apple Pencil támogatással hover érzékeléssel, asztali Safari-val letöltéskezelővel, külső monitorokkal natív felbontással és Files fájlrendszerrel rendelkezik, amely USB-C-n keresztül hozzáférést biztosít külső meghajtókhoz.
A Split View automatikusan támogatott, ha az alkalmazás UISplitViewController-t használ. Az alkalmazásnak helyesen kell kezelnie a size class változásokat: kompakt módba váltáskor használjon UINavigationController-t a képernyőveremhez. A Split View explicit elutasításához állítsa be a UIRequiresFullScreen = YES értéket az Info.plist-ben.
Használja a PencilKit-et: PKCanvasView a rajzfelülethez és PKToolPicker az eszközválasztáshoz. A toll érintésének egyedi kezeléséhez — UIEvent .hover típussal és UIPencilInteraction dupla koppintáshoz. Apple Pencil Pro késleltetése — 9 ms, előző generáció — 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). Használjon Size Classes és Auto Layout-ot az adaptációhoz. Külső monitorok akár 6K-ig Thunderbolton keresztül. A Stage Manager akár 8 ablakot támogat (4 iPad-en + 4 külső monitoron).
Az iPadOS 17+ támogatja a külső monitorokat USB-C/Thunderbolt-on keresztül natív felbontással akár 6K-ig. Az alkalmazás tartalmat jeleníthet meg a külső monitoron egy külön UIWindowScene-en keresztül saját életciklussal. A Stage Manager akár 4 ablakot támogat a külső monitoron.
Összefoglaló
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.
Olvassa el is