iPadOS — sistem operasi Apple untuk iPad, dipisahkan dari iOS pada tahun 2019. Pengembangan untuk iPad mempertimbangkan kemampuan unik: multitasking Split View dan Stage Manager, input Apple Pencil dengan latensi rendah dan Safari desktop.
Poin Utama
iPadOS — sistem operasi Apple untuk iPad, pertama kali dirilis pada tahun 2019 sebagai cabang dari iOS (versi 13). Sebelumnya, iPad menggunakan iOS yang sama dengan iPhone. Pemisahan iPadOS memungkinkan Apple untuk menerapkan fitur-fitur khusus layar besar: multitasking, Safari desktop, Drag & Drop dan dukungan monitor eksternal.
iPadOS mempertahankan kompatibilitas penuh dengan aplikasi iOS: aplikasi iPhone apa pun berjalan di iPad dalam mode penskalaan. Namun, untuk pengalaman pengguna yang berkualitas, diperlukan adaptasi: penggunaan Size Classes, UISplitViewController dan dukungan pintasan keyboard. Menurut Apple (WWDC 2025), 80% waktu di iPad dihabiskan pengguna dalam versi tablet, bukan versi yang diskalakan.
iPadOS 13 (2019) menghadirkan Slide Over dan Split View. iPadOS 14 (2020) menambahkan Apple Pencil Scribble dan UI kompak. iPadOS 15 (2021) memperkenalkan Quick Note dan peningkatan multitasking. iPadOS 16 (2022) memperkenalkan Stage Manager dan dukungan monitor eksternal. iPadOS 17 (2023) menambahkan widget interaktif dan kustomisasi Lock Screen.
| Versi iPadOS | Tahun | Inovasi Kunci |
|---|---|---|
| iPadOS 13 | 2019 | Slide Over, Split View, Safari desktop |
| iPadOS 14 | 2020 | Scribble untuk Apple Pencil, panggilan kompak |
| iPadOS 15 | 2021 | Quick Note, pengelola multitasking yang ditingkatkan |
| iPadOS 16 | 2022 | Stage Manager, monitor eksternal 6K |
| iPadOS 17 | 2023 | Widget interaktif, Lock Screen |
| iPadOS 18 | 2024 | Kalkulator Math Notes, Smart Script |
iPadOS didasarkan pada kernel XNU dan Darwin yang sama dengan iOS, tetapi menggunakan shell UIKit yang dimodifikasi, disesuaikan untuk bekerja dengan banyak jendela dan ukuran layar arbitrer. Perbedaan arsitektur kunci — dukungan untuk UIScene, diperkenalkan di iOS 13.
Di iPadOS, setiap jendela (termasuk di Split View) adalah UISceneSession terpisah dengan siklus hidupnya sendiri. Tidak seperti iPhone, di mana satu aplikasi memiliki satu UIWindowScene, di iPad satu aplikasi dapat memiliki beberapa UIScene (beberapa jendela, Slide Over, Stage Manager). SceneDelegate mengelola status setiap jendela secara independen.
import UIKit
import SwiftUI
/// SceneDelegate untuk dukungan banyak jendela di 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 }
// Membuat UISplitViewController untuk navigasi tablet
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
}
// Adaptasi saat perubahan ukuran jendela (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 dengan gaya .tripleColumn menampilkan tiga kolom secara bersamaan: sidebar (navigasi), primary (daftar) dan detail (konten). Saat beralih ke mode kompak (Split View dengan aplikasi lain) UIKit secara otomatis melipat kolom ke dalam tumpukan navigasi. Pengembang tidak mengelola perilaku ini secara manual — UIKit menyesuaikan tata letak melalui traitCollection.
Di iPadOS tersedia: dukungan untuk drive eksternal melalui Files (USB-C/Thunderbolt), mode terminal Safari dengan inspeksi elemen, pintasan keyboard melalui UIKeyCommand, pengelola unduhan sistem, Drag & Drop antar aplikasi dan Picture in Picture dengan ukuran jendela yang dapat diubah.
Multitasking — fitur kunci iPadOS yang membedakannya secara fundamental dari iOS. Pengguna dapat bekerja dengan beberapa aplikasi secara bersamaan pada satu layar. Pengembang harus menjamin bahwa aplikasi berfungsi dengan benar dalam mode multitasking apa pun.
Split View membagi layar iPad antara dua aplikasi dalam rasio 50/50 atau 33/67. Setiap aplikasi mendapatkan UISceneSession sendiri dengan memori dan siklus hidup sendiri. Pada lebar layar kurang dari 600 titik, UIKit secara paksa mengalihkan aplikasi ke size class horizontal kompak. Aplikasi harus menangani perubahan ini dengan benar.
Slide Over — jendela mengambang di atas aplikasi aktif (lebar 320 titik). Aplikasi di Slide Over beralih ke size class horizontal kompak (.compact). Penting untuk mengoptimalkan UI untuk layar sempit. Di Slide Over, aplikasi dapat dipanggil dengan menggeser dari tepi kanan atau melalui dock. Pengguna dapat menyeret Slide Over ke Split View atau menutupnya dengan menggeser ke kanan.
Stage Manager (iPadOS 16+, M1 dan lebih baru) — manajer jendela yang memungkinkan pembuatan jendela tumpang tindih dengan ukuran arbitrer. Mendukung hingga 4 jendela di layar iPad dan hingga 4 di monitor eksternal (total 8). Aplikasi menerima acara UISceneWillConnectNotification untuk setiap jendela baru. Stage Manager mengubah aturan siklus hidup: jendela di latar belakang tidak dibekukan, tetapi terus bekerja dengan sumber daya terbatas.
| Mode | Jumlah jendela | Ukuran jendela | Size Class |
|---|---|---|---|
| Layar penuh | 1 | 100% layar | Regular |
| Split View 50/50 | 2 | 50% layar | Regular (iPad Pro 12.9) atau Compact |
| Split View 33/67 | 2 | 33% / 67% | Compact untuk 33% |
| Slide Over | 1 + mengambang | 320 pt | Compact |
| Stage Manager | 1–4 | Arbitrer | Tergantung ukuran |
Apple Pencil — stylus aktif Apple dengan dukungan kemiringan, tekanan dan deteksi hover (iPad Pro M2+). Latensi antara gerakan pena dan tampilan tinta adalah 9–20 ms tergantung model. PencilKit — framework utama untuk integrasi menggambar dalam aplikasi.
PKCanvasView menyediakan permukaan menggambar siap pakai dengan dukungan tinta, pensil, spidol dan penghapus. PKToolPicker — panel pemilihan alat. Pengembang tidak perlu mengimplementasikan rendering goresan — PencilKit melakukannya secara hardware dengan shader Metal. Penyesuaian warna, ketebalan dan transparansi pena tersedia.
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)
}
// Menyimpan gambar di PKDrawing (format biner)
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 dengan drawingPolicy .anyInput menerima baik Apple Pencil maupun jari. PKToolPicker memberikan pengguna pilihan alat tanpa perlu menulis UI sendiri. PKDrawing disimpan dalam format biner dengan tingkat kompresi tinggi — satu jam menggambar memakan sekitar 5–10 MB.
Scribble (iPadOS 14+) memungkinkan menulis tangan di UITextField dan UITextView mana pun. Sistem mengenali tulisan tangan pada perangkat menggunakan Neural Engine. Model ML bekerja dengan aksara Latin dan Sirilik. Di iOS 17+, Scribble mendukung koreksi otomatis dan prediksi kata berikutnya. Pengembang tidak perlu menambahkan kode — Scribble bekerja secara otomatis saat ada bidang input.
Mulai iPadOS 17.4 dan Apple Pencil Pro, pengembang menerima acara hover saat pena mendekati layar (hingga 12 mm). Acara berisi posisi, kekuatan tekanan dan azimuth. Penerapan: pratinjau titik sentuh kuas di aplikasi menggambar, pratinjau alat, umpan balik visual sebelum sentuhan.
Antarmuka adaptif — persyaratan wajib untuk aplikasi iPad. iPad beroperasi dalam berbagai ukuran layar (8.3″–13″) dan mode multitasking. UIKit menyediakan Size Classes (horizontal: .regular/.compact, vertical: .regular/.compact) dan UISplitViewController untuk adaptasi otomatis.
Size Classes — abstraksi yang menentukan ruang yang tersedia. Di iPad dalam mode layar penuh, kedua sumbu adalah .regular. Di Split View (50%), kelas horizontal bisa menjadi .compact di iPad mini atau iPad Air. Semua tata letak populer yang dibangun di atas Auto Layout dan UICollectionViewCompositionalLayout beradaptasi secara otomatis. Adaptasi kustom dilakukan dengan menimpa traitCollectionDidChange.
import SwiftUI
/// Tata letak adaptif untuk iPad menggunakan Size Classes
struct AdaptiveContentView: View {
@Environment(\.horizontalSizeClass) private var horizontalSizeClass
@Environment(\.verticalSizeClass) private var verticalSizeClass
var body: some View {
if horizontalSizeClass == .regular && verticalSizeClass == .regular {
// Mode tablet: sidebar + content
NavigationSplitView {
SidebarView()
} detail: {
ContentGridView()
}
} else {
// Mode kompak: navigasi tumpukan
NavigationStack {
ContentGridView()
}
}
}
}
/// Contoh grid adaptif: 3 kolom di iPad, 2 di 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()
}
}
}Dalam contoh, NavigationSplitView hanya digunakan ketika horizontalSizeClass == .regular (iPad layar penuh). NavigationStack diterapkan dalam mode kompak. Jumlah kolom grid (3 vs 2) juga berubah tergantung Size Classes. Semua diperbarui secara otomatis saat mode multitasking berubah.
UIKit menyediakan UISplitViewController dengan tiga gaya: .doubleColumn (sidebar + detail), .tripleColumn (sidebar + primary + detail) dan .single. Di iPadOS 16+, splitViewController secara otomatis beralih antar gaya saat size class berubah. Pengembang mengatur viewControllers untuk setiap kolom, UIKit mengelola visibilitas.
iPadOS SDK mencakup semua framework iOS, serta API yang hanya tersedia di iPad. Di bawah ini adalah kemampuan khusus iPad utama.
iPadOS mendukung Drag & Drop antar aplikasi dan di dalam aplikasi. UIDragInteraction dan UIDropInteraction memungkinkan menyeret teks, gambar, file dan objek kustom. Drag & Drop bekerja bersamaan dengan Multi-Touch: pengguna dapat menyeret beberapa elemen dengan jari yang berbeda. Di SwiftUI, modifier .onDrag dan .onDrop digunakan.
Saat menghubungkan keyboard (Magic Keyboard, Smart Keyboard) UIKeyCommand memungkinkan menambahkan pintasan. Di iPadOS 17+, pintasan keyboard ditampilkan saat menekan lama Cmd. Apple merekomendasikan mendukung kombinasi standar: ⌘C (salin), ⌘V (tempel), ⌘F (cari), ⌘N (dokumen baru).
iPadOS 17+ mendukung monitor eksternal dengan resolusi asli hingga 6K (Pro Display XDR). Aplikasi dapat menampilkan konten di layar eksternal melalui UIWindowScene dengan ID sesi terpisah. Stage Manager memungkinkan menempatkan hingga 4 jendela dengan ukuran yang dapat diubah di monitor eksternal.
| API | Tujuan | Tersedia di iOS |
|---|---|---|
| UISplitViewController | Navigasi multi-kolom | Ya |
| PencilKit | Menggambar Apple Pencil | Tidak |
| UIDragInteraction | Drag & Drop | Ya (hanya dalam aplikasi) |
| UIKeyCommand | Pintasan keyboard | Ya (hanya dengan keyboard eksternal) |
| UIScene | Mode multi-jendela | Ya (hanya iPad) |
| UIPencilInteraction | Ketuk dua kali Apple Pencil | Tidak |
| PDFKit | Lihat dan anotasi PDF | Ya |
Pengembangan untuk iPadOS memerlukan pendekatan khusus terhadap UI/UX, kinerja dan pengujian. Kesalahan yang bisa dimaafkan di iPhone menjadi kritis di iPad karena layar yang lebih besar dan multitasking.
iPad menggunakan chip seri M (M1, M2, M4) dengan memori terpadu hingga 16 GB. Meskipun perangkat kerasnya kuat, aplikasi di Split View atau Slide Over berbagi sumber daya dengan aplikasi lain. Tekanan memori lebih tinggi daripada di iPhone. Gunakan kompresi gambar, lazy loading koleksi dan profiling melalui Instruments Allocations. iPad Pro M4 dengan 16 GB memungkinkan menjalankan aplikasi tingkat desktop (Final Cut Pro, Logic Pro).
Sebagian besar pengguna iPad menggunakan keyboard eksternal. Antarmuka harus sepenuhnya dapat dikontrol dari keyboard: Tab untuk navigasi antar bidang, Space untuk mengaktifkan elemen yang dipilih, Enter untuk konfirmasi. Tambahkan dukungan untuk Full Keyboard Access — pengaturan sistem yang memungkinkan mengontrol elemen UI apa pun dari keyboard.
Simulator iPad tidak sepenuhnya mereproduksi perilaku multitasking. Uji pada perangkat nyata dalam berbagai mode: Split View dengan aplikasi berat (Safari dengan 20 tab), Stage Manager dengan 4 jendela, Slide Over dengan pergantian aplikasi cepat. Periksa skenario: pengguna membuka aplikasi dari Slide Over, menyeretnya ke Split View, mengubah ukuran, menutup — aplikasi tidak boleh crash.
// Memeriksa mode multitasking saat ini di 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 aktif");
}
if (isSlideOver) {
NSLog(@"Mode Slide Over");
} else if (isFullScreen) {
NSLog(@"Mode layar penuh");
} else {
NSLog(@"Mode Split View");
}
}Pertanyaan yang Sering Diajukan
iPadOS memiliki multitasking yang diperluas (Split View, Slide Over, Stage Manager), dukungan Apple Pencil dengan deteksi hover, Safari desktop dengan pengelola unduhan, monitor eksternal dengan resolusi asli dan sistem file Files dengan akses ke drive eksternal melalui USB-C.
Split View didukung secara otomatis jika aplikasi menggunakan UISplitViewController. Aplikasi harus menangani perubahan size class dengan benar: saat beralih ke mode kompak, gunakan UINavigationController untuk tumpukan layar. Untuk menolak Split View secara eksplisit, atur UIRequiresFullScreen = YES di Info.plist.
Gunakan PencilKit: PKCanvasView untuk permukaan menggambar dan PKToolPicker untuk pemilihan alat. Untuk penanganan sentuhan pena kustom — UIEvent dengan tipe .hover dan UIPencilInteraction untuk ketuk dua kali. Latensi Apple Pencil Pro — 9 ms, generasi sebelumnya — 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). Gunakan Size Classes dan Auto Layout untuk adaptasi. Monitor eksternal hingga 6K melalui Thunderbolt. Stage Manager mendukung hingga 8 jendela (4 di iPad + 4 di monitor eksternal).
iPadOS 17+ mendukung monitor eksternal melalui USB-C/Thunderbolt dengan resolusi asli hingga 6K. Aplikasi dapat menampilkan konten di monitor eksternal melalui UIWindowScene terpisah dengan siklus hidupnya sendiri. Stage Manager mendukung hingga 4 jendela di monitor eksternal.
Ringkasan
Kami akan mengembangkan aplikasi seluler turnkey
IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.
Baca juga