iPadOS: concepte cheie, dezvoltare pentru iPad și Apple Pencil

Autor: IT Sectr Publicat: 2026-02-07 Timp de citire: 12 min

iPadOS — sistemul de operare Apple pentru iPad, desprins din iOS în 2019. Dezvoltarea pentru iPad ține cont de capacitățile unice: multitasking-ul Split View și Stage Manager, introducerea Apple Pencil cu latență redusă și Safari desktop.

Principalele

  • iPadOS — un fork al iOS cu multitasking extins și suport Apple Pencil
  • Multitasking include Split View, Slide Over, Stage Manager și monitoare externe
  • Apple Pencil — stilou cu latență de 9–20 ms, suport PencilKit și hover API
  • Adaptarea interfeței utilizează Size Classes (regular/compact) și UISplitViewController
  • Safari pe iPadOS funcționează în mod desktop cu manager de descărcări

Ce este iPadOS?

iPadOS — sistemul de operare Apple pentru iPad, lansat pentru prima dată în 2019 ca o ramură a iOS (versiunea 13). Înainte de aceasta, iPad folosea același iOS ca și iPhone. Separarea iPadOS a permis Apple să implementeze funcții specifice ecranului mare: multitasking, Safari desktop, Drag & Drop și suport pentru monitoare externe.

iPadOS păstrează compatibilitatea deplină cu aplicațiile iOS: orice aplicație iPhone rulează pe iPad în modul de scalare. Cu toate acestea, pentru o experiență de calitate, este necesară adaptarea: utilizarea Size Classes, UISplitViewController și suport pentru comenzi rapide de la tastatură. Potrivit Apple (WWDC 2025), 80% din timpul pe iPad utilizatorii îl petrec în versiunile tabletă, nu în cele scalate.

Istoricul versiunilor iPadOS

iPadOS 13 (2019) a adus Slide Over și Split View. iPadOS 14 (2020) a adăugat Apple Pencil Scribble și UI compact. iPadOS 15 (2021) a introdus Quick Note și îmbunătățiri ale multitasking-ului. iPadOS 16 (2022) a prezentat Stage Manager și suport pentru monitoare externe. iPadOS 17 (2023) a adăugat widgeturi interactive și personalizarea Lock Screen.

Versiunea iPadOSAnInovație cheie
iPadOS 132019Slide Over, Split View, Safari desktop
iPadOS 142020Scribble pentru Apple Pencil, apeluri compacte
iPadOS 152021Quick Note, manager de multitasking îmbunătățit
iPadOS 162022Stage Manager, monitor extern 6K
iPadOS 172023Widgeturi interactive, Lock Screen
iPadOS 182024Calculator Math Notes, Smart Script

Arhitectura iPadOS și diferența față de iOS

iPadOS se bazează pe același nucleu XNU și Darwin ca iOS, dar folosește o carcasă UIKit modificată, adaptată pentru lucrul cu mai multe ferestre și dimensiuni arbitrare de ecran. Diferența arhitecturală cheie — suportul pentru UIScene, introdus în iOS 13.

UIScene și ciclul de viață al ferestrelor

În iPadOS, fiecare fereastră (inclusiv în Split View) este o UISceneSession separată cu propriul ciclu de viață. Spre deosebire de iPhone, unde o aplicație are un UIWindowScene, pe iPad o aplicație poate avea mai multe UIScene (mai multe ferestre, Slide Over, Stage Manager). SceneDelegate gestionează starea fiecărei ferestre independent.

swift
import UIKit
import SwiftUI

/// SceneDelegate pentru suportul mai multor ferestre pe 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 }

        // Creăm UISplitViewController pentru navigarea pe tabletă
        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
    }

    // Adaptare la modificarea dimensiunii ferestrei (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 cu stilul .tripleColumn afișează trei coloane simultan: sidebar (navigare), primary (listă) și detail (conținut). La trecerea în modul compact (Split View cu altă aplicație), UIKit pliază automat coloanele într-un stivă de navigare. Dezvoltatorul nu gestionează manual acest comportament — UIKit adaptează aspectul prin traitCollection.

Diferențe suplimentare față de iOS

În iPadOS sunt disponibile: suport pentru unități externe prin Files (USB-C/Thunderbolt), modul terminal Safari cu inspectare elemente, comenzi rapide de la tastatură prin UIKeyCommand, manager de descărcări de sistem, Drag & Drop între aplicații și Picture in Picture cu dimensiunea ferestrei modificabilă.

Multitasking pe iPad: Split View, Slide Over, Stage Manager

Multitasking — caracteristica cheie a iPadOS, care îl diferențiază fundamental de iOS. Utilizatorul poate lucra simultan cu mai multe aplicații pe un singur ecran. Dezvoltatorul trebuie să garanteze că aplicația funcționează corect în orice mod de multitasking.

Split View

Split View împarte ecranul iPad între două aplicații în proporție de 50/50 sau 33/67. Fiecare aplicație primește propria UISceneSession cu memorie și ciclu de viață proprii. La lățimea ecranului mai mică de 600 de puncte, UIKit trece forțat aplicația în size class compact orizontal. Aplicația trebuie să gestioneze corect această schimbare.

Slide Over

Slide Over — fereastră plutitoare deasupra aplicației active (lățime 320 de puncte). Aplicația în Slide Over trece în size class compact orizontal (.compact). Este important să optimizați UI pentru ecran îngust. În Slide Over, aplicația poate fi invocată prin glisare de la marginea dreaptă sau prin dock. Utilizatorul poate trage Slide Over în Split View sau poate închide glisând la dreapta.

Stage Manager

Stage Manager (iPadOS 16+, M1 și mai noi) — un manager de ferestre care permite crearea de ferestre suprapuse de dimensiuni arbitrare. Suportă până la 4 ferestre pe ecranul iPad și până la 4 pe monitorul extern (total 8). Aplicațiile primesc evenimentul UISceneWillConnectNotification pentru fiecare fereastră nouă. Stage Manager schimbă regulile ciclului de viață: fereastra din fundal nu este înghețată, ci continuă să funcționeze cu resurse limitate.

ModNumăr ferestreDimensiune fereastrăSize Class
Ecran complet1100% ecranRegular
Split View 50/50250% ecranRegular (iPad Pro 12.9) sau Compact
Split View 33/67233% / 67%Compact pentru 33%
Slide Over1 + plutitoare320 ptCompact
Stage Manager1–4ArbitrarDepinde de dimensiune

Apple Pencil și introducerea manuală

Apple Pencil — stiloul activ Apple cu suport pentru înclinare, presiune și detectare hover (iPad Pro M2+). Întârzierea între mișcarea stiloului și afișarea cernelii este de 9–20 ms, în funcție de model. PencilKit — frameworkul principal pentru integrarea desenului în aplicație.

PencilKit: integrarea desenului

PKCanvasView oferă o suprafață gata pentru desen cu suport pentru cerneală, creion, marker și gumă. PKToolPicker — panoul de selecție a instrumentelor. Dezvoltatorul nu trebuie să implementeze randarea traseelor — PencilKit o face hardware cu shadere Metal. Sunt disponibile setări de culoare, grosime și transparență a stiloului.

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

    // Salvarea desenului în PKDrawing (format binar)
    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 cu drawingPolicy .anyInput acceptă atât Apple Pencil, cât și degetul. PKToolPicker oferă utilizatorului selecția instrumentelor fără a fi nevoie să scrieți UI propriu. PKDrawing este stocat în format binar cu un grad ridicat de compresie — o oră de desen ocupă aproximativ 5–10 MB.

Scribble și recunoașterea textului

Scribble (iPadOS 14+) permite scrierea de mână în orice UITextField și UITextView. Sistemul recunoaște scrisul de mână pe dispozitiv folosind Neural Engine. Modelul ML funcționează cu alfabet latin și chirilic. În iOS 17+, Scribble suportă autocorectare și predicția cuvântului următor. Dezvoltatorul nu trebuie să adauge cod — Scribble funcționează automat la prezența unui câmp de intrare.

Hover API pentru Apple Pencil Pro

Începând cu iPadOS 17.4 și Apple Pencil Pro, dezvoltatorii primesc evenimente hover la apropierea stiloului de ecran (până la 12 mm). Evenimentul conține poziția, forța de apăsare și azimutul. Aplicații: previzualizarea punctului de contact al pensulei în aplicațiile de desen, previzualizarea instrumentului, feedback vizual înainte de atingere.

Adaptarea interfeței pentru iPad

