iPadOS — Apple-ning iPad uchun operatsion tizimi, 2019-yilda iOS-dan ajratilgan. iPad uchun dasturlash noyob imkoniyatlarni hisobga oladi: Split View va Stage Manager ko'p vazifaliligi, past kechikishli Apple Pencil kiritishi va desktop Safari.
Asosiy
iPadOS — Apple-ning iPad uchun operatsion tizimi, birinchi marta 2019-yilda iOS (13-versiya) tarmog'i sifatida chiqarilgan. Bungacha iPad iPhone bilan bir xil iOS dan foydalanar edi. iPadOS ning ajratilishi Apple ga katta ekran uchun xos funksiyalarni joriy etishga imkon berdi: ko'p vazifalilik, desktop Safari, Drag & Drop va tashqi monitorlarni qo'llab-quvvatlash.
iPadOS iOS ilovalari bilan to'liq moslikni saqlaydi: har qanday iPhone ilovasi iPad da masshtablash rejimida ishlaydi. Biroq, sifatli foydalanuvchi tajribasi uchun moslashuv talab qilinadi: Size Classes, UISplitViewController va klaviatura yorliqlarini qo'llab-quvvatlash. Apple ma'lumotlariga ko'ra (WWDC 2025), iPad dagi vaqtning 80% foydalanuvchilar planshet versiyalarida o'tkazadi, masshtablangan versiyalarda emas.
iPadOS 13 (2019) Slide Over va Split View ni olib keldi. iPadOS 14 (2020) Apple Pencil Scribble va ixcham UI ni qo'shdi. iPadOS 15 (2021) Quick Note va multitasking yaxshilanishlarini taqdim etdi. iPadOS 16 (2022) Stage Manager va tashqi monitorlarni qo'llab-quvvatlashni taqdim etdi. iPadOS 17 (2023) interaktiv vidjetlar va Lock Screen sozlashni qo'shdi.
| iPadOS versiyasi | Yil | Asosiy yangilik |
|---|---|---|
| iPadOS 13 | 2019 | Slide Over, Split View, desktop Safari |
| iPadOS 14 | 2020 | Apple Pencil uchun Scribble, ixcham qo'ng'iroqlar |
| iPadOS 15 | 2021 | Quick Note, takomillashtirilgan multitasking menejeri |
| iPadOS 16 | 2022 | Stage Manager, 6K tashqi monitor |
| iPadOS 17 | 2023 | Interaktiv vidjetlar, Lock Screen |
| iPadOS 18 | 2024 | Math Notes kalkulyatori, Smart Script |
iPadOS iOS bilan bir xil XNU yadrosi va Darwin ga asoslangan, biroq bir nechta oyna va ixtiyoriy ekran o'lchamlari bilan ishlash uchun moslashtirilgan o'zgartirilgan UIKit qobig'idan foydalanadi. Asosiy arxitektura farqi — iOS 13 da joriy etilgan UIScene qo'llab-quvvatlashi.
iPadOS da har bir oyna (shu jumladan Split View dagi) o'z hayot sikliga ega alohida UISceneSession dir. iPhone dan farqli o'laroq, bitta ilova bitta UIWindowScene ga ega, iPad da esa bitta ilova bir nechta UIScene ga ega bo'lishi mumkin (bir nechta oynalar, Slide Over, Stage Manager). SceneDelegate har bir oyna holatini mustaqil boshqaradi.
import UIKit
import SwiftUI
/// iPadOS da bir nechta oynalarni qo'llab-quvvatlash uchun SceneDelegate
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 }
// Planshet navigatsiyasi uchun UISplitViewController yaratamiz
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
}
// Oyna o'lchami o'zgarganda moslashish (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")")
}
}.tripleColumn uslubi bilan UISplitViewController bir vaqtning o'zida uchta ustunni ko'rsatadi: sidebar (navigatsiya), primary (ro'yxat) va detail (mazmun). Kompakt rejimga o'tishda (boshqa ilova bilan Split View) UIKit avtomatik ravishda ustunlarni navigatsiya stekiga yig'adi. Dasturchi bu xatti-harakatni qo'lda boshqarmaydi — UIKit tartibni traitCollection orqali moslashtiradi.
iPadOS da mavjud: Files orqali tashqi disklarni qo'llab-quvvatlash (USB-C/Thunderbolt), elementlarni tekshirish bilan Safari terminal rejimi, UIKeyCommand orqali klaviatura yorliqlari, tizim yuklab olish menejeri, ilovalar o'rtasida Drag & Drop va o'zgaruvchan oyna o'lchamli Picture in Picture.
Multitasking — iPadOS ning iOS dan tubdan farq qiluvchi asosiy xususiyatidir. Foydalanuvchi bir ekranda bir nechta ilovalar bilan bir vaqtda ishlashi mumkin. Dasturchi ilova har qanday ko'p vazifalilik rejimida to'g'ri ishlashini kafolatlagan bo'lishi kerak.
Split View iPad ekranini ikki ilova o'rtasida 50/50 yoki 33/67 nisbatda bo'ladi. Har bir ilova o'z xotirasi va hayot sikli bilan o'z UISceneSession ni oladi. Ekran kengligi 600 nuqtadan kam bo'lganda, UIKit majburiy ravishda ilovani ixcham gorizontal size class ga o'tkazadi. Ilova bu o'zgarishni to'g'ri boshqarishi kerak.
Slide Over — faol ilova ustidagi suzuvchi oyna (kengligi 320 nuqta). Slide Over dagi ilova ixcham gorizontal size class (.compact) ga o'tadi. Tor ekran uchun UI ni optimallashtirish muhim. Slide Over da ilova o'ng chekkadan surish yoki dok orqali chaqirilishi mumkin. Foydalanuvchi Slide Over ni Split View ga tortib yoki o'ngga surib yopishi mumkin.
Stage Manager (iPadOS 16+, M1 va undan yangilari) — ixtiyoriy o'lchamdagi bir-birini yopib turuvchi oynalarni yaratishga imkon beruvchi oyna menejeri. iPad ekranida 4 tagacha va tashqi monitorlarda 4 tagacha oynani qo'llab-quvvatlaydi (jami 8). Ilovalar har bir yangi oyna uchun UISceneWillConnectNotification hodisasini oladi. Stage Manager hayot sikli qoidalarini o'zgartiradi: fondagi oyna muzlatilmaydi, balki cheklangan resurslar bilan ishlashda davom etadi.
| Rejim | Oyna soni | Oyna o'lchami | Size Class |
|---|---|---|---|
| To'liq ekran | 1 | 100% ekran | Regular |
| Split View 50/50 | 2 | 50% ekran | Regular (iPad Pro 12.9) yoki Compact |
| Split View 33/67 | 2 | 33% / 67% | 33% uchun Compact |
| Slide Over | 1 + suzuvchi | 320 pt | Compact |
| Stage Manager | 1–4 | Ixtiyoriy | O'lchamga bog'liq |
Apple Pencil — egilish, bosim va hover aniqlashni qo'llab-quvvatlovchi faol Apple qalami (iPad Pro M2+). Qalam harakati va siyoh ko'rsatilishi o'rtasidagi kechikish modelga qarab 9–20 ms ni tashkil qiladi. PencilKit — ilovaga rasm chizish integratsiyasi uchun asosiy freymvork.
PKCanvasView siyoh, qalam, marker va o'chirg'ich bilan tayyor rasm chizish yuzasini taqdim etadi. PKToolPicker — asboblarni tanlash paneli. Dasturchi chizishlarni render qilishni amalga oshirishi shart emas — PencilKit buni Metal shaderlari bilan apparat darajasida bajaradi. Rang, qalinlik va qalam shaffofligini sozlash mavjud.
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)
}
// Chizmani PKDrawing da saqlash (ikkilik 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 drawingPolicy .anyInput bilan Apple Pencil ni ham, barmoqni ham qabul qiladi. PKToolPicker foydalanuvchiga o'z UI ni yozmasdan asboblarni tanlash imkonini beradi. PKDrawing yuqori siqilish darajasi bilan ikkilik formatda saqlanadi — bir soatlik chizish taxminan 5–10 MB ni egallaydi.
Scribble (iPadOS 14+) har qanday UITextField va UITextView da qo'lda yozish imkonini beradi. Tizim Neural Engine yordamida qurilmada qo'lyozmani taniydi. ML modeli lotin va kirill alifbosi bilan ishlaydi. iOS 17+ da Scribble avtomatik tuzatish va keyingi so'zni bashorat qilishni qo'llab-quvvatlaydi. Dasturchi kod qo'shishi shart emas — Scribble kiritish maydoni mavjud bo'lganda avtomatik ishlaydi.
iPadOS 17.4 va Apple Pencil Pro dan boshlab, dasturchilar qalam ekranga yaqinlashganda hover hodisalarini oladi (12 mm gacha). Hodisa o'rin, bosim kuchi va azimutni o'z ichiga oladi. Qo'llanilishi: rasm chizish dasturlarida cho'tka teginish nuqtasini oldindan ko'rish, asbobni oldindan ko'rish, teginishdan oldin vizual teskari aloqa.
Moslashuvchan interfeys — iPad ilovalari uchun majburiy talab. iPad turli ekran o'lchamlarida (8.3″–13″) va ko'p vazifalilik rejimlarida ishlaydi. UIKit avtomatik moslashish uchun Size Classes (horizontal: .regular/.compact, vertical: .regular/.compact) va UISplitViewController ni taqdim etadi.
Size Classes — mavjud bo'shliqni aniqlovchi abstraktsiyadir. To'liq ekran rejimida iPad da ikkala o'q — .regular. Split View da (50%) gorizontal class iPad mini yoki iPad Air da .compact bo'lishi mumkin. Auto Layout va UICollectionViewCompositionalLayout da qurilgan barcha mashhur tartiblar avtomatik moslashadi. Maxsus moslashish traitCollectionDidChange ni qayta yozish orqali amalga oshiriladi.
import SwiftUI
/// Size Classes yordamida iPad uchun moslashuvchan layout
struct AdaptiveContentView: View {
@Environment(\.horizontalSizeClass) private var horizontalSizeClass
@Environment(\.verticalSizeClass) private var verticalSizeClass
var body: some View {
if horizontalSizeClass == .regular && verticalSizeClass == .regular {
// Planshet rejimi: sidebar + content
NavigationSplitView {
SidebarView()
} detail: {
ContentGridView()
}
} else {
// Ixcham rejim: stek navigatsiyasi
NavigationStack {
ContentGridView()
}
}
}
}
/// Moslashuvchan panjara namunasi: iPad da 3 ustun, iPhone da 2
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()
}
}
}Misolda, NavigationSplitView faqat horizontalSizeClass == .regular bo'lganda ishlatiladi (to'liq ekran iPad). NavigationStack ixcham rejimda qo'llaniladi. Panjara ustunlari soni (3 vs 2) ham Size Classes ga qarab o'zgaradi. Hammasi ko'p vazifalilik rejimi o'zgarganda avtomatik yangilanadi.
UIKit uch uslub bilan UISplitViewController ni taqdim etadi: .doubleColumn (sidebar + detail), .tripleColumn (sidebar + primary + detail) va .single. iPadOS 16+ da splitViewController size class o'zgarganda uslublar o'rtasida avtomatik o'tadi. Dasturchi har bir ustun uchun viewControllers ni belgilaydi, UIKit ko'rinishni boshqaradi.
iPadOS SDK barcha iOS freymvorklarini, shuningdek faqat iPad da mavjud bo'lgan API larni o'z ichiga oladi. Quyida asosiy iPad-ga xos imkoniyatlar keltirilgan.
iPadOS ilovalar o'rtasida va ilova ichida Drag & Drop ni qo'llab-quvvatlaydi. UIDragInteraction va UIDropInteraction matn, tasvir, fayl va maxsus obyektlarni sudrab olish imkonini beradi. Drag & Drop Multi-Touch bilan bir vaqtda ishlaydi: foydalanuvchi turli barmoqlari bilan bir nechta elementlarni sudrab olishi mumkin. SwiftUI da .onDrag va .onDrop modifierlari ishlatiladi.
Klaviatura ulanganda (Magic Keyboard, Smart Keyboard) UIKeyCommand yorliqlarni qo'shish imkonini beradi. iPadOS 17+ da klaviatura yorliqlari Cmd tugmasini uzoq bosganda ko'rsatiladi. Apple standart kombinatsiyalarni qo'llab-quvvatlashni tavsiya qiladi: ⌘C (nusxalash), ⌘V (joylashtirish), ⌘F (qidirish), ⌘N (yangi hujjat).
iPadOS 17+ 6K gacha (Pro Display XDR) mahalliy rezolyusiyali tashqi monitorlarni qo'llab-quvvatlaydi. Ilova alohida sessiya identifikatori bilan UIWindowScene orqali tashqi ekranda mazmun ko'rsatishi mumkin. Stage Manager tashqi monitorlarda o'zgaruvchan o'lchamdagi 4 tagacha oynani joylashtirish imkonini beradi.
| API | Maqsad | iOS da mavjud |
|---|---|---|
| UISplitViewController | Ko'p ustunli navigatsiya | Ha |
| PencilKit | Apple Pencil chizish | Yo'q |
| UIDragInteraction | Drag & Drop | Ha (faqat ilova ichida) |
| UIKeyCommand | Klaviatura yorliqlari | Ha (faqat tashqi klaviatura bilan) |
| UIScene | Ko'p oynali rejim | Ha (faqat iPad) |
| UIPencilInteraction | Apple Pencil ikki marta bosish | Yo'q |
| PDFKit | PDF ko'rish va izohlash | Ha |
iPadOS uchun dasturlash UI/UX, ishlash va testlashga alohida yondashuvni talab qiladi. iPhone da kechiriladigan xatolar katta ekran va ko'p vazifalilik sababli iPad da muhim bo'ladi.
iPad 16 GB gacha birlashtirilgan xotiraga ega M seriyali chiplardan (M1, M2, M4) foydalanadi. Kuchli apparatga qaramay, Split View yoki Slide Over dagi ilova resurslarni boshqa ilova bilan baham ko'radi. Xotira bosimi iPhone dan yuqori. Tasvir siqish, kolleksiyalarni kech yuklash va Instruments Allocations orqali profillashdan foydalaning. 16 GB bilan iPad Pro M4 desktop darajasidagi ilovalarni (Final Cut Pro, Logic Pro) ishga tushirish imkonini beradi.
iPad foydalanuvchilarining aksariyati tashqi klaviaturadan foydalanadi. Interfeys klaviaturadan to'liq boshqariladigan bo'lishi kerak: Tab maydonlar bo'ylab navigatsiya uchun, Space tanlangan elementni faollashtirish uchun, Enter tasdiqlash uchun. Full Keyboard Access qo'llab-quvvatlashni qo'shing — har qanday UI elementini klaviaturadan boshqarish imkonini beruvchi tizim sozlamasi.
iPad simulyatori ko'p vazifalilik xatti-harakatini to'liq takrorlamaydi. Haqiqiy qurilmada turli rejimlarda test qiling: og'ir ilova bilan Split View (20 varaqli Safari), 4 oynali Stage Manager, tez ilova almashinuvi bilan Slide Over. Ssenariyni tekshiring: foydalanuvchi ilovani Slide Over dan ochadi, Split View ga tortadi, o'lchamini o'zgartiradi, yopadi — ilova ishdan chiqmasligi kerak.
// iPadOS da joriy ko'p vazifalilik rejimini tekshirish
- (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 faol");
}
if (isSlideOver) {
NSLog(@"Slide Over rejimi");
} else if (isFullScreen) {
NSLog(@"To'liq ekran rejimi");
} else {
NSLog(@"Split View rejimi");
}
}Tez-tez beriladigan savollar
iPadOS kengaytirilgan ko'p vazifalilikka (Split View, Slide Over, Stage Manager), hover aniqlash bilan Apple Pencil qo'llab-quvvatlashiga, yuklab olish menejeri bilan desktop Safari ga, mahalliy rezolyusiyali tashqi monitorlarga va USB-C orqali tashqi disklarga kirish imkoniyatiga ega Files fayl tizimiga ega.
Split View, ilova UISplitViewController dan foydalansa, avtomatik qo'llab-quvvatlanadi. Ilova size class o'zgarishlarini to'g'ri boshqarishi kerak: ixcham rejimga o'tishda ekranlar steki uchun UINavigationController dan foydalaning. Split View dan aniq voz kechish uchun Info.plist da UIRequiresFullScreen = YES ni belgilang.
PencilKit dan foydalaning: chizish yuzasi uchun PKCanvasView va asbob tanlash uchun PKToolPicker. Qalam teginishlarini maxsus qayta ishlash uchun — .hover tipidagi UIEvent va ikki marta bosish uchun UIPencilInteraction. Apple Pencil Pro kechikishi — 9 ms, oldingi avlod — 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). Moslashish uchun Size Classes va Auto Layout dan foydalaning. Thunderbolt orqali 6K gacha tashqi monitorlar. Stage Manager 8 tagacha oynani qo'llab-quvvatlaydi (4 iPad da + 4 tashqi monitor).
iPadOS 17+ USB-C/Thunderbolt orqali 6K gacha mahalliy rezolyusiyali tashqi monitorlarni qo'llab-quvvatlaydi. Ilova o'z hayot sikli bilan alohida UIWindowScene orqali tashqi monitorlarda mazmun ko'rsatishi mumkin. Stage Manager tashqi monitorlarda 4 tagacha oynani qo'llab-quvvatlaydi.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.