iPadOS — το λειτουργικό σύστημα της Apple για iPad, που διαχωρίστηκε από το iOS το 2019. Η ανάπτυξη για iPad λαμβάνει υπόψη μοναδικές δυνατότητες: πολλαπλές εργασίες Split View και Stage Manager, είσοδο Apple Pencil με χαμηλή καθυστέρηση και επιτραπέζιο Safari.
Κύρια
iPadOS — το λειτουργικό σύστημα της Apple για iPad, που κυκλοφόρησε για πρώτη φορά το 2019 ως διακλάδωση του iOS (έκδοση 13). Πριν από αυτό, το iPad χρησιμοποιούσε το ίδιο iOS με το iPhone. Ο διαχωρισμός του iPadOS επέτρεψε στην Apple να εφαρμόσει λειτουργίες ειδικές για μεγάλη οθόνη: πολλαπλές εργασίες, επιτραπέζιο Safari, Drag & Drop και υποστήριξη εξωτερικών οθονών.
Το iPadOS διατηρεί πλήρη συμβατότητα με εφαρμογές iOS: οποιαδήποτε εφαρμογή iPhone εκτελείται στο iPad σε λειτουργία κλίμακας. Ωστόσο, για ποιοτική εμπειρία χρήστη, απαιτείται προσαρμογή: χρήση Size Classes, UISplitViewController και υποστήριξη συντομεύσεων πληκτρολογίου. Σύμφωνα με την Apple (WWDC 2025), το 80% του χρόνου στο iPad οι χρήστες περνούν σε εκδόσεις tablet, όχι σε κλιμακούμενες εκδόσεις.
Το 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) πρόσθεσε διαδραστικά widget και προσαρμογή Lock Screen.
| Έκδοση iPadOS | Έτος | Κύρια καινοτομία |
|---|---|---|
| iPadOS 13 | 2019 | Slide Over, Split View, επιτραπέζιο Safari |
| iPadOS 14 | 2020 | Scribble για Apple Pencil, συμπαγείς κλήσεις |
| iPadOS 15 | 2021 | Quick Note, βελτιωμένος διαχειριστής πολλαπλών εργασιών |
| iPadOS 16 | 2022 | Stage Manager, εξωτερική οθόνη 6K |
| iPadOS 17 | 2023 | Διαδραστικά widget, Lock Screen |
| iPadOS 18 | 2024 | Αριθμομηχανή Math Notes, Smart Script |
Το iPadOS βασίζεται στον ίδιο πυρήνα XNU και Darwin με το iOS, αλλά χρησιμοποιεί τροποποιημένο κέλυφος UIKit, προσαρμοσμένο για εργασία με πολλαπλά παράθυρα και αυθαίρετα μεγέθη οθόνης. Η βασική αρχιτεκτονική διαφορά — υποστήριξη για UIScene, που εισήχθη στο iOS 13.
Στο iPadOS, κάθε παράθυρο (συμπεριλαμβανομένου του Split View) είναι μια ξεχωριστή UISceneSession με δικό της κύκλο ζωής. Σε αντίθεση με το iPhone, όπου μια εφαρμογή έχει ένα UIWindowScene, στο iPad μια εφαρμογή μπορεί να έχει πολλαπλά UIScene (πολλαπλά παράθυρα, Slide Over, Stage Manager). Το SceneDelegate διαχειρίζεται την κατάσταση κάθε παραθύρου ανεξάρτητα.
import UIKit
import SwiftUI
/// SceneDelegate για υποστήριξη πολλαπλών παραθύρων στο 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 }
// Δημιουργία UISplitViewController για πλοήγηση 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
}
// Προσαρμογή κατά την αλλαγή μεγέθους παραθύρου (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 με στυλ .tripleColumn εμφανίζει τρεις στήλες ταυτόχρονα: sidebar (πλοήγηση), primary (λίστα) και detail (περιεχόμενο). Κατά τη μετάβαση σε συμπαγή λειτουργία (Split View με άλλη εφαρμογή), το UIKit διπλώνει αυτόματα τις στήλες σε μια στοίβα πλοήγησης. Ο προγραμματιστής δεν διαχειρίζεται αυτή τη συμπεριφορά χειροκίνητα — το UIKit προσαρμόζει τη διάταξη μέσω traitCollection.
Στο iPadOS είναι διαθέσιμα: υποστήριξη εξωτερικών δίσκων μέσω Files (USB-C/Thunderbolt), λειτουργία τερματικού Safari με επιθεώρηση στοιχείων, συντομεύσεις πληκτρολογίου μέσω UIKeyCommand, διαχειριστής λήψεων συστήματος, Drag & Drop μεταξύ εφαρμογών και Picture in Picture με μεταβλητό μέγεθος παραθύρου.
Οι πολλαπλές εργασίες — το βασικό χαρακτηριστικό του 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, η εφαρμογή μπορεί να κληθεί με σάρωση από τη δεξιά άκρη ή μέσω του dock. Ο χρήστης μπορεί να σύρει το Slide Over στο Split View ή να το κλείσει σύροντας προς τα δεξιά.
Stage Manager (iPadOS 16+, M1 και νεότερα) — ένας διαχειριστής παραθύρων που επιτρέπει τη δημιουργία επικαλυπτόμενων παραθύρων αυθαίρετου μεγέθους. Υποστηρίζει έως 4 παράθυρα στην οθόνη iPad και έως 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% | Compact για 33% |
| Slide Over | 1 + πλωτό | 320 pt | Compact |
| Stage Manager | 1–4 | Αυθαίρετο | Εξαρτάται από μέγεθος |
Apple Pencil — ενεργό στυλό της Apple με υποστήριξη κλίσης, πίεσης και ανίχνευσης hover (iPad Pro M2+). Η καθυστέρηση μεταξύ κίνησης στυλό και εμφάνισης μελάνης είναι 9–20 ms ανάλογα με το μοντέλο. Το PencilKit — το κύριο πλαίσιο για ενσωμάτωση σχεδίασης σε εφαρμογή.
PKCanvasView παρέχει έτοιμη επιφάνεια σχεδίασης με υποστήριξη μελάνης, μολυβιού, μαρκαδόρου και γόμας. PKToolPicker — πίνακας επιλογής εργαλείων. Ο προγραμματιστής δεν χρειάζεται να υλοποιήσει απόδοση πινελιών — το PencilKit το κάνει υλικοτεχνικά με shaders Metal. Η ρύθμιση χρώματος, πάχους και διαφάνειας στυλό είναι διαθέσιμη.
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 (horizontal: .regular/.compact, vertical: .regular/.compact) και UISplitViewController για αυτόματη προσαρμογή.
Size Classes — μια αφαίρεση που καθορίζει τον διαθέσιμο χώρο. Στο iPad σε λειτουργία πλήρους οθόνης, και οι δύο άξονες είναι .regular. Σε Split View (50%), η οριζόντια κλάση μπορεί να γίνει .compact σε iPad mini ή iPad Air. Όλες οι δημοφιλείς διατάξεις που βασίζονται σε Auto Layout και UICollectionViewCompositionalLayout προσαρμόζονται αυτόματα. Η προσαρμοσμένη προσαρμογή γίνεται με παράκαμψη του traitCollectionDidChange.
import SwiftUI
/// Προσαρμοστική διάταξη για iPad με χρήση 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: sidebar + content
NavigationSplitView {
SidebarView()
} detail: {
ContentGridView()
}
} else {
// Συμπαγής λειτουργία: πλοήγηση στοίβας
NavigationStack {
ContentGridView()
}
}
}
}
/// Παράδειγμα προσαρμοστικού πλέγματος: 3 στήλες στο iPad, 2 στο 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()
}
}
}Στο παράδειγμα, το NavigationSplitView χρησιμοποιείται μόνο όταν horizontalSizeClass == .regular (iPad πλήρης οθόνη). Το NavigationStack εφαρμόζεται σε συμπαγή λειτουργία. Ο αριθμός στηλών πλέγματος (3 vs 2) αλλάζει επίσης ανάλογα με τα Size Classes. Όλα ενημερώνονται αυτόματα όταν αλλάζει η λειτουργία πολλαπλών εργασιών.
Το UIKit παρέχει UISplitViewController με τρία στυλ: .doubleColumn (sidebar + detail), .tripleColumn (sidebar + primary + detail) και .single. Στο iPadOS 16+, το splitViewController εναλλάσσεται αυτόματα μεταξύ στυλ όταν αλλάζει το size class. Ο προγραμματιστής ορίζει viewControllers για κάθε στήλη, το UIKit διαχειρίζεται την ορατότητα.
Το iPadOS SDK περιλαμβάνει όλα τα πλαίσια iOS, καθώς και API που είναι διαθέσιμα μόνο στο iPad. Παρακάτω παρουσιάζονται οι βασικές δυνατότητες ειδικές για iPad.
Το iPadOS υποστηρίζει Drag & Drop μεταξύ εφαρμογών και εντός εφαρμογής. Τα UIDragInteraction και UIDropInteraction επιτρέπουν τη μεταφορά κειμένου, εικόνων, αρχείων και προσαρμοσμένων αντικειμένων. Το Drag & Drop λειτουργεί ταυτόχρονα με το Multi-Touch: ο χρήστης μπορεί να σύρει πολλαπλά στοιχεία με διαφορετικά δάχτυλα. Στο 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 | Drag & Drop | Ναι (μόνο εντός εφαρμογής) |
| UIKeyCommand | Συντομεύσεις πληκτρολογίου | Ναι (μόνο με εξωτερικό πληκτρολόγιο) |
| UIScene | Λειτουργία πολλαπλών παραθύρων | Ναι (μόνο iPad) |
| UIPencilInteraction | Διπλό πάτημα Apple Pencil | Όχι |
| PDFKit | Προβολή και σχολιασμός PDF | Ναι |
Η ανάπτυξη για iPadOS απαιτεί ειδική προσέγγιση στο UI/UX, την απόδοση και τις δοκιμές. Λάθη που συγχωρούνται στο iPhone γίνονται κρίσιμα στο iPad λόγω μεγαλύτερης οθόνης και πολλαπλών εργασιών.
Το iPad χρησιμοποιεί τσιπ σειράς M (M1, M2, M4) με ενοποιημένη μνήμη έως 16 GB. Παρά το ισχυρό υλικό, η εφαρμογή σε Split View ή Slide Over μοιράζεται πόρους με άλλη εφαρμογή. Πίεση μνήμης είναι υψηλότερη από ό,τι στο iPhone. Χρησιμοποιήστε συμπίεση εικόνων, τεμπέλικη φόρτωση συλλογών και προφίλ μέσω Instruments Allocations. Το iPad Pro M4 με 16 GB επιτρέπει την εκτέλεση εφαρμογών επιπέδου επιτραπέζιου (Final Cut Pro, Logic Pro).
Οι περισσότεροι χρήστες iPad χρησιμοποιούν εξωτερικό πληκτρολόγιο. Η διεπαφή πρέπει να είναι πλήρως ελέγξιμη από το πληκτρολόγιο: Tab για πλοήγηση μεταξύ πεδίων, Space για ενεργοποίηση επιλεγμένου στοιχείου, Enter για επιβεβαίωση. Προσθέστε υποστήριξη για Full Keyboard Access — τη ρύθμιση συστήματος που επιτρέπει τον έλεγχο οποιουδήποτε στοιχείου UI από το πληκτρολόγιο.
Ο προσομοιωτής iPad δεν αναπαράγει πλήρως τη συμπεριφορά πολλαπλών εργασιών. Δοκιμάστε σε πραγματική συσκευή σε διαφορετικές λειτουργίες: Split View με βαριά εφαρμογή (Safari με 20 καρτέλες), Stage Manager με 4 παράθυρα, 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 με ανίχνευση hover, επιτραπέζιο Safari με διαχειριστή λήψεων, εξωτερικές οθόνες με εγγενή ανάλυση και σύστημα αρχείων Files με πρόσβαση σε εξωτερικούς δίσκους μέσω USB-C.
Το Split View υποστηρίζεται αυτόματα εάν η εφαρμογή χρησιμοποιεί UISplitViewController. Η εφαρμογή πρέπει να χειρίζεται σωστά τις αλλαγές size class: κατά τη μετάβαση σε συμπαγή λειτουργία, χρησιμοποιήστε UINavigationController για τη στοίβα οθονών. Για ρητή άρνηση του Split View, ορίστε UIRequiresFullScreen = YES στο Info.plist.
Χρησιμοποιήστε PencilKit: PKCanvasView για επιφάνεια σχεδίασης και PKToolPicker για επιλογή εργαλείων. Για προσαρμοσμένο χειρισμό αφής στυλό — UIEvent με τύπο .hover και 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 για προσαρμογή. Εξωτερικές οθόνες έως 6K μέσω Thunderbolt. Το Stage Manager υποστηρίζει έως 8 παράθυρα (4 στο iPad + 4 σε εξωτερική οθόνη).
Το iPadOS 17+ υποστηρίζει εξωτερικές οθόνες μέσω USB-C/Thunderbolt με εγγενή ανάλυση έως 6K. Η εφαρμογή μπορεί να εμφανίζει περιεχόμενο στην εξωτερική οθόνη μέσω ξεχωριστού UIWindowScene με δικό της κύκλο ζωής. Το Stage Manager υποστηρίζει έως 4 παράθυρα στην εξωτερική οθόνη.
Περίληψη
Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση
Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.
Διαβάστε επίσης