Interfața adaptivă — o cerință obligatorie pentru aplicațiile iPad. iPad funcționează în diferite dimensiuni de ecran (8.3″–13″) și moduri de multitasking. UIKit oferă Size Classes (horizontal: .regular/.compact, vertical: .regular/.compact) și UISplitViewController pentru adaptare automată.

Size Classes și traitCollection

Size Classes — o abstractizare care determină spațiul disponibil. Pe iPad în modul ecran complet, ambele axe sunt .regular. În Split View (50%), clasa orizontală poate deveni .compact pe iPad mini sau iPad Air. Toate layout-urile populare construite pe Auto Layout și UICollectionViewCompositionalLayout se adaptează automat. Adaptarea personalizată se realizează prin suprascrierea traitCollectionDidChange.

swift
import SwiftUI

/// Layout adaptiv pentru iPad folosind Size Classes
struct AdaptiveContentView: View {
    @Environment(\.horizontalSizeClass) private var horizontalSizeClass
    @Environment(\.verticalSizeClass) private var verticalSizeClass

    var body: some View {
        if horizontalSizeClass == .regular && verticalSizeClass == .regular {
            // Mod tabletă: sidebar + content
            NavigationSplitView {
                SidebarView()
            } detail: {
                ContentGridView()
            }
        } else {
            // Mod compact: navigare în stivă
            NavigationStack {
                ContentGridView()
            }
        }
    }
}

/// Exemplu de grilă adaptivă: 3 coloane pe iPad, 2 pe 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()
        }
    }
}

În exemplu, NavigationSplitView este utilizat doar când horizontalSizeClass == .regular (iPad ecran complet). NavigationStack este aplicat în modul compact. Numărul de coloane ale grilei (3 vs 2) se modifică și el în funcție de Size Classes. Totul se actualizează automat la schimbarea modului de multitasking.

UISplitViewController: navigare cu trei coloane

UIKit oferă UISplitViewController cu trei stiluri: .doubleColumn (sidebar + detail), .tripleColumn (sidebar + primary + detail) și .single. În iPadOS 16+, splitViewController comută automat între stiluri la modificarea size class. Dezvoltatorul setează viewControllers pentru fiecare coloană, UIKit gestionează vizibilitatea.

Frameworkuri și API pentru iPadOS

iPadOS SDK include toate frameworkurile iOS, precum și API-uri disponibile doar pe iPad. Mai jos sunt prezentate capacitățile cheie specifice iPad.

Drag & Drop

iPadOS suportă Drag & Drop între aplicații și în cadrul aplicației. UIDragInteraction și UIDropInteraction permit tragerea de text, imagini, fișiere și obiecte personalizate. Drag & Drop funcționează simultan cu Multi-Touch: utilizatorul poate trage mai multe elemente cu degete diferite. În SwiftUI se folosesc modificatorii .onDrag și .onDrop.

Comenzi rapide de la tastatură

La conectarea tastaturii (Magic Keyboard, Smart Keyboard), UIKeyCommand permite adăugarea de comenzi rapide. În iPadOS 17+, comenzile rapide de la tastatură se afișează la apăsarea lungă a tastei Cmd. Apple recomandă suportul combinațiilor standard: ⌘C (copiere), ⌘V (lipire), ⌘F (căutare), ⌘N (document nou).

Monitoare externe

iPadOS 17+ suportă monitoare externe cu rezoluție nativă de până la 6K (Pro Display XDR). Aplicația poate afișa conținut pe ecranul extern prin UIWindowScene cu un identificator de sesiune separat. Stage Manager permite plasarea a până la 4 ferestre cu dimensiuni modificabile pe monitorul extern.

APIScopDisponibil în iOS
UISplitViewControllerNavigare multi-coloanăDa
PencilKitDesen Apple PencilNu
UIDragInteractionDrag & DropDa (doar în aplicație)
UIKeyCommandComenzi rapide tastaturăDa (doar cu tastatură externă)
UISceneMod multi-fereastrăDa (doar iPad)
UIPencilInteractionAtingere dublă Apple PencilNu
PDFKitVizualizare și adnotare PDFDa

Optimizarea aplicațiilor pentru iPad

Dezvoltarea pentru iPadOS necesită o abordare specială a UI/UX, performanței și testării. Greșelile iertabile pe iPhone devin critice pe iPad din cauza ecranului mai mare și a multitasking-ului.

Performanță și memorie

iPad folosește cipuri din seria M (M1, M2, M4) cu memorie unificată de până la 16 GB. În ciuda hardware-ului puternic, aplicația în Split View sau Slide Over împarte resursele cu o altă aplicație. Presiunea memoriei este mai mare decât pe iPhone. Utilizați compresia imaginilor, încărcarea lentă a colecțiilor și profilarea prin Instruments Allocations. iPad Pro M4 cu 16 GB permite rularea aplicațiilor de nivel desktop (Final Cut Pro, Logic Pro).

Design Keyboard First

Majoritatea utilizatorilor de iPad folosesc tastatura externă. Interfața trebuie să fie complet controlabilă de la tastatură: Tab pentru navigarea între câmpuri, Space pentru activarea elementului selectat, Enter pentru confirmare. Adăugați suport pentru Full Keyboard Access — setarea de sistem care permite controlul oricărui element UI de la tastatură.

Testarea pe dispozitive reale

Simulatorul iPad nu reproduce complet comportamentul multitasking-ului. Testați pe un dispozitiv real în diferite moduri: Split View cu o aplicație grea (Safari cu 20 de file), Stage Manager cu 4 ferestre, Slide Over cu schimbare rapidă a aplicațiilor. Verificați scenariul: utilizatorul deschide aplicația din Slide Over, o trage în Split View, modifică dimensiunea, o închide — aplicația nu trebuie să se blocheze.

objective-c
// Verificarea modului curent de multitasking pe 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 activ");
    }

    if (isSlideOver) {
        NSLog(@"Mod Slide Over");
    } else if (isFullScreen) {
        NSLog(@"Mod ecran complet");
    } else {
        NSLog(@"Mod Split View");
    }
}

Întrebări frecvente

Cu ce se diferențiază iPadOS de iOS?

iPadOS are multitasking extins (Split View, Slide Over, Stage Manager), suport Apple Pencil cu detectare hover, Safari desktop cu manager de descărcări, monitoare externe cu rezoluție nativă și sistemul de fișiere Files cu acces la unități externe prin USB-C.

Cum se adaugă suport pentru Split View în aplicație?

Split View este suportat automat dacă aplicația utilizează UISplitViewController. Aplicația trebuie să gestioneze corect schimbările size class: la trecerea în modul compact, utilizați UINavigationController pentru stiva de ecrane. Pentru renunțarea explicită la Split View, setați UIRequiresFullScreen = YES în Info.plist.

Cum se integrează Apple Pencil în aplicație?

Utilizați PencilKit: PKCanvasView pentru suprafața de desen și PKToolPicker pentru selecția instrumentelor. Pentru procesarea personalizată a atingerilor stiloului — UIEvent cu tipul .hover și UIPencilInteraction pentru atingerea dublă. Latența Apple Pencil Pro — 9 ms, generația anterioară — 20 ms.

Care sunt dimensiunile ecranului iPad?

iPad mini 8,3″ (2266×1488), iPad Air 10,9″ (2360×1640), iPad Pro 11″ (2388×1668), iPad Pro 13″ M4 (2752×2064). Utilizați Size Classes și Auto Layout pentru adaptare. Monitoare externe până la 6K prin Thunderbolt. Stage Manager suportă până la 8 ferestre (4 pe iPad + 4 pe monitor extern).

Suportă iPadOS monitoare externe?

iPadOS 17+ suportă monitoare externe prin USB-C/Thunderbolt cu rezoluție nativă de până la 6K. Aplicația poate afișa conținut pe monitorul extern printr-un UIWindowScene separat cu propriul ciclu de viață. Stage Manager suportă până la 4 ferestre pe monitorul extern.

Rezumat

  • iPadOS — sistemul de operare dedicat Apple pentru iPad cu multitasking, Apple Pencil și Safari desktop
  • Multitasking include Split View, Slide Over (320 pt) și Stage Manager (până la 8 ferestre)
  • Apple Pencil este suportat prin PencilKit cu latență de 9–20 ms și hover API
  • UI adaptiv utilizează Size Classes și UISplitViewController pentru toate modurile
  • iPadOS SDK include Drag & Drop, UIKeyCommand, monitoare externe 6K și UIScene
  • Stage Manager (M1+) permite ferestre suprapuse de dimensiuni arbitrare
  • Testarea obligatorie pe dispozitive reale în toate modurile de multitasking

Vom dezvolta o aplicație mobilă la cheie

IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.

Discutați proiectul

Citiți și