iPadOS: кључни појмови, развој за iPad и Apple Pencil

Аутор: IT Sectr Објављено: 2026-02-07 Време читања: 12 мин

iPadOS — оперативни систем компаније Apple за iPad, издвојен из iOS-а 2019. године. Развој за iPad узима у обзир јединствене могућности: мултитаскинг Split View и Stage Manager, унос Apple Pencil-ом са малим кашњењем и десктоп Safari.

Главно

  • iPadOS — форк iOS-а са проширеним мултитаскингом и подршком за Apple Pencil
  • Мултитаскинг укључује Split View, Slide Over, Stage Manager и спољне мониторе
  • Apple Pencil — оловка са кашњењем 9–20 ms, подршка за PencilKit и hover API
  • Адаптација интерфејса користи Size Classes (regular/compact) и UISplitViewController
  • Safari на iPadOS-у ради у десктоп режиму са менаџером преузимања

Шта је iPadOS?

iPadOS — оперативни систем компаније Apple за iPad, први пут објављен 2019. године као огранак iOS-а (верзија 13). Пре тога, iPad је користио исти iOS као и iPhone. Издвајање iPadOS-а омогућило је Apple-у да имплементира функције специфичне за велики екран: мултитаскинг, десктоп Safari, Drag & Drop и подршку за спољне мониторе.

iPadOS задржава пуну компатибилност са iOS апликацијама: свака iPhone апликација се покреће на iPad-у у режиму скалирања. Међутим, за квалитетно корисничко искуство потребна је адаптација: коришћење Size Classes, UISplitViewController и подршка за пречице на тастатури. Према подацима Apple-а (WWDC 2025), 80% времена на iPad-у корисници проводе у таблет верзијама апликација.

Историја верзија iPadOS-а

iPadOS 13 (2019) донео је Slide Over и Split View. iPadOS 14 (2020) додао је Apple Pencil Scribble и компактни UI. iPadOS 15 (2021) увео је Quick Note и побољшања мултитаскинга. iPadOS 16 (2022) представио је Stage Manager и подршку за спољне мониторе. iPadOS 17 (2023) додао је интерактивне виџете и прилагођавање Lock Screen-а.

Верзија iPadOS-аГодинаКључна иновација
iPadOS 132019Slide Over, Split View, десктоп Safari
iPadOS 142020Scribble за Apple Pencil, компактни позиви
iPadOS 152021Quick Note, побољшани менаџер мултитаскинга
iPadOS 162022Stage Manager, спољни монитор 6K
iPadOS 172023Интерактивни виџети, Lock Screen
iPadOS 182024Калкулатор Math Notes, Smart Script

Архитектура iPadOS-а и разлика од iOS-а

iPadOS се заснива на истом XNU језгру и Darwin-у као iOS, али користи модификовано UIKit окружење прилагођено за рад са више прозора и произвољним величинама екрана. Кључна архитектурална разлика — подршка за UIScene, представљена у iOS 13.

UIScene и животни циклус прозора

У iPadOS-у сваки прозор (укључујући Split View) представља засебну UISceneSession са сопственим животним циклусом. За разлику од iPhone-а, где једна апликација има један UIWindowScene, на iPad-у једна апликација може имати више UIScene (више прозора, Slide Over, Stage Manager). SceneDelegate управља стањем сваког прозора независно.

swift
import UIKit
import SwiftUI

/// SceneDelegate за подршку за више прозора на 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 за навигацију на таблету
        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
    }

    // Адаптација при промени величине прозора (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 са .tripleColumn стилом приказује три колоне истовремено: sidebar (навигација), primary (листа) и detail (садржај). При преласку у компактни режим (Split View са другом апликацијом) UIKit аутоматски сажима колоне у навигациони стек. Програмер не управља овим понашањем ручно — UIKit прилагођава распоред кроз traitCollection.

Додатне разлике од iOS-а

У iPadOS-у су доступни: подршка за спољне дискове кроз Files (USB-C/Thunderbolt), терминални режим Safari-ја са инспекцијом елемената, пречице на тастатури кроз UIKeyCommand, системски менаџер преузимања, Drag & Drop између апликација и Picture in Picture са променљивом величином прозора.

Мултитаскинг на iPad-у: Split View, Slide Over, Stage Manager

Мултитаскинг — кључна карактеристика iPadOS-а која га суштински разликује од iOS-а. Корисник може истовремено да ради са више апликација на истом екрану. Програмер мора да гарантује да апликација исправно ради у било ком режиму мултитаскинга.

Split View

Split View дели екран iPad-а између две апликације у односу 50/50 или 33/67. Свака апликација добија сопствену UISceneSession са сопственом меморијом и животним циклусом. При ширини екрана мањој од 600 тачака, UIKit присилно пребацује апликацију у компактни хоризонтални size class. Апликација мора исправно да обради ову промену.

Slide Over

Slide Over — лебдећи прозор изнад активне апликације (ширина 320 тачака). Апликација у Slide Over-у прелази у компактни хоризонтални size class (.compact). Важно је оптимизовати UI за узак екран. У Slide Over-у апликација се може позвати превлачењем са десне ивице или преко dock-а. Корисник може да превуче Slide Over у Split View или да га затвори превлачењем удесно.

Stage Manager

Stage Manager (iPadOS 16+, M1 и новији) — менаџер прозора који омогућава стварање прозора произвољних величина који се преклапају. Подржава до 4 прозора на екрану iPad-а и до 4 на спољном монитору (укупно 8). Апликације добијају догађај UISceneWillConnectNotification за сваки нови прозор. Stage Manager мења правила животног циклуса: прозор у позадини се не замрзава, већ наставља рад са ограниченим ресурсима.

РежимБрој прозораВеличина прозораSize Class
Цео екран1100% екранаRegular
Split View 50/50250% екранаRegular (iPad Pro 12.9) или Compact
Split View 33/67233% / 67%Compact за 33%
Slide Over1 + лебдећи320 ptCompact
Stage Manager1–4ПроизвољанЗависи од величине

Apple Pencil и рукописни унос

Apple Pencil — активна оловка компаније Apple са подршком за нагиб, притисак и hover детекцију (iPad Pro M2+). Кашњење између покрета оловке и приказа мастила износи 9–20 ms у зависности од модела. PencilKit — главни фрејмворк за интеграцију цртања у апликацију.

PencilKit: интеграција цртања

PKCanvasView пружа готову површину за цртање са подршком за мастило, оловку, маркер и гумицу. PKToolPicker — панел за избор алата. Програмер не мора да имплементира рендеровање потеза — PencilKit то ради хардверски са Metal шейдерима. Доступно је подешавање боје, дебљине и провидности оловке.

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

    // Чување цртежа у PKDrawing (бинарни формат)
    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 прихвата и Apple Pencil и прст. PKToolPicker омогућава кориснику избор алата без потребе за писањем сопственог UI-ја. PKDrawing се чува у бинарном формату са високим степеном компресије — један сат цртања заузима око 5–10 MB.

Scribble и препознавање текста

Scribble (iPadOS 14+) омогућава рукописни унос у било ком UITextField и UITextView. Систем препознаје рукопис на уређају користећи Neural Engine. ML модел ради са латиницом и ћирилицом. У iOS 17+ Scribble подржава аутоматску исправку и предвиђање следеће речи. Програмер не мора да додаје код — Scribble ради аутоматски када постоји поље за унос.

Hover API за Apple Pencil Pro

Од iPadOS 17.4 и Apple Pencil Pro, програмери добијају hover догађаје при приближавању оловке екрану (до 12 mm). Догађај садржи позицију, снагу притиска и азимут. Примена: преглед тачке додира четкице у апликацијама за цртање, преглед алата, визуелна повратна информација пре додира.

Адаптација интерфејса за iPad

Адаптивни интерфејс — обавезан захтев за iPad апликације. iPad ради у различитим величинама екрана (8.3″–13″) и режимима мултитаскинга. UIKit пружа Size Classes (horizontal: .regular/.compact, vertical: .regular/.compact) и UISplitViewController за аутоматску адаптацију.

Size Classes и traitCollection

Size Classes — апстракција која одређује доступни простор. На iPad-у у режиму целог екрана обе осе су .regular. У Split View-у (50%) хоризонтална класа може постати .compact на iPad mini или iPad Air. Сви популарни распореди изграђени на Auto Layout и UICollectionViewCompositionalLayout прилагођавају се аутоматски. Прилагођена адаптација се врши преписивањем traitCollectionDidChange.

swift
import SwiftUI

/// Адаптивни распоред за iPad коришћењем Size Classes
struct AdaptiveContentView: View {
    @Environment(\.horizontalSizeClass) private var horizontalSizeClass
    @Environment(\.verticalSizeClass) private var verticalSizeClass

    var body: some View {
        if horizontalSizeClass == .regular && verticalSizeClass == .regular {
            // Таблет режим: sidebar + content
            NavigationSplitView {
                SidebarView()
            } detail: {
                ContentGridView()
            }
        } else {
            // Компактни режим: стек навигација
            NavigationStack {
                ContentGridView()
            }
        }
    }
}

/// Пример адаптивне мреже: 3 колоне на iPad-у, 2 на 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()
        }
    }
}

У примеру, NavigationSplitView се користи само када horizontalSizeClass == .regular (iPad пун екран). NavigationStack се примењује у компактном режиму. Број колона мреже (3 vs 2) такође се мења у зависности од Size Classes. Све се ажурира аутоматски при промени режима мултитаскинга.

UISplitViewController: троколона навигација

UIKit пружа UISplitViewController са три стила: .doubleColumn (sidebar + detail), .tripleColumn (sidebar + primary + detail) и .single. У iPadOS 16+ splitViewController аутоматски прелази између стилова при промени size class-а. Програмер поставља viewControllers за сваку колону, UIKit управља видљивошћу.

Фрејмворци и API за iPadOS

iPadOS SDK укључује све iOS фрејмворке, као и API доступне само на iPad-у. Испод су представљене кључне iPad специфичне могућности.

Drag & Drop

iPadOS подржава Drag & Drop између апликација и унутар апликације. UIDragInteraction и UIDropInteraction омогућавају превлачење текста, слика, датотека и прилагођених објеката. Drag & Drop ради истовремено са Multi-Touch-ом: корисник може да превлачи више елемената различитим прстима. У SwiftUI се користе .onDrag и .onDrop модификатори.

Пречице на тастатури

При повезивању тастатуре (Magic Keyboard, Smart Keyboard) UIKeyCommand омогућава додавање пречица. У iPadOS 17+ пречице на тастатури се приказују при дугом притиску на Cmd. Apple препоручује подршку за стандардне комбинације: ⌘C (копирај), ⌘V (налепи), ⌘F (претрага), ⌘N (нови документ).

Спољни монитори

iPadOS 17+ подржава спољне мониторе са изворном резолуцијом до 6K (Pro Display XDR). Апликација може да приказује садржај на спољном екрану кроз UIWindowScene са засебним идентификатором сесије. Stage Manager омогућава постављање до 4 прозора променљивих величина на спољном монитору.

APIНаменаДоступно у iOS-у
UISplitViewControllerВишеколона навигацијаДа
PencilKitЦртање Apple Pencil-омНе
UIDragInteractionDrag & DropДа (само у апликацији)
UIKeyCommandПречице на тастатуриДа (само са спољном тастатуром)
UISceneРежим више прозораДа (само iPad)
UIPencilInteractionДвоструки додир Apple Pencil-аНе
PDFKitПреглед и коментарисање PDF-аДа

Оптимизација апликација за iPad

Развој за iPadOS захтева посебан приступ UI/UX-у, перформансама и тестирању. Грешке опростиве на iPhone-у постају критичне на iPad-у због већег екрана и мултитаскинга.

Перформансе и меморија

iPad користи M серију чипова (M1, M2, M4) са унификованом меморијом до 16 GB. Упркос моћном хардверу, апликација у Split View или Slide Over дели ресурсе са другом апликацијом. Притисак на меморију је већи него на iPhone-у. Користите компресију слика, лењо учитавање колекција и профилисање кроз Instruments Allocations. iPad Pro M4 са 16 GB омогућава покретање апликација десктоп нивоа (Final Cut Pro, Logic Pro).

Keyboard First дизајн

Већина корисника iPad-а користи спољну тастатуру. Интерфејс мора бити потпуно управљив са тастатуре: Tab за навигацију по пољима, Space за активацију изабраног елемента, Enter за потврду. Додајте подршку за Full Keyboard Access — системско подешавање које омогућава управљање било којим UI елементом са тастатуре.

Тестирање на стварним уређајима

Симулатор iPad-а не репродукује у потпуности понашање мултитаскинга. Тестирајте на стварном уређају у различитим режимима: Split View са тешком апликацијом (Safari са 20 картица), Stage Manager са 4 прозора, Slide Over са брзом променом апликација. Проверите сценарио: корисник отвара апликацију из Slide Over-а, превлачи је у Split View, мења величину, затвара — апликација не сме да се сруши.

objective-c
// Провера тренутног режима мултитаскинга на 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 је активан");
    }

    if (isSlideOver) {
        NSLog(@"Slide Over режим");
    } else if (isFullScreen) {
        NSLog(@"Режим целог екрана");
    } else {
        NSLog(@"Split View режим");
    }
}

Често постављана питања

По чему се iPadOS разликује од iOS-а?

iPadOS има проширени мултитаскинг (Split View, Slide Over, Stage Manager), подршку за Apple Pencil са hover детекцијом, десктоп Safari са менаџером преузимања, спољне мониторе са изворном резолуцијом и датотечни систем Files са приступом спољним дисковима преко USB-C.

Како додати подршку за Split View у апликацију?

Split View се аутоматски подржава ако апликација користи UISplitViewController. Апликација мора исправно да обрађује промене size class-а: при преласку у компактни режим користити UINavigationController за стек екрана. За изричито одбијање Split View-а поставите UIRequiresFullScreen = YES у Info.plist.

Како интегрисати Apple Pencil у апликацију?

Користите PencilKit: PKCanvasView за површину цртања и PKToolPicker за избор алата. За прилагођену обраду додира оловке — UIEvent са типом .hover и UIPencilInteraction за двоструки додир. Кашњење Apple Pencil Pro — 9 ms, претходне генерације — 20 ms.

Које су величине екрана iPad-а?

iPad mini 8,3″ (2266×1488), iPad Air 10,9″ (2360×1640), iPad Pro 11″ (2388×1668), iPad Pro 13″ M4 (2752×2064). Користите Size Classes и Auto Layout за адаптацију. Спољни монитори до 6K преко Thunderbolt-а. Stage Manager подржава до 8 прозора (4 на iPad-у + 4 на спољном монитору).

Да ли iPadOS подржава спољне мониторе?

iPadOS 17+ подржава спољне мониторе преко USB-C/Thunderbolt са изворном резолуцијом до 6K. Апликација може да приказује садржај на спољном монитору кроз засебни UIWindowScene са сопственим животним циклусом. Stage Manager подржава до 4 прозора на спољном монитору.

Резиме

  • iPadOS — наменски ОС компаније Apple за iPad са мултитаскингом, Apple Pencil-ом и десктоп Safari-јем
  • Мултитаскинг укључује Split View, Slide Over (320 pt) и Stage Manager (до 8 прозора)
  • Apple Pencil се подржава кроз PencilKit са кашњењем 9–20 ms и hover API
  • Адаптивни UI користи Size Classes и UISplitViewController за све режиме
  • iPadOS SDK укључује Drag & Drop, UIKeyCommand, спољне мониторе 6K и UIScene
  • Stage Manager (M1+) омогућава прозоре који се преклапају произвољних величина
  • Тестирање обавезно на стварним уређајима у свим режимима мултитаскинга

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође