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
  • Multitasking включает 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 и поддержка клавиатурных shortcut'ов. По данным 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 и улучшения multitasking. iPadOS 16 (2022) представил Stage Manager и поддержку внешних мониторов. iPadOS 17 (2023) добавил интерактивные виджеты и Lock Screen кастомизацию.

Версия iPadOSГодКлючевое нововведение
iPadOS 132019Slide Over, Split View, десктопный Safari
iPadOS 142020Scribble для Apple Pencil, компактные звонки
iPadOS 152021Quick Note, улучшенный multitasking менеджер
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 с инспекцией элементов, клавиатурные shortcut'ы через UIKeyCommand, системный менеджер загрузок, Drag & Drop между приложениями и Picture in Picture с изменяемым размером окна.

Multitasking на iPad: Split View, Slide Over, Stage Manager

Multitasking — ключевая особенность 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 (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 модификаторы.

Клавиатурные shortcut'ы

При подключении клавиатуры (Magic Keyboard, Smart Keyboard) UIKeyCommand позволяет добавить хоткеи. В iPadOS 17+ клавиатурные shortcut'ы отображаются при долгом нажатии 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Клавиатурные shortcut'ыДа (только с внешней клавиатурой)
UISceneМультиоконный режимДа (только iPad)
UIPencilInteractionДвойной тап Apple PencilНет
PDFKitПросмотр и аннотирование PDFДа

Оптимизация приложений под iPad

Разработка под iPadOS требует особого подхода к UI/UX, производительности и тестированию. Ошибки, простительные на iPhone, становятся критическими на iPad из-за большего экрана и многозадачности.

Производительность и память

iPad использует M-серию чипов (M1, M2, M4) с унифицированной памятью до 16 ГБ. Несмотря на мощное железо, приложение в Split View или Slide Overs делит ресурсы с другим приложением. 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
  • Multitasking включает 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 года. Мы проконсультируем вас и предложим наилучшее решение.

Обсудить проект

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