iPadOS Apple का iPad के लिए ऑपरेटिंग सिस्टम है, जिसे 2019 में iOS से अलग किया गया। iPad डेवलपमेंट अद्वितीय क्षमताओं को ध्यान में रखता है: Split View और Stage Manager मल्टीटास्किंग, कम विलंबता वाला Apple Pencil इनपुट और डेस्कटॉप Safari।
मुख्य बातें
iPadOS Apple का iPad के लिए ऑपरेटिंग सिस्टम है, जिसे पहली बार 2019 में iOS (संस्करण 13) के फ़ोर्क के रूप में जारी किया गया। इससे पहले, iPad iPhone के समान iOS का उपयोग करता था। iPadOS के अलगाव ने Apple को बड़ी स्क्रीन के लिए विशिष्ट सुविधाएँ पेश करने की अनुमति दी: मल्टीटास्किंग, डेस्कटॉप Safari, ड्रैग एंड ड्रॉप और बाहरी मॉनिटर समर्थन।
iPadOS iOS ऐप्स के साथ पूर्ण संगतता बनाए रखता है: कोई भी iPhone ऐप iPad पर स्केलिंग मोड में चलता है। हालाँकि, गुणवत्तापूर्ण उपयोगकर्ता अनुभव के लिए अनुकूलन आवश्यक है: Size Classes, UISplitViewController और कीबोर्ड शॉर्टकट समर्थन का उपयोग करना। Apple (WWDC 2025) के अनुसार, iPad पर 80% समय उपयोगकर्ता स्केल किए गए संस्करणों के बजाय टैबलेट-ऑप्टिमाइज़्ड संस्करणों में बिताते हैं।
iPadOS 13 (2019) ने Slide Over और Split View पेश किया। iPadOS 14 (2020) ने Apple Pencil Scribble और कॉम्पैक्ट UI जोड़ा। iPadOS 15 (2021) ने Quick Note और मल्टीटास्किंग सुधार पेश किए। iPadOS 16 (2022) ने Stage Manager और बाहरी मॉनिटर समर्थन लाया। iPadOS 17 (2023) ने इंटरैक्टिव विजेट और Lock Screen कस्टमाइज़ेशन जोड़ा।
| iPadOS संस्करण | वर्ष | मुख्य नवाचार |
|---|---|---|
| iPadOS 13 | 2019 | Slide Over, Split View, डेस्कटॉप Safari |
| iPadOS 14 | 2020 | Apple Pencil के लिए Scribble, कॉम्पैक्ट कॉल |
| iPadOS 15 | 2021 | Quick Note, बेहतर मल्टीटास्किंग मैनेजर |
| iPadOS 16 | 2022 | Stage Manager, बाहरी 6K मॉनिटर |
| iPadOS 17 | 2023 | इंटरैक्टिव विजेट, Lock Screen |
| iPadOS 18 | 2024 | कैलकुलेटर Math Notes, Smart Script |
iPadOS iOS के समान XNU कर्नेल और Darwin पर आधारित है, लेकिन कई विंडो और मनमाने स्क्रीन आकारों के लिए अनुकूलित एक संशोधित UIKit शेल का उपयोग करता है। मुख्य आर्किटेक्चरल अंतर UIScene समर्थन है, जिसे iOS 13 में पेश किया गया था।
iPadOS में, प्रत्येक विंडो (Split View में शामिल) अपने स्वयं के जीवनचक्र के साथ एक अलग UISceneSession है। iPhone के विपरीत, जहाँ एक ऐप में एक UIWindowScene होता है, iPad पर एक ऐप में कई UIScene हो सकते हैं (कई विंडो, Slide Over, Stage Manager)। SceneDelegate प्रत्येक विंडो की स्थिति का स्वतंत्र रूप से प्रबंधन करता है।
import UIKit
import SwiftUI
/// iPadOS पर कई विंडो समर्थन के लिए 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 }
// टैबलेट नेविगेशन के लिए 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")")
}
}.tripleColumn शैली के साथ UISplitViewController एक साथ तीन कॉलम प्रदर्शित करता है: साइडबार (नेविगेशन), प्राइमरी (सूची), और डिटेल (सामग्री)। कॉम्पैक्ट मोड (किसी अन्य ऐप के साथ Split View) में संक्रमण करते समय, UIKit स्वचालित रूप से कॉलम को नेविगेशन स्टैक में संक्षिप्त करता है। डेवलपर इस व्यवहार को मैन्युअल रूप से प्रबंधित नहीं करता — UIKit traitCollection के माध्यम से लेआउट को अनुकूलित करता है।
iPadOS प्रदान करता है: Files (USB-C/Thunderbolt) के माध्यम से बाहरी स्टोरेज समर्थन, तत्व निरीक्षण के साथ Safari टर्मिनल मोड, UIKeyCommand के माध्यम से कीबोर्ड शॉर्टकट, सिस्टम डाउनलोड मैनेजर, ऐप्स के बीच ड्रैग एंड ड्रॉप और आकार बदलने योग्य विंडो के साथ पिक्चर इन पिक्चर।
मल्टीटास्किंग iPadOS की एक मुख्य विशेषता है जो इसे iOS से मौलिक रूप से अलग करती है। उपयोगकर्ता एक स्क्रीन पर कई ऐप्स के साथ एक साथ काम कर सकता है। डेवलपर को यह सुनिश्चित करना चाहिए कि ऐप किसी भी मल्टीटास्किंग मोड में सही ढंग से काम करे।
Split View iPad स्क्रीन को दो ऐप्स के बीच 50/50 या 33/67 अनुपात में विभाजित करता है। प्रत्येक ऐप को अपनी स्वयं की मेमोरी और जीवनचक्र के साथ अपना UISceneSession मिलता है। जब स्क्रीन की चौड़ाई 600 पॉइंट से कम होती है, तो UIKit ऐप को जबरन कॉम्पैक्ट क्षैतिज size class में बदल देता है। ऐप को इस परिवर्तन को सही ढंग से संभालना चाहिए।
Slide Over सक्रिय ऐप के ऊपर एक फ्लोटिंग विंडो है (चौड़ाई 320 पॉइंट)। Slide Over में ऐप कॉम्पैक्ट क्षैतिज size class (.compact) में बदल जाता है। संकीर्ण स्क्रीन के लिए UI को ऑप्टिमाइज़ करना महत्वपूर्ण है। Slide Over में, ऐप को दाएँ किनारे से स्वाइप करके या डॉक के माध्यम से बुलाया जा सकता है। उपयोगकर्ता Slide Over को Split View में खींच सकता है या दाईं ओर स्वाइप करके बंद कर सकता है।
Stage Manager (iPadOS 16+, M1 और नया) एक विंडो मैनेजर है जो मनमाने आकार की ओवरलैपिंग विंडो बनाने की अनुमति देता है। iPad स्क्रीन पर 4 विंडो और बाहरी मॉनिटर पर 4 (कुल 8) तक समर्थित हैं। ऐप्स को प्रत्येक नई विंडो के लिए UISceneWillConnectNotification इवेंट प्राप्त होता है। Stage Manager जीवनचक्र नियमों को बदलता है: पृष्ठभूमि में एक विंडो फ़्रीज़ नहीं होती बल्कि सीमित संसाधनों के साथ काम करती रहती है।
| मोड | विंडो की संख्या | विंडो का आकार | Size Class |
|---|---|---|---|
| फुल स्क्रीन | 1 | स्क्रीन का 100% | Regular |
| Split View 50/50 | 2 | स्क्रीन का 50% | Regular (iPad Pro 12.9) या Compact |
| Split View 33/67 | 2 | 33% / 67% | 33% के लिए Compact |
| Slide Over | 1 + फ्लोटिंग | 320 pt | Compact |
| Stage Manager | 1–4 | मनमाना | आकार पर निर्भर करता है |
Apple Pencil Apple का सक्रिय स्टाइलस है जिसमें झुकाव, दबाव और होवर डिटेक्शन समर्थन (iPad Pro M2+) है। पेन की गति और स्याही प्रदर्शन के बीच विलंबता मॉडल के आधार पर 9–20 ms है। PencilKit ऐप में ड्राइंग को एकीकृत करने के लिए प्राथमिक फ्रेमवर्क है।
PKCanvasView स्याही, पेंसिल, मार्कर और इरेज़र के समर्थन के साथ एक तैयार ड्राइंग सतह प्रदान करता है। PKToolPicker टूल चयन पैनल है। डेवलपर को स्ट्रोक रेंडरिंग लागू करने की आवश्यकता नहीं है — PencilKit इसे Metal shaders के साथ हार्डवेयर-त्वरित करता है। पेन के रंग, मोटाई और अपारदर्शिता अनुकूलन उपलब्ध हैं।
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 MB लगता है।
Scribble (iPadOS 14+) किसी भी UITextField और UITextView में हस्तलेखन की अनुमति देता है। सिस्टम Neural Engine का उपयोग करके डिवाइस पर हस्तलेखन को पहचानता है। ML मॉडल लैटिन और सिरिलिक लिपियों के साथ काम करता है। iOS 17+ में, Scribble ऑटोकरेक्शन और अगले शब्द की भविष्यवाणी का समर्थन करता है। डेवलपर को कोड जोड़ने की आवश्यकता नहीं है — Scribble किसी भी इनपुट फ़ील्ड के साथ स्वचालित रूप से काम करता है।
iPadOS 17.4 और Apple Pencil Pro से शुरू करके, डेवलपर्स को hover इवेंट मिलते हैं जब स्टाइलस स्क्रीन के पास आता है (12 mm तक)। इवेंट में स्थिति, बल और दिगंश होता है। अनुप्रयोग: ड्राइंग ऐप्स में ब्रश संपर्क बिंदु का पूर्वावलोकन, टूल पूर्वावलोकन, स्पर्श से पहले दृश्य प्रतिक्रिया।
अनुकूली इंटरफ़ेस iPad ऐप्स के लिए एक अनिवार्य आवश्यकता है। iPad विभिन्न स्क्रीन आकारों (8.3"–13") और मल्टीटास्किंग मोड में काम करता है। UIKit स्वचालित अनुकूलन के लिए Size Classes (क्षैतिज: .regular/.compact, ऊर्ध्वाधर: .regular/.compact) और UISplitViewController प्रदान करता है।
Size Classes एक अमूर्तता है जो उपलब्ध स्थान को परिभाषित करती है। iPad पर फुल-स्क्रीन मोड में, दोनों अक्ष .regular हैं। Split View (50%) में, क्षैतिज class iPad mini या iPad Air पर .compact हो सकता है। Auto Layout और UICollectionViewCompositionalLayout पर बनाए गए सभी लोकप्रिय लेआउट स्वचालित रूप से अनुकूलित होते हैं। कस्टम अनुकूलन traitCollectionDidChange को ओवरराइड करके किया जाता है।
import SwiftUI
/// Size Classes का उपयोग करके iPad के लिए अनुकूली लेआउट
struct AdaptiveContentView: View {
@Environment(\.horizontalSizeClass) private var horizontalSizeClass
@Environment(\.verticalSizeClass) private var verticalSizeClass
var body: some View {
if horizontalSizeClass == .regular && verticalSizeClass == .regular {
// टैबलेट मोड: साइडबार + सामग्री
NavigationSplitView {
SidebarView()
} detail: {
ContentGridView()
}
} else {
// कॉम्पैक्ट मोड: स्टैक नेविगेशन
NavigationStack {
ContentGridView()
}
}
}
}
/// अनुकूली ग्रिड उदाहरण: iPad पर 3 कॉलम, iPhone पर 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()
}
}
}उदाहरण में, NavigationSplitView का उपयोग केवल तब किया जाता है जब horizontalSizeClass == .regular (फुल-स्क्रीन iPad)। NavigationStack का उपयोग कॉम्पैक्ट मोड में किया जाता है। ग्रिड कॉलम की संख्या (3 बनाम 2) भी Size Classes के आधार पर बदलती है। मल्टीटास्किंग मोड बदलने पर सब कुछ स्वचालित रूप से अपडेट होता है।
UIKit तीन शैलियों के साथ UISplitViewController प्रदान करता है: .doubleColumn (साइडबार + डिटेल), .tripleColumn (साइडबार + प्राइमरी + डिटेल), और .single। iPadOS 16+ में, size class बदलने पर splitViewController स्वचालित रूप से शैलियों के बीच स्विच करता है। डेवलपर प्रत्येक कॉलम के लिए viewControllers सेट करता है, UIKit दृश्यता प्रबंधित करता है।
iPadOS SDK में सभी iOS फ्रेमवर्क के साथ-साथ केवल iPad पर उपलब्ध API शामिल हैं। नीचे प्रमुख iPad-विशिष्ट क्षमताएँ दी गई हैं।
iPadOS ऐप्स के बीच और ऐप के भीतर ड्रैग एंड ड्रॉप का समर्थन करता है। UIDragInteraction और UIDropInteraction टेक्स्ट, इमेज, फ़ाइलें और कस्टम ऑब्जेक्ट खींचने की अनुमति देते हैं। ड्रैग एंड ड्रॉप मल्टी-टच के साथ एक साथ काम करता है: उपयोगकर्ता विभिन्न उंगलियों से कई आइटम खींच सकता है। SwiftUI में, .onDrag और .onDrop मॉडिफायर का उपयोग किया जाता है।
जब कोई कीबोर्ड कनेक्ट होता है (Magic Keyboard, Smart Keyboard), UIKeyCommand हॉटकी जोड़ने की अनुमति देता है। iPadOS 17+ में, Cmd दबाए रखने पर कीबोर्ड शॉर्टकट प्रदर्शित होते हैं। Apple मानक संयोजनों का समर्थन करने की सलाह देता है: ⌘C (कॉपी), ⌘V (पेस्ट), ⌘F (खोज), ⌘N (नया दस्तावेज़)।
iPadOS 17+ 6K (Pro Display XDR) तक की मूल रिज़ॉल्यूशन वाले बाहरी मॉनिटर का समर्थन करता है। एक ऐप एक अलग सत्र पहचानकर्ता के साथ UIWindowScene के माध्यम से बाहरी स्क्रीन पर सामग्री प्रदर्शित कर सकता है। Stage Manager एक बाहरी मॉनिटर पर आकार बदलने योग्य आयामों के साथ 4 विंडो तक रखने की अनुमति देता है।
| API | उद्देश्य | iOS में उपलब्ध |
|---|---|---|
| UISplitViewController | बहु-स्तंभ नेविगेशन | हाँ |
| PencilKit | Apple Pencil ड्राइंग | नहीं |
| UIDragInteraction | ड्रैग एंड ड्रॉप | हाँ (केवल ऐप के भीतर) |
| UIKeyCommand | कीबोर्ड शॉर्टकट | हाँ (केवल बाहरी कीबोर्ड) |
| UIScene | मल्टी-विंडो मोड | हाँ (केवल iPad) |
| UIPencilInteraction | Apple Pencil डबल टैप | नहीं |
| PDFKit | PDF देखना और एनोटेशन | हाँ |
iPadOS के लिए डेवलपमेंट में UI/UX, प्रदर्शन और परीक्षण के लिए एक विशेष दृष्टिकोण की आवश्यकता होती है। iPhone पर क्षम्य त्रुटियाँ बड़ी स्क्रीन और मल्टीटास्किंग के कारण iPad पर गंभीर हो जाती हैं।
iPad 16 GB तक की यूनिफ़ाइड मेमोरी के साथ M-सीरीज़ चिप्स (M1, M2, M4) का उपयोग करता है। शक्तिशाली हार्डवेयर के बावजूद, Split View या Slide Over में एक ऐप दूसरे ऐप के साथ संसाधन साझा करता है। मेमोरी दबाव iPhone की तुलना में अधिक होता है। इमेज कंप्रेशन, कलेक्शन की लेज़ी लोडिंग और Instruments Allocations के माध्यम से प्रोफाइलिंग का उपयोग करें। 16 GB वाला iPad Pro M4 डेस्कटॉप-क्लास ऐप (Final Cut Pro, Logic Pro) चलाने की अनुमति देता है।
अधिकांश iPad उपयोगकर्ता बाहरी कीबोर्ड का उपयोग करते हैं। इंटरफ़ेस पूरी तरह से कीबोर्ड-नेविगेबल होना चाहिए: फ़ील्ड नेविगेशन के लिए Tab, चयनित तत्व को सक्रिय करने के लिए Space, पुष्टि के लिए Enter। Full Keyboard Access के लिए समर्थन जोड़ें — एक सिस्टम सेटिंग जो कीबोर्ड के साथ किसी भी UI तत्व को नियंत्रित करने की अनुमति देती है।
iPad सिम्युलेटर मल्टीटास्किंग व्यवहार को पूरी तरह से पुन: पेश नहीं करता है। विभिन्न मोड में वास्तविक डिवाइस पर परीक्षण करें: भारी ऐप (20 टैब वाला Safari) के साथ Split View, 4 विंडो के साथ Stage Manager, त्वरित ऐप स्विचिंग के साथ Slide Over। परिदृश्य की जाँच करें: उपयोगकर्ता Slide Over से ऐप खोलता है, उसे Split View में खींचता है, आकार बदलता है, बंद करता है — ऐप क्रैश नहीं होना चाहिए।
// 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 में विस्तारित मल्टीटास्किंग (Split View, Slide Over, Stage Manager), होवर डिटेक्शन के साथ Apple Pencil समर्थन, डाउनलोड मैनेजर के साथ डेस्कटॉप Safari, मूल रिज़ॉल्यूशन वाले बाहरी मॉनिटर और USB-C के माध्यम से बाहरी ड्राइव तक पहुँच के साथ Files फ़ाइल सिस्टम है।
Split View स्वचालित रूप से समर्थित है यदि ऐप UISplitViewController का उपयोग करता है। ऐप को size class परिवर्तनों को सही ढंग से संभालना चाहिए: कॉम्पैक्ट मोड में संक्रमण करते समय, स्क्रीन स्टैक के लिए UINavigationController का उपयोग करें। Split View से स्पष्ट रूप से ऑप्ट आउट करने के लिए, Info.plist में UIRequiresFullScreen = YES निर्दिष्ट करें।
PencilKit का उपयोग करें: ड्राइंग सतह के लिए PKCanvasView और टूल चयन के लिए PKToolPicker। कस्टम स्टाइलस इनपुट हैंडलिंग के लिए — .hover प्रकार के साथ UIEvent और डबल टैप के लिए UIPencilInteraction। Apple Pencil Pro की विलंबता 9 ms है, पिछली पीढ़ी — 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)। अनुकूलन के लिए Size Classes और Auto Layout का उपयोग करें। Thunderbolt के माध्यम से 6K तक के बाहरी मॉनिटर। Stage Manager 8 विंडो तक का समर्थन करता है (iPad पर 4 + बाहरी मॉनिटर पर 4)।
iPadOS 17+ USB-C/Thunderbolt के माध्यम से 6K तक की मूल रिज़ॉल्यूशन वाले बाहरी मॉनिटर का समर्थन करता है। एक ऐप अपने स्वयं के जीवनचक्र के साथ एक अलग UIWindowScene के माध्यम से बाहरी मॉनिटर पर सामग्री प्रदर्शित कर सकता है। Stage Manager एक बाहरी मॉनिटर पर 4 विंडो तक का समर्थन करता है।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें