iPadOS: klíčové pojmy, vývoj pro iPad a Apple Pencil

Autor: IT Sectr Publikováno: 2026-02-07 Doba čtení: 12 min

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 — fork iOS s rozšířeným multitaskingem a podporou Apple Pencil
  • Multitasking zahrnuje Split View, Slide Over, Stage Manager a externí monitory
  • Apple Pencil — stylus s latencí 9–20 ms, podpora PencilKit a hover API
  • Přizpůsobení rozhraní používá Size Classes (regular/compact) a UISplitViewController
  • Safari na iPadOS funguje v desktopovém režimu se správcem stahování

Co je iPadOS?

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.

Historie verzí iPadOS

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 iPadOSRokKlíčová inovace
iPadOS 132019Slide Over, Split View, desktopový Safari
iPadOS 142020Scribble pro Apple Pencil, kompaktní hovory
iPadOS 152021Quick Note, vylepšený správce multitaskingu
iPadOS 162022Stage Manager, externí monitor 6K
iPadOS 172023Interaktivní widgety, Lock Screen
iPadOS 182024Kalkulačka Math Notes, Smart Script

Architektura iPadOS a rozdíl od iOS

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.

UIScene a životní cyklus oken

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.

swift
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.

Další rozdíly od iOS

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 na iPadu: Split View, Slide Over, Stage Manager

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

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

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

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žimPočet okenVelikost oknaSize Class
Celá obrazovka1100 % obrazovkyRegular
Split View 50/50250 % obrazovkyRegular (iPad Pro 12.9) nebo Compact
Split View 33/67233 % / 67 %Compact pro 33 %
Slide Over1 + plovoucí320 ptCompact
Stage Manager1–4LibovolnáZávisí na velikosti

Apple Pencil a ruční zadávání

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.

PencilKit: integrace kreslení

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.

swift
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 a rozpoznávání textu

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.

Hover API pro Apple Pencil Pro

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.

Přizpůsobení rozhraní pro iPad

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 a traitCollection

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.

swift
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.

UISplitViewController: třísloupcová navigace

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.

Frameworky a API pro iPadOS

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.

Drag & Drop

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.

Klávesové zkratky

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).

Externí monitory

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ÚčelDostupné v iOS
UISplitViewControllerVícesloupcová navigaceAno
PencilKitKreslení Apple PencilNe
UIDragInteractionDrag & DropAno (pouze v aplikaci)
UIKeyCommandKlávesové zkratkyAno (pouze s externí klávesnicí)
UISceneRežim více okenAno (pouze iPad)
UIPencilInteractionDvojité klepnutí Apple PencilNe
PDFKitProhlížení a anotace PDFAno

Optimalizace aplikací pro iPad

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.

Výkon a paměť

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).

Keyboard First design

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.

Testování na skutečných zařízeních

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.

objective-c
// 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

Čím se iPadOS liší od iOS?

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.

Jak přidat podporu Split View do aplikace?

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.

Jak integrovat Apple Pencil do aplikace?

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.

Jaké jsou velikosti obrazovky iPadu?

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).

Podporuje iPadOS externí monitory?

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í

  • iPadOS — dedikovaný OS Apple pro iPad s multitaskingem, Apple Pencil a desktopovým Safari
  • Multitasking zahrnuje Split View, Slide Over (320 pt) a Stage Manager (až 8 oken)
  • Apple Pencil je podporován přes PencilKit s latencí 9–20 ms a hover API
  • Adaptivní UI používá Size Classes a UISplitViewController pro všechny režimy
  • iPadOS SDK zahrnuje Drag & Drop, UIKeyCommand, externí monitory 6K a UIScene
  • Stage Manager (M1+) umožňuje překrývající se okna libovolné velikosti
  • Testování povinné na skutečných zařízeních ve všech režimech multitaskingu

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í.

Prodiskutovat projekt

Přečtěte si také