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 мс, підтримка 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 стилем відображає три колонки одночасно: сайдбар (навігація), 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 застосунок може бути викликаний свайпом від правого краю або через док. Користувач може перетягнути 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 мс залежно від моделі. PencilKit — основний фреймворк для інтеграції малювання в застосунок.

PencilKit: інтеграція малювання

PKCanvasView надає готову поверхню для малювання з підтримкою туші, олівця, маркера та ластика. PKToolPicker — панель вибору інструментів. Розробнику не потрібно реалізовувати рендеринг штрихів — PencilKit робить це апаратно з метал-шейдерами. Доступні налаштування кольору, товщини та прозорості пера.

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 МБ.

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 мм). Подія містить позицію, силу натискання та азимут. Застосування: попередній перегляд точки дотику пензля в малювалках, прев'ю інструмента, візуальний зворотний зв'язок до дотику.

Адаптація інтерфейсу під 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

/// Адаптивний layout для 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 (сайдбар + detail), .tripleColumn (сайдбар + 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 ГБ. Незважаючи на потужне залізо, застосунок у Split View або Slide Over ділить ресурси з іншим застосунком. Memory pressure вищий, ніж на iPhone. Використовуйте стиснення зображень, lazy loading колекцій та профілювання через Instruments Allocations. iPad Pro M4 з 16 ГБ дозволяє запускати застосунки рівня десктопа (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 мс, попереднього покоління — 20 мс.

Які розміри екрана у 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 мс та hover API
  • Адаптивний UI використовує Size Classes та UISplitViewController для всіх режимів
  • iPadOS SDK включає Drag & Drop, UIKeyCommand, зовнішні монітори 6K та UIScene
  • Stage Manager (M1+) дозволяє перекривні вікна довільних розмірів
  • Тестування обов'язкове на реальних пристроях у всіх режимах багатозадачності

Ми розробимо мобільний застосунок під ключ

IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект

Читайте також