iPadOS — operating system ng Apple para sa iPad, nahiwalay mula sa iOS noong 2019. Ang pag-develop para sa iPad ay isinasaalang-alang ang mga natatanging kakayahan: multitasking Split View at Stage Manager, Apple Pencil input na may mababang latency at desktop Safari.
Mga Pangunahing
iPadOS — operating system ng Apple para sa iPad, unang inilabas noong 2019 bilang isang sangay ng iOS (bersyon 13). Bago ito, ang iPad ay gumagamit ng parehong iOS tulad ng iPhone. Ang paghihiwalay ng iPadOS ay nagbigay-daan sa Apple na magpatupad ng mga feature na partikular sa malaking screen: multitasking, desktop Safari, Drag & Drop at suporta sa mga external na monitor.
Ang iPadOS ay nagpapanatili ng buong compatibility sa mga iOS app: anumang iPhone app ay tumatakbo sa iPad sa scaling mode. Gayunpaman, para sa kalidad na karanasan ng user, kinakailangan ang pag-adapt: paggamit ng Size Classes, UISplitViewController at suporta sa mga keyboard shortcut. Ayon sa Apple (WWDC 2025), 80% ng oras sa iPad ay ginugugol ng mga user sa mga tablet na bersyon, hindi sa mga naka-scale na bersyon.
Ang iPadOS 13 (2019) ay nagdala ng Slide Over at Split View. Ang iPadOS 14 (2020) ay nagdagdag ng Apple Pencil Scribble at compact UI. Ang iPadOS 15 (2021) ay nagpakilala ng Quick Note at mga pagpapabuti sa multitasking. Ang iPadOS 16 (2022) ay nagpakilala ng Stage Manager at suporta sa external na monitor. Ang iPadOS 17 (2023) ay nagdagdag ng mga interactive na widget at Lock Screen customization.
| Bersyon ng iPadOS | Taon | Pangunahing Inobasyon |
|---|---|---|
| iPadOS 13 | 2019 | Slide Over, Split View, desktop Safari |
| iPadOS 14 | 2020 | Scribble para sa Apple Pencil, compact na tawag |
| iPadOS 15 | 2021 | Quick Note, pinahusay na multitasking manager |
| iPadOS 16 | 2022 | Stage Manager, external na monitor 6K |
| iPadOS 17 | 2023 | Mga interactive na widget, Lock Screen |
| iPadOS 18 | 2024 | Math Notes calculator, Smart Script |
iPadOS ay batay sa parehong XNU kernel at Darwin tulad ng iOS, ngunit gumagamit ng binagong UIKit shell, na inangkop para sa pagtatrabaho sa maraming window at arbitrary na laki ng screen. Ang pangunahing pagkakaiba sa arkitektura — suporta para sa UIScene, na ipinakilala sa iOS 13.
Sa iPadOS, ang bawat window (kabilang sa Split View) ay isang hiwalay na UISceneSession na may sariling lifecycle. Hindi tulad ng iPhone, kung saan ang isang app ay may isang UIWindowScene, sa iPad ang isang app ay maaaring magkaroon ng maraming UIScene (maraming window, Slide Over, Stage Manager). Ang SceneDelegate ay namamahala sa estado ng bawat window nang nakapag-iisa.
import UIKit
import SwiftUI
/// SceneDelegate para sa suporta ng maraming window sa 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 }
// Lumikha ng UISplitViewController para sa tablet navigation
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
}
// Pag-adapt kapag nagbago ang laki ng 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")")
}
}Ang UISplitViewController na may .tripleColumn style ay nagpapakita ng tatlong column nang sabay: sidebar (navigation), primary (listahan) at detail (nilalaman). Sa paglipat sa compact mode (Split View na may ibang app) awtomatikong tinutuping ng UIKit ang mga column sa isang navigation stack. Ang developer ay hindi namamahala nito nang manu-mano — ina-adapt ng UIKit ang layout sa pamamagitan ng traitCollection.
Sa iPadOS ay available: suporta para sa mga external na drive sa pamamagitan ng Files (USB-C/Thunderbolt), terminal mode ng Safari na may element inspection, keyboard shortcut sa pamamagitan ng UIKeyCommand, system download manager, Drag & Drop sa pagitan ng mga app at Picture in Picture na may nababagong laki ng window.
Multitasking — pangunahing feature ng iPadOS na nagpapakilala nito nang malaki mula sa iOS. Ang user ay maaaring magtrabaho nang sabay sa maraming app sa isang screen. Ang developer ay dapat tiyakin na ang app ay gumagana nang tama sa anumang multitasking mode.
Hinahati ng Split View ang screen ng iPad sa pagitan ng dalawang app sa ratio na 50/50 o 33/67. Ang bawat app ay tumatanggap ng sarili nitong UISceneSession na may sariling memory at lifecycle. Sa lapad ng screen na mas mababa sa 600 puntos, pinipilit ng UIKit na ilipat ang app sa compact horizontal size class. Dapat na maayos na pangasiwaan ng app ang pagbabagong ito.
Slide Over — lumulutang na window sa ibabaw ng aktibong app (lapad 320 puntos). Ang app sa Slide Over ay lumilipat sa compact horizontal size class (.compact). Mahalagang i-optimize ang UI para sa makitid na screen. Sa Slide Over, ang app ay maaaring tawagin sa pamamagitan ng pag-swipe mula sa kanang gilid o sa pamamagitan ng dock. Maaaring i-drag ng user ang Slide Over sa Split View o isara ito sa pamamagitan ng pag-swipe pakanan.
Stage Manager (iPadOS 16+, M1 at mas bago) — isang window manager na nagbibigay-daan sa paglikha ng mga overlapping na window ng arbitrary na laki. Sumusuporta sa hanggang 4 na window sa screen ng iPad at hanggang 4 sa external na monitor (kabuuang 8). Ang mga app ay tumatanggap ng kaganapang UISceneWillConnectNotification para sa bawat bagong window. Binabago ng Stage Manager ang mga panuntunan sa lifecycle: ang window sa background ay hindi na-freeze, ngunit patuloy na gumagana na may limitadong resources.
| Mode | Bilang ng window | Laki ng window | Size Class |
|---|---|---|---|
| Buong screen | 1 | 100% screen | Regular |
| Split View 50/50 | 2 | 50% screen | Regular (iPad Pro 12.9) o Compact |
| Split View 33/67 | 2 | 33% / 67% | Compact para sa 33% |
| Slide Over | 1 + lumulutang | 320 pt | Compact |
| Stage Manager | 1–4 | Arbitrary | Depende sa laki |
Apple Pencil — aktibong stylus ng Apple na may suporta sa pagkiling, presyon at hover detection (iPad Pro M2+). Ang latency sa pagitan ng paggalaw ng panulat at pagpapakita ng tinta ay 9–20 ms depende sa modelo. Ang PencilKit — pangunahing framework para sa pagsasama ng pagguhit sa isang app.
PKCanvasView ay nagbibigay ng handa na surface para sa pagguhit na may suporta sa tinta, lapis, marker at pambura. PKToolPicker — panel para sa pagpili ng tool. Ang developer ay hindi kailangang magpatupad ng rendering ng mga stroke — ginagawa ito ng PencilKit nang hardware gamit ang Metal shaders. Available ang pag-set ng kulay, kapal at transparency ng panulat.
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)
}
// Pag-save ng drawing sa PKDrawing (binary format)
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 na may drawingPolicy .anyInput ay tumatanggap ng parehong Apple Pencil at daliri. Ang PKToolPicker ay nagbibigay sa user ng pagpili ng mga tool nang hindi kinakailangang magsulat ng sariling UI. Ang PKDrawing ay iniimbak sa binary format na may mataas na antas ng compression — isang oras ng pagguhit ay tumatagal ng mga 5–10 MB.
Scribble (iPadOS 14+) ay nagbibigay-daan sa pagsusulat ng kamay sa anumang UITextField at UITextView. Kinikilala ng system ang sulat-kamay sa device gamit ang Neural Engine. Ang ML model ay gumagana sa Latin at Cyrillic script. Sa iOS 17+, sinusuportahan ng Scribble ang auto-correction at pag-predict ng susunod na salita. Ang developer ay hindi kailangang magdagdag ng code — awtomatikong gumagana ang Scribble kapag may input field.
Mula sa iPadOS 17.4 at Apple Pencil Pro, ang mga developer ay tumatanggap ng mga hover event kapag lumalapit ang panulat sa screen (hanggang 12 mm). Ang event ay naglalaman ng posisyon, lakas ng presyon at azimuth. Application: preview ng touch point ng brush sa drawing apps, preview ng tool, visual feedback bago ang pagpindot.
Adaptive interface — isang mandatoryong kinakailangan para sa mga iPad app. Ang iPad ay gumagana sa iba't ibang laki ng screen (8.3″–13″) at multitasking mode. Ang UIKit ay nagbibigay ng Size Classes (horizontal: .regular/.compact, vertical: .regular/.compact) at UISplitViewController para sa awtomatikong pag-adapt.
Size Classes — isang abstraction na tumutukoy sa available na espasyo. Sa iPad sa full screen mode, parehong axis ay .regular. Sa Split View (50%), ang horizontal class ay maaaring maging .compact sa iPad mini o iPad Air. Lahat ng sikat na layout na binuo sa Auto Layout at UICollectionViewCompositionalLayout ay awtomatikong uma-adapt. Ang custom na pag-adapt ay ginagawa sa pamamagitan ng pag-override ng traitCollectionDidChange.
import SwiftUI
/// Adaptive layout para sa iPad gamit ang Size Classes
struct AdaptiveContentView: View {
@Environment(\.horizontalSizeClass) private var horizontalSizeClass
@Environment(\.verticalSizeClass) private var verticalSizeClass
var body: some View {
if horizontalSizeClass == .regular && verticalSizeClass == .regular {
// Tablet mode: sidebar + content
NavigationSplitView {
SidebarView()
} detail: {
ContentGridView()
}
} else {
// Compact mode: stack navigation
NavigationStack {
ContentGridView()
}
}
}
}
/// Halimbawa ng adaptive grid: 3 column sa iPad, 2 sa 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()
}
}
}Sa halimbawa, ang NavigationSplitView ay ginagamit lamang kapag horizontalSizeClass == .regular (iPad full screen). Ang NavigationStack ay inilalapat sa compact mode. Ang bilang ng mga column ng grid (3 vs 2) ay nagbabago rin depende sa Size Classes. Lahat ay awtomatikong nag-a-update kapag nagbago ang multitasking mode.
Ang UIKit ay nagbibigay ng UISplitViewController na may tatlong style: .doubleColumn (sidebar + detail), .tripleColumn (sidebar + primary + detail) at .single. Sa iPadOS 16+, ang splitViewController ay awtomatikong lumilipat sa pagitan ng mga style kapag nagbago ang size class. Itinatakda ng developer ang viewControllers para sa bawat column, pinamahalaan ng UIKit ang visibility.
iPadOS SDK ay kinabibilangan ng lahat ng iOS framework pati na rin ang mga API na available lamang sa iPad. Nasa ibaba ang mga pangunahing kakayahan na tiyak sa iPad.
Sinusuportahan ng iPadOS ang Drag & Drop sa pagitan ng mga app at sa loob ng app. Ang UIDragInteraction at UIDropInteraction ay nagbibigay-daan sa pag-drag ng text, mga imahe, file at custom na object. Ang Drag & Drop ay gumagana nang sabay sa Multi-Touch: ang user ay maaaring mag-drag ng maraming elemento gamit ang iba't ibang daliri. Sa SwiftUI, ginagamit ang .onDrag at .onDrop modifiers.
Kapag nagkokonekta ng keyboard (Magic Keyboard, Smart Keyboard) ang UIKeyCommand ay nagbibigay-daan sa pagdagdag ng mga shortcut. Sa iPadOS 17+, ang mga keyboard shortcut ay ipinapakita sa matagal na pagpindot ng Cmd. Inirerekomenda ng Apple na suportahan ang mga karaniwang kumbinasyon: ⌘C (kopyahin), ⌘V (i-paste), ⌘F (hanapin), ⌘N (bagong dokumento).
Sinusuportahan ng iPadOS 17+ ang mga external na monitor na may native na resolution hanggang 6K (Pro Display XDR). Ang app ay maaaring magpakita ng content sa external na screen sa pamamagitan ng UIWindowScene na may hiwalay na session ID. Ang Stage Manager ay nagbibigay-daan sa paglalagay ng hanggang 4 na window na may nababagong laki sa external na monitor.
| API | Layunin | Available sa iOS |
|---|---|---|
| UISplitViewController | Multi-column navigation | Oo |
| PencilKit | Pagguhit Apple Pencil | Hindi |
| UIDragInteraction | Drag & Drop | Oo (sa loob lamang ng app) |
| UIKeyCommand | Mga keyboard shortcut | Oo (lamang sa external na keyboard) |
| UIScene | Multi-window mode | Oo (iPad lamang) |
| UIPencilInteraction | Double tap Apple Pencil | Hindi |
| PDFKit | Pagtingin at annotation PDF | Oo |
Ang pag-develop para sa iPadOS ay nangangailangan ng espesyal na diskarte sa UI/UX, performance at pagsubok. Ang mga pagkakamali na mapapatawad sa iPhone ay nagiging kritikal sa iPad dahil sa mas malaking screen at multitasking.
Ang iPad ay gumagamit ng M-series chips (M1, M2, M4) na may unified memory hanggang 16 GB. Sa kabila ng malakas na hardware, ang app sa Split View o Slide Over ay nagbabahagi ng resources sa ibang app. Presyon ng memorya ay mas mataas kaysa sa iPhone. Gumamit ng image compression, lazy loading ng collections at profiling sa pamamagitan ng Instruments Allocations. Ang iPad Pro M4 na may 16 GB ay nagbibigay-daan sa pagpapatakbo ng mga app sa antas ng desktop (Final Cut Pro, Logic Pro).
Karamihan ng mga user ng iPad ay gumagamit ng external na keyboard. Ang interface ay dapat na ganap na kontrolado mula sa keyboard: Tab para sa navigation sa pagitan ng fields, Space para i-activate ang napiling elemento, Enter para kumpirmahin. Magdagdag ng suporta para sa Full Keyboard Access — system setting na nagbibigay-daan sa pagkontrol ng anumang UI element mula sa keyboard.
Ang iPad simulator ay hindi ganap na nauulit ang gawi ng multitasking. Subukan sa totoong device sa iba't ibang mode: Split View na may mabigat na app (Safari na may 20 tab), Stage Manager na may 4 na window, Slide Over na may mabilis na pagpapalit ng app. Suriin ang scenario: bubuksan ng user ang app mula sa Slide Over, i-drag ito sa Split View, baguhin ang laki, isara — ang app ay hindi dapat mag-crash.
// Pagsusuri ng kasalukuyang multitasking mode sa 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 ay aktibo");
}
if (isSlideOver) {
NSLog(@"Slide Over mode");
} else if (isFullScreen) {
NSLog(@"Full screen mode");
} else {
NSLog(@"Split View mode");
}
}Mga Madalas Itanong
Ang iPadOS ay may pinahusay na multitasking (Split View, Slide Over, Stage Manager), suporta sa Apple Pencil na may hover detection, desktop Safari na may download manager, mga external na monitor na may native na resolution at Files file system na may access sa external na drive sa pamamagitan ng USB-C.
Ang Split View ay awtomatikong sinusuportahan kung ang app ay gumagamit ng UISplitViewController. Dapat na maayos na pangasiwaan ng app ang mga pagbabago sa size class: sa paglipat sa compact mode, gamitin ang UINavigationController para sa stack ng mga screen. Para sa tahasang pagtanggi sa Split View, itakda ang UIRequiresFullScreen = YES sa Info.plist.
Gumamit ng PencilKit: PKCanvasView para sa drawing surface at PKToolPicker para sa pagpili ng tool. Para sa custom na paghawak ng pagpindot ng panulat — UIEvent na may .hover type at UIPencilInteraction para sa double tap. Latency ng Apple Pencil Pro — 9 ms, nakaraang henerasyon — 20 ms.
iPad mini 8.3″ (2266×1488), iPad Air 10.9″ (2360×1640), iPad Pro 11″ (2388×1668), iPad Pro 13″ M4 (2752×2064). Gumamit ng Size Classes at Auto Layout para sa pag-adapt. Mga external na monitor hanggang 6K sa pamamagitan ng Thunderbolt. Sinusuportahan ng Stage Manager ang hanggang 8 window (4 sa iPad + 4 sa external na monitor).
Sinusuportahan ng iPadOS 17+ ang mga external na monitor sa pamamagitan ng USB-C/Thunderbolt na may native na resolution hanggang 6K. Ang app ay maaaring magpakita ng content sa external na monitor sa pamamagitan ng hiwalay na UIWindowScene na may sariling lifecycle. Sinusuportahan ng Stage Manager ang hanggang 4 na window sa external na monitor.
Buod
Gagawa kami ng mobile application na turnkey
Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.
Basahin din