iPadOS: conceptos clave, desarrollo para iPad y Apple Pencil

Autor: IT Sectr Publicado: 2026-02-07 Tiempo de lectura: 12 min

iPadOS es el sistema operativo de Apple para iPad, separado de iOS en 2019. El desarrollo para iPad tiene en cuenta capacidades únicas: multitarea con Split View y Stage Manager, entrada de Apple Pencil de baja latencia y Safari de escritorio.

Puntos clave

  • iPadOS — una bifurcación de iOS con multitarea ampliada y soporte para Apple Pencil
  • Multitarea incluye Split View, Slide Over, Stage Manager y monitores externos
  • Apple Pencil — un lápiz con latencia de 9–20 ms, soporte para PencilKit y hover API
  • Adaptación de interfaz usa Size Classes (regular/compact) y UISplitViewController
  • Safari en iPadOS funciona en modo escritorio con gestor de descargas

¿Qué es iPadOS?

iPadOS es el sistema operativo de Apple para iPad, lanzado por primera vez en 2019 como una bifurcación de iOS (versión 13). Antes de esto, iPad usaba el mismo iOS que iPhone. La separación de iPadOS permitió a Apple introducir funciones específicas para la pantalla grande: multitarea, Safari de escritorio, Drag & Drop y soporte para monitores externos.

iPadOS mantiene compatibilidad total con aplicaciones iOS: cualquier app de iPhone se ejecuta en iPad en modo de escalado. Sin embargo, una experiencia de usuario de calidad requiere adaptación: usar Size Classes, UISplitViewController y soporte para atajos de teclado. Según Apple (WWDC 2025), el 80% del tiempo en iPad los usuarios pasan en versiones optimizadas para tabletas, no en versiones escaladas.

Historial de versiones de iPadOS

iPadOS 13 (2019) introdujo Slide Over y Split View. iPadOS 14 (2020) añadió Apple Pencil Scribble e interfaz compacta. iPadOS 15 (2021) introdujo Quick Note y mejoras en multitarea. iPadOS 16 (2022) trajo Stage Manager y soporte para monitores externos. iPadOS 17 (2023) añadió widgets interactivos y personalización de Lock Screen.

Versión iPadOSAñoInnovación clave
iPadOS 132019Slide Over, Split View, Safari de escritorio
iPadOS 142020Scribble para Apple Pencil, llamadas compactas
iPadOS 152021Quick Note, gestor de multitarea mejorado
iPadOS 162022Stage Manager, monitor externo 6K
iPadOS 172023Widgets interactivos, Lock Screen
iPadOS 182024Calculadora Math Notes, Smart Script

Arquitectura de iPadOS y diferencias con iOS

iPadOS se basa en el mismo kernel XNU y Darwin que iOS, pero usa un shell UIKit modificado adaptado para múltiples ventanas y tamaños de pantalla arbitrarios. La diferencia arquitectónica clave es el soporte de UIScene, introducido en iOS 13.

UIScene y ciclo de vida de ventanas

En iPadOS, cada ventana (incluidas las de Split View) es una UISceneSession separada con su propio ciclo de vida. A diferencia de iPhone, donde una app tiene una sola UIWindowScene, en iPad una app puede tener múltiples UIScene (varias ventanas, Slide Over, Stage Manager). SceneDelegate gestiona el estado de cada ventana de forma independiente.

swift
import UIKit
import SwiftUI

/// SceneDelegate para soporte de múltiples ventanas en 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 }

        // Creando UISplitViewController para navegación de tableta
        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
    }

    // Adaptación al cambiar el tamaño de ventana (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 con estilo .tripleColumn muestra tres columnas simultáneamente: sidebar (navegación), primary (lista) y detail (contenido). Al pasar a modo compacto (Split View con otra app), UIKit colapsa automáticamente las columnas en una pila de navegación. El desarrollador no gestiona este comportamiento manualmente — UIKit adapta el diseño a través de traitCollection.

Diferencias adicionales con iOS

iPadOS ofrece: soporte para almacenamiento externo mediante Files (USB-C/Thunderbolt), modo terminal de Safari con inspección de elementos, atajos de teclado mediante UIKeyCommand, gestor de descargas del sistema, Drag & Drop entre aplicaciones y Picture in Picture con ventana redimensionable.

Multitarea en iPad: Split View, Slide Over, Stage Manager

Multitarea es una característica clave de iPadOS que la distingue fundamentalmente de iOS. El usuario puede trabajar simultáneamente con varias aplicaciones en una misma pantalla. El desarrollador debe garantizar que la app funcione correctamente en cualquier modo multitarea.

Split View

Split View divide la pantalla del iPad entre dos aplicaciones en una proporción 50/50 o 33/67. Cada aplicación recibe su propia UISceneSession con su propia memoria y ciclo de vida. Cuando el ancho de pantalla es inferior a 600 puntos, UIKit fuerza a la app a un tamaño horizontal compacto. La aplicación debe manejar este cambio correctamente.

Slide Over

Slide Over es una ventana flotante sobre la aplicación activa (320 puntos de ancho). La aplicación en Slide Over pasa a un tamaño horizontal compacto (.compact). Es importante optimizar la interfaz para una pantalla estrecha. En Slide Over, la app se puede invocar deslizando desde el borde derecho o mediante el dock. El usuario puede arrastrar Slide Over a Split View o cerrarlo deslizando a la derecha.

Stage Manager

Stage Manager (iPadOS 16+, M1 y posteriores) es un gestor de ventanas que permite crear ventanas superpuestas de tamaños arbitrarios. Se admiten hasta 4 ventanas en la pantalla del iPad y hasta 4 en un monitor externo (8 en total). Las aplicaciones reciben el evento UISceneWillConnectNotification para cada nueva ventana. Stage Manager cambia las reglas del ciclo de vida: una ventana en segundo plano no se congela, sino que continúa funcionando con recursos limitados.

ModoN.º de ventanasTamaño de ventanaSize Class
Pantalla completa1100% de la pantallaRegular
Split View 50/50250% de la pantallaRegular (iPad Pro 12.9) o Compact
Split View 33/67233% / 67%Compact para 33%
Slide Over1 + flotante320 ptCompact
Stage Manager1–4ArbitrarioDepende del tamaño

Apple Pencil y entrada manuscrita

Apple Pencil es el lápiz activo de Apple con soporte de inclinación, presión y detección hover (iPad Pro M2+). La latencia entre el movimiento del lápiz y la visualización de la tinta es de 9–20 ms según el modelo. PencilKit es el framework principal para integrar dibujo en una aplicación.

PencilKit: Integración de dibujo

PKCanvasView proporciona una superficie de dibujo lista para usar con soporte para tinta, lápiz, marcador y borrador. PKToolPicker es el panel de selección de herramientas. El desarrollador no necesita implementar el renderizado de trazos — PencilKit lo hace por hardware con shaders Metal. Están disponibles la personalización de color, grosor y opacidad del lápiz.

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

    // Guardando dibujo en PKDrawing (formato binario)
    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 con drawingPolicy .anyInput acepta tanto Apple Pencil como el dedo. PKToolPicker ofrece al usuario la selección de herramientas sin necesidad de escribir una interfaz personalizada. PKDrawing se almacena en formato binario con alta compresión — una hora de dibujo ocupa unos 5–10 MB.

Scribble y reconocimiento de texto

Scribble (iPadOS 14+) permite escribir a mano en cualquier UITextField y UITextView. El sistema reconoce la escritura a mano en el dispositivo usando Neural Engine. El modelo ML funciona con alfabeto latino y cirílico. En iOS 17+, Scribble admite autocorrección y predicción de la siguiente palabra. El desarrollador no necesita añadir código — Scribble funciona automáticamente con cualquier campo de entrada.

Hover API para Apple Pencil Pro

A partir de iPadOS 17.4 y Apple Pencil Pro, los desarrolladores obtienen eventos hover cuando el lápiz se acerca a la pantalla (hasta 12 mm). El evento contiene posición, fuerza y azimut. Aplicaciones: vista previa del punto de contacto del pincel en apps de dibujo, vista previa de herramienta, retroalimentación visual antes del contacto.

Adaptación de la interfaz para iPad

Interfaz adaptativa es un requisito obligatorio para las aplicaciones de iPad. iPad funciona en diferentes tamaños de pantalla (8.3"–13") y modos multitarea. UIKit proporciona Size Classes (horizontal: .regular/.compact, vertical: .regular/.compact) y UISplitViewController para adaptación automática.

Size Classes y traitCollection

Size Classes son una abstracción que define el espacio disponible. En iPad en modo pantalla completa, ambos ejes son .regular. En Split View (50%), la clase horizontal puede volverse .compact en iPad mini o iPad Air. Todos los diseños populares construidos con Auto Layout y UICollectionViewCompositionalLayout se adaptan automáticamente. La adaptación personalizada se realiza sobrescribiendo traitCollectionDidChange.

swift
import SwiftUI

/// Layout adaptativo para iPad usando Size Classes
struct AdaptiveContentView: View {
    @Environment(\.horizontalSizeClass) private var horizontalSizeClass
    @Environment(\.verticalSizeClass) private var verticalSizeClass

    var body: some View {
        if horizontalSizeClass == .regular && verticalSizeClass == .regular {
            // Modo tableta: sidebar + content
            NavigationSplitView {
                SidebarView()
            } detail: {
                ContentGridView()
            }
        } else {
            // Modo compacto: navegación en pila
            NavigationStack {
                ContentGridView()
            }
        }
    }
}

/// Ejemplo de cuadrícula adaptativa: 3 columnas en iPad, 2 en 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()
        }
    }
}

En el ejemplo, NavigationSplitView se usa solo cuando horizontalSizeClass == .regular (iPad pantalla completa). NavigationStack se usa en modo compacto. El número de columnas de la cuadrícula (3 vs 2) también cambia según Size Classes. Todo se actualiza automáticamente al cambiar el modo multitarea.

UISplitViewController: Navegación de tres columnas

UIKit proporciona UISplitViewController con tres estilos: .doubleColumn (sidebar + detail), .tripleColumn (sidebar + primary + detail) y .single. En iPadOS 16+, splitViewController cambia automáticamente entre estilos al cambiar size class. El desarrollador establece viewControllers para cada columna, UIKit gestiona la visibilidad.

Frameworks y API para iPadOS

iPadOS SDK incluye todos los frameworks de iOS, así como API disponibles solo en iPad. A continuación se presentan las capacidades clave específicas de iPad.

Drag & Drop

iPadOS admite Drag & Drop entre aplicaciones y dentro de una aplicación. UIDragInteraction y UIDropInteraction permiten arrastrar texto, imágenes, archivos y objetos personalizados. Drag & Drop funciona simultáneamente con Multi-Touch: el usuario puede arrastrar varios elementos con diferentes dedos. En SwiftUI se usan los modificadores .onDrag y .onDrop.

Atajos de teclado

Al conectar un teclado (Magic Keyboard, Smart Keyboard), UIKeyCommand permite añadir atajos. En iPadOS 17+, los atajos de teclado se muestran al mantener pulsado Cmd. Apple recomienda admitir combinaciones estándar: ⌘C (copiar), ⌘V (pegar), ⌘F (buscar), ⌘N (nuevo documento).

Monitores externos

iPadOS 17+ admite monitores externos con resolución nativa de hasta 6K (Pro Display XDR). Una aplicación puede mostrar contenido en una pantalla externa a través de UIWindowScene con un identificador de sesión separado. Stage Manager permite colocar hasta 4 ventanas en un monitor externo con dimensiones redimensionables.

APIPropósitoDisponible en iOS
UISplitViewControllerNavegación multicolumna
PencilKitDibujo con Apple PencilNo
UIDragInteractionDrag & DropSí (solo en la app)
UIKeyCommandAtajos de tecladoSí (solo con teclado externo)
UISceneModo multiventanaSí (solo iPad)
UIPencilInteractionDoble toque Apple PencilNo
PDFKitVisualización y anotación de PDF

Optimización de aplicaciones para iPad

El desarrollo para iPadOS requiere un enfoque especial en UI/UX, rendimiento y pruebas. Los errores perdonables en iPhone se vuelven críticos en iPad debido a la pantalla más grande y la multitarea.

Rendimiento y memoria

iPad usa chips de la serie M (M1, M2, M4) con memoria unificada de hasta 16 GB. A pesar del potente hardware, una aplicación en Split View o Slide Over comparte recursos con otra aplicación. La presión de memoria es mayor que en iPhone. Usa compresión de imágenes, carga diferida de colecciones y perfilado mediante Instruments Allocations. iPad Pro M4 con 16 GB permite ejecutar aplicaciones de nivel de escritorio (Final Cut Pro, Logic Pro).

Diseño Keyboard First

La mayoría de los usuarios de iPad usan un teclado externo. La interfaz debe ser completamente navegable con teclado: Tab para navegar por campos, Space para activar un elemento seleccionado, Enter para confirmar. Añade soporte para Full Keyboard Access — un ajuste del sistema que permite controlar cualquier elemento de la interfaz con el teclado.

Pruebas en dispositivos reales

El simulador de iPad no reproduce completamente el comportamiento multitarea. Prueba en un dispositivo real en diferentes modos: Split View con una app pesada (Safari con 20 pestañas), Stage Manager con 4 ventanas, Slide Over con cambio rápido de aplicaciones. Verifica el escenario: el usuario abre la app desde Slide Over, la arrastra a Split View, cambia el tamaño, la cierra — la app no debe bloquearse.

objective-c
// Comprobando el modo multitarea actual en 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 activo");
    }

    if (isSlideOver) {
        NSLog(@"Modo Slide Over");
    } else if (isFullScreen) {
        NSLog(@"Modo pantalla completa");
    } else {
        NSLog(@"Modo Split View");
    }
}

Preguntas frecuentes

¿En qué se diferencia iPadOS de iOS?

iPadOS tiene multitarea ampliada (Split View, Slide Over, Stage Manager), soporte para Apple Pencil con detección hover, Safari de escritorio con gestor de descargas, monitores externos con resolución nativa y el sistema de archivos Files con acceso a unidades externas mediante USB-C.

¿Cómo añadir soporte para Split View en una aplicación?

Split View se admite automáticamente si la aplicación usa UISplitViewController. La app debe manejar correctamente los cambios de size class: al pasar a modo compacto, usar UINavigationController para la pila de pantallas. Para rechazar explícitamente Split View, indica UIRequiresFullScreen = YES en Info.plist.

¿Cómo integrar Apple Pencil en una aplicación?

Usa PencilKit: PKCanvasView para la superficie de dibujo y PKToolPicker para la selección de herramientas. Para manejo personalizado de entrada del lápiz — UIEvent con tipo .hover y UIPencilInteraction para doble toque. La latencia de Apple Pencil Pro es de 9 ms, la generación anterior — 20 ms.

¿Qué tamaños de pantalla tiene iPad?

iPad mini 8,3" (2266×1488), iPad Air 10,9" (2360×1640), iPad Pro 11" (2388×1668), iPad Pro 13" M4 (2752×2064). Usa Size Classes y Auto Layout para la adaptación. Monitores externos hasta 6K mediante Thunderbolt. Stage Manager admite hasta 8 ventanas (4 en iPad + 4 en monitor externo).

¿iPadOS admite monitores externos?

iPadOS 17+ admite monitores externos mediante USB-C/Thunderbolt con resolución nativa de hasta 6K. Una aplicación puede mostrar contenido en un monitor externo a través de un UIWindowScene separado con su propio ciclo de vida. Stage Manager admite hasta 4 ventanas en un monitor externo.

Resumen

  • iPadOS es el SO dedicado de Apple para iPad con multitarea, Apple Pencil y Safari de escritorio
  • Multitarea incluye Split View, Slide Over (320 pt) y Stage Manager (hasta 8 ventanas)
  • Apple Pencil es compatible mediante PencilKit con latencia de 9–20 ms y hover API
  • UI adaptativa usa Size Classes y UISplitViewController para todos los modos
  • iPadOS SDK incluye Drag & Drop, UIKeyCommand, monitores externos 6K y UIScene
  • Stage Manager (M1+) permite ventanas superpuestas de tamaños arbitrarios
  • Pruebas obligatorias en dispositivos reales en todos los modos multitarea

Desarrollaremos una aplicación móvil llave en mano

IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.

Discutir el proyecto

Lea también