iPadOS — operační systém Apple pro iPad, oddělený od iOS v roce 2019. Vývoj pro iPad zohledňuje jedinečné možnosti: multitasking Split View a Stage Manager, zadávání Apple Pencil s nízkou latencí a desktopový Safari.
Hlavní
iPadOS — operační systém Apple pro iPad, poprvé vydaný v roce 2019 jako odnož iOS (verze 13). Předtím iPad používal stejný iOS jako iPhone. Oddělení iPadOS umožnilo Apple implementovat funkce specifické pro velkou obrazovku: multitasking, desktopový Safari, Drag & Drop a podporu externích monitorů.
iPadOS zachovává plnou kompatibilitu s aplikacemi iOS: jakákoli aplikace pro iPhone běží na iPadu v režimu škálování. Pro kvalitní uživatelský zážitek je však nutné přizpůsobení: použití Size Classes, UISplitViewController a podpora klávesových zkratek. Podle Apple (WWDC 2025) tráví uživatelé 80 % času na iPadu v tabletových verzích, nikoli v škálovaných verzích.
iPadOS 13 (2019) přinesl Slide Over a Split View. iPadOS 14 (2020) přidal Apple Pencil Scribble a kompaktní UI. iPadOS 15 (2021) představil Quick Note a vylepšení multitaskingu. iPadOS 16 (2022) představil Stage Manager a podporu externích monitorů. iPadOS 17 (2023) přidal interaktivní widgety a přizpůsobení Lock Screen.
| Verze iPadOS | Rok | Klíčová inovace |
|---|---|---|
| iPadOS 13 | 2019 | Slide Over, Split View, desktopový Safari |
| iPadOS 14 | 2020 | Scribble pro Apple Pencil, kompaktní hovory |
| iPadOS 15 | 2021 | Quick Note, vylepšený správce multitaskingu |
| iPadOS 16 | 2022 | Stage Manager, externí monitor 6K |
| iPadOS 17 | 2023 | Interaktivní widgety, Lock Screen |
| iPadOS 18 | 2024 | Kalkulačka Math Notes, Smart Script |
iPadOS je založen na stejném jádru XNU a Darwin jako iOS, ale používá upravený shell UIKit přizpůsobený pro práci s více okny a libovolnými velikostmi obrazovky. Klíčový architektonický rozdíl — podpora UIScene, představená v iOS 13.
V iPadOS je každé okno (včetně Split View) samostatná UISceneSession s vlastním životním cyklem. Na rozdíl od iPhone, kde má jedna aplikace jeden UIWindowScene, na iPadu může mít jedna aplikace více UIScene (více oken, Slide Over, Stage Manager). SceneDelegate spravuje stav každého okna nezávisle.
import UIKit
import SwiftUI
/// SceneDelegate pro podporu více oken na 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 }
// Vytvoření UISplitViewController pro tabletovou navigaci
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
}
// Přizpůsobení při změně velikosti okna (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 se stylem .tripleColumn zobrazuje tři sloupce současně: sidebar (navigace), primary (seznam) a detail (obsah). Při přechodu do kompaktního režimu (Split View s jinou aplikací) UIKit automaticky sbalí sloupce do navigačního zásobníku. Vývojář toto chování nespravuje ručně — UIKit přizpůsobuje rozvržení prostřednictvím traitCollection.
V iPadOS jsou k dispozici: podpora externích disků přes Files (USB-C/Thunderbolt), terminálový režim Safari s inspekcí prvků, klávesové zkratky přes UIKeyCommand, systémový správce stahování, Drag & Drop mezi aplikacemi a Picture in Picture s měnitelnou velikostí okna.
Multitasking — klíčová vlastnost iPadOS, která jej zásadně odlišuje od iOS. Uživatel může současně pracovat s více aplikacemi na jedné obrazovce. Vývojář musí zaručit, že aplikace funguje správně v jakémkoli režimu multitaskingu.
Split View rozděluje obrazovku iPadu mezi dvě aplikace v poměru 50/50 nebo 33/67. Každá aplikace dostává vlastní UISceneSession s vlastní pamětí a životním cyklem. Při šířce obrazovky menší než 600 bodů UIKit násilně přepne aplikaci do kompaktní horizontální size class. Aplikace musí tuto změnu správně zpracovat.
Slide Over — plovoucí okno nad aktivní aplikací (šířka 320 bodů). Aplikace v Slide Over přechází do kompaktní horizontální size class (.compact). Je důležité optimalizovat UI pro úzkou obrazovku. V Slide Over lze aplikaci vyvolat přejetím od pravého okraje nebo přes dock. Uživatel může přetáhnout Slide Over do Split View nebo zavřít přejetím doprava.
Stage Manager (iPadOS 16+, M1 a novější) — správce oken, který umožňuje vytvářet překrývající se okna libovolné velikosti. Podporuje až 4 okna na obrazovce iPadu a až 4 na externím monitoru (celkem 8). Aplikace dostávají událost UISceneWillConnectNotification pro každé nové okno. Stage Manager mění pravidla životního cyklu: okno na pozadí není zmrazeno, ale pokračuje v práci s omezenými zdroji.
| Režim | Počet oken | Velikost okna | Size Class |
|---|---|---|---|
| Celá obrazovka | 1 | 100 % obrazovky | Regular |
| Split View 50/50 | 2 | 50 % obrazovky | Regular (iPad Pro 12.9) nebo Compact |
| Split View 33/67 | 2 | 33 % / 67 % | Compact pro 33 % |
| Slide Over | 1 + plovoucí | 320 pt | Compact |
| Stage Manager | 1–4 | Libovolná | Závisí na velikosti |
Apple Pencil — aktivní stylus Apple s podporou náklonu, tlaku a detekce hover (iPad Pro M2+). Zpoždění mezi pohybem pera a zobrazením inkoustu je 9–20 ms v závislosti na modelu. PencilKit — hlavní framework pro integraci kreslení do aplikace.
PKCanvasView poskytuje hotovou plochu pro kreslení s podporou inkoustu, tužky, fixu a gumy. PKToolPicker — panel výběru nástrojů. Vývojář nemusí implementovat vykreslování tahů — PencilKit to dělá hardwarově s Metal shadery. K dispozici je nastavení barvy, tloušťky a průhlednosti pera.
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)
}
// Uložení kresby do PKDrawing (binární formát)
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 s drawingPolicy .anyInput přijímá jak Apple Pencil, tak prst. PKToolPicker dává uživateli výběr nástrojů bez nutnosti psát vlastní UI. PKDrawing je ukládán v binárním formátu s vysokým stupněm komprese — jedna hodina kreslení zabírá přibližně 5–10 MB.
Scribble (iPadOS 14+) umožňuje ruční psaní v libovolném UITextField a UITextView. Systém rozpoznává rukopis na zařízení pomocí Neural Engine. ML model pracuje s latinkou a cyrilicí. V iOS 17+ Scribble podporuje automatickou opravu a predikci dalšího slova. Vývojář nemusí přidávat kód — Scribble funguje automaticky při existenci vstupního pole.
Od iPadOS 17.4 a Apple Pencil Pro vývojáři dostávají události hover při přiblížení pera k obrazovce (až 12 mm). Událost obsahuje pozici, sílu tlaku a azimut. Použití: náhled bodu dotyku štětce v kreslicích aplikacích, náhled nástroje, vizuální zpětná vazba před dotykem.
Adaptivní rozhraní — povinný požadavek pro aplikace na iPad. iPad pracuje v různých velikostech obrazovky (8.3″–13″) a režimech multitaskingu. UIKit poskytuje Size Classes (horizontal: .regular/.compact, vertical: .regular/.compact) a UISplitViewController pro automatické přizpůsobení.
Size Classes — abstrakce určující dostupný prostor. Na iPadu v režimu celé obrazovky jsou obě osy .regular. V Split View (50 %) se horizontální třída může stát .compact na iPadu mini nebo iPadu Air. Všechna populární rozvržení postavená na Auto Layout a UICollectionViewCompositionalLayout se přizpůsobují automaticky. Vlastní přizpůsobení se provádí přepsáním traitCollectionDidChange.
import SwiftUI
/// Adaptivní rozvržení pro iPad pomocí Size Classes
struct AdaptiveContentView: View {
@Environment(\.horizontalSizeClass) private var horizontalSizeClass
@Environment(\.verticalSizeClass) private var verticalSizeClass
var body: some View {
if horizontalSizeClass == .regular && verticalSizeClass == .regular {
// Tabletový režim: sidebar + content
NavigationSplitView {
SidebarView()
} detail: {
ContentGridView()
}
} else {
// Kompaktní režim: zásobníková navigace
NavigationStack {
ContentGridView()
}
}
}
}
/// Příklad adaptivní mřížky: 3 sloupce na iPadu, 2 na 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()
}
}
}V příkladu se NavigationSplitView používá pouze když horizontalSizeClass == .regular (iPad celá obrazovka). NavigationStack se aplikuje v kompaktním režimu. Počet sloupců mřížky (3 vs 2) se také mění v závislosti na Size Classes. Vše se automaticky aktualizuje při změně režimu multitaskingu.
UIKit poskytuje UISplitViewController se třemi styly: .doubleColumn (sidebar + detail), .tripleColumn (sidebar + primary + detail) a .single. V iPadOS 16+ splitViewController automaticky přepíná mezi styly při změně size class. Vývojář nastaví viewControllers pro každý sloupec, UIKit spravuje viditelnost.
iPadOS SDK zahrnuje všechny frameworky iOS a také API dostupná pouze na iPadu. Níže jsou uvedeny klíčové možnosti specifické pro iPad.
iPadOS podporuje Drag & Drop mezi aplikacemi a v rámci aplikace. UIDragInteraction a UIDropInteraction umožňují přetahování textu, obrázků, souborů a vlastních objektů. Drag & Drop funguje současně s Multi-Touch: uživatel může přetahovat více prvků různými prsty. V SwiftUI se používají modifikátory .onDrag a .onDrop.
Při připojení klávesnice (Magic Keyboard, Smart Keyboard) umožňuje UIKeyCommand přidání zkratek. V iPadOS 17+ se klávesové zkratky zobrazují při dlouhém stisku Cmd. Apple doporučuje podporovat standardní kombinace: ⌘C (kopírovat), ⌘V (vložit), ⌘F (hledat), ⌘N (nový dokument).
iPadOS 17+ podporuje externí monitory s nativním rozlišením až 6K (Pro Display XDR). Aplikace může zobrazovat obsah na externí obrazovce prostřednictvím UIWindowScene s odděleným identifikátorem relace. Stage Manager umožňuje umístit až 4 okna s měnitelnou velikostí na externím monitoru.
| API | Účel | Dostupné v iOS |
|---|---|---|
| UISplitViewController | Vícesloupcová navigace | Ano |
| PencilKit | Kreslení Apple Pencil | Ne |
| UIDragInteraction | Drag & Drop | Ano (pouze v aplikaci) |
| UIKeyCommand | Klávesové zkratky | Ano (pouze s externí klávesnicí) |
| UIScene | Režim více oken | Ano (pouze iPad) |
| UIPencilInteraction | Dvojité klepnutí Apple Pencil | Ne |
| PDFKit | Prohlížení a anotace PDF | Ano |
Vývoj pro iPadOS vyžaduje zvláštní přístup k UI/UX, výkonu a testování. Chyby odpustitelné na iPhone se stávají kritickými na iPadu kvůli větší obrazovce a multitaskingu.
iPad používá čipy řady M (M1, M2, M4) s jednotnou pamětí až 16 GB. Přestože je hardware výkonný, aplikace v Split View nebo Slide Over sdílí prostředky s jinou aplikací. Tlak na paměť je vyšší než na iPhone. Používejte kompresi obrázků, líné načítání kolekcí a profilování pomocí Instruments Allocations. iPad Pro M4 s 16 GB umožňuje spouštět aplikace na úrovni desktopu (Final Cut Pro, Logic Pro).
Většina uživatelů iPadu používá externí klávesnici. Rozhraní musí být plně ovladatelné z klávesnice: Tab pro navigaci mezi poli, Space pro aktivaci vybraného prvku, Enter pro potvrzení. Přidejte podporu pro Full Keyboard Access — systémové nastavení umožňující ovládání libovolného prvku UI z klávesnice.
Simulátor iPadu zcela nereprodukuje chování multitaskingu. Testujte na skutečném zařízení v různých režimech: Split View s náročnou aplikací (Safari s 20 kartami), Stage Manager se 4 okny, Slide Over s rychlým přepínáním aplikací. Zkontrolujte scénář: uživatel otevře aplikaci z Slide Over, přetáhne ji do Split View, změní velikost, zavře — aplikace by neměla spadnout.
// Kontrola aktuálního režimu multitaskingu na 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 aktivní");
}
if (isSlideOver) {
NSLog(@"Režim Slide Over");
} else if (isFullScreen) {
NSLog(@"Režim celé obrazovky");
} else {
NSLog(@"Režim Split View");
}
}Často kladené otázky
iPadOS má rozšířený multitasking (Split View, Slide Over, Stage Manager), podporu Apple Pencil s detekcí hover, desktopový Safari se správcem stahování, externí monitory s nativním rozlišením a souborový systém Files s přístupem k externím diskům přes USB-C.
Split View je podporován automaticky, pokud aplikace používá UISplitViewController. Aplikace musí správně zpracovávat změny size class: při přechodu do kompaktního režimu použijte UINavigationController pro zásobník obrazovek. Pro explicitní odmítnutí Split View nastavte UIRequiresFullScreen = YES v Info.plist.
Použijte PencilKit: PKCanvasView pro kreslicí plochu a PKToolPicker pro výběr nástrojů. Pro vlastní zpracování dotyků pera — UIEvent s typem .hover a UIPencilInteraction pro dvojité klepnutí. Latence Apple Pencil Pro — 9 ms, předchozí generace — 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). Použijte Size Classes a Auto Layout pro přizpůsobení. Externí monitory až 6K přes Thunderbolt. Stage Manager podporuje až 8 oken (4 na iPadu + 4 na externím monitoru).
iPadOS 17+ podporuje externí monitory přes USB-C/Thunderbolt s nativním rozlišením až 6K. Aplikace může zobrazovat obsah na externím monitoru prostřednictvím samostatného UIWindowScene s vlastním životním cyklem. Stage Manager podporuje až 4 okna na externím monitoru.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také