Το πλαίσιο ARKit — πλατφόρμα επαυξημένης πραγματικότητας από την Apple που επιτρέπει στους προγραμματιστές να δημιουργούν εφαρμογές AR για iOS χωρίς βαθιές γνώσεις υπολογιστικής όρασης. Σύμφωνα με το Apple ARKit Documentation, 2025, το πλαίσιο χρησιμοποιεί Visual-Inertial Odometry για την ακριβή παρακολούθηση της θέσης της συσκευής στο χώρο χωρίς εξωτερικούς δείκτες. Η σημασιολογική κατανόηση της σκηνής επιτρέπει την αναγνώριση οριζόντιων και κάθετων επιπέδων, τον προσδιορισμό φωτισμού και την τοποθέτηση εικονικών αντικειμένων στο πραγματικό περιβάλλον.
Κύρια σημεία
ARKit — το πλαίσιο επαυξημένης πραγματικότητας από την Apple, που ανακοινώθηκε στο WWDC 2017 μαζί με το iOS 11. Συνδυάζει τις δυνατότητες της κάμερας, του επεξεργαστή κίνησης σειράς M και του νευρωνικού μηχανήματος των τσιπ A για τη δημιουργία μιας καθηλωτικής εμπειρίας AR χωρίς την ανάγκη εξειδικευμένου υλικού — μόνο iPhone ή iPad.
Το ARKit χρησιμοποιεί την τεχνολογία Visual-Inertial Odometry (VIO), η οποία συνδυάζει δεδομένα από την κάμερα και τους αδρανειακούς αισθητήρες Core Motion για την ακριβή παρακολούθηση της κίνησης της συσκευής στο χώρο. Το VIO επιτρέπει στο πλαίσιο να κατανοεί πού βρίσκεται η συσκευή σε σχέση με το περιβάλλον, χωρίς χρήση GPS ή εξωτερικών δεικτών.
Σύμφωνα με το Apple WWDC 2024, το ARKit 6 υποστηρίζεται σε συσκευές με τσιπ A12 και νεότερες (iPhone XS, iPad Pro 2018+). Ο αριθμός των εφαρμογών AR στο App Store έχει ξεπεράσει τις 15 χιλιάδες και η συνολική επιφάνεια των αναγνωρισμένων επιπέδων σε όλες τις συνεδρίες AR ξεπερνά τα 100 δισεκατομμύρια τετραγωνικά μέτρα.
Σε έξι εκδόσεις, το ARKit έλαβε σημαντικές βελτιώσεις: ARKit 1.0 (iOS 11) — βασική παρακολούθηση και αναγνώριση επιπέδων; ARKit 2.0 — κοινές συνεδρίες AR μέσω ARWorldMap και ανίχνευση 3D αντικειμένων; ARKit 3.0 — παρακολούθηση ανθρώπινου σώματος, τμηματοποίηση ατόμων και ταυτόχρονες μπροστινές και πίσω κάμερες.
Το ARKit 4.0 εισήγαγε τον LiDAR Scanner για τον άμεσο προσδιορισμό βάθους και αδιαφάνειας αντικειμένων, καθώς και το Location Anchor για τη σύνδεση περιεχομένου AR με συντεταγμένες GPS. Το ARKit 6 πρόσθεσε βίντεο 4K με HDR, Plane Estimation με LiDAR και βελτιωμένη επεξεργασία απόφραξης.
import ARKit
let configuration = ARWorldTrackingConfiguration()
configuration.planeDetection = [.horizontal, .vertical]
configuration.environmentTexturing = .automatic
let arView = ARSCNView(frame: view.bounds)
arView.session.run(configuration)
arView.debugOptions = [.showFeaturePoints]
view.addSubview(arView)
ARKit λειτουργεί μέσω ενός κύκλου συνεδρίας AR, η οποία εκκινείται με μια διαμόρφωση και αναλύει συνεχώς τη ροή βίντεο από την κάμερα. Κάθε καρέ, το πλαίσιο υπολογίζει τη θέση της συσκευής (6 βαθμοί ελευθερίας), ενημερώνει τον χάρτη των αναγνωρισμένων επιπέδων και διορθώνει τη θέση των εικονικών αντικειμένων — όλα αυτά με συχνότητα 60 καρέ ανά δευτερόλεπτο.
Η διαδικασία VIO αποτελείται από δύο παράλληλες ροές: ο αλγόριθμος οπτικής οδομετρίας παρακολουθεί την κίνηση των χαρακτηριστικών σημείων (feature points) μεταξύ των καρέ, και οι αδρανειακοί αισθητήρες Core Motion προβλέπουν την κίνηση σε σύντομα διαστήματα όταν η κάμερα κινείται γρήγορα ή η εικόνα είναι θολή. Ο συνδυασμός δύο μεθόδων δίνει ακρίβεια παρακολούθησης έως 1 εκατοστό.
Σύμφωνα με την Apple, το ARKit επεξεργάζεται έως 500 χαρακτηριστικά σημεία ανά καρέ και το μέγεθος του χάρτη περιβάλλοντος (ARWorldMap) μπορεί να φτάσει τα 100 μέτρα σε διάμετρο. Η σάρωση του περιβάλλοντος και η δημιουργία χάρτη διαρκεί περίπου 2-3 δευτερόλεπτα μετά την έναρξη της συνεδρίας — όλο αυτό το διάστημα το ARKit συλλέγει δεδομένα από την κάμερα και τους αισθητήρες.
ARAnchor — το βασικό αντικείμενο για την τοποθέτηση περιεχομένου. Όταν το ARKit αναγνωρίσει ένα επίπεδο, δημιουργεί ένα ARPlaneAnchor με προσδιορισμό της θέσης, του μεγέθους και του προσανατολισμού της επιφάνειας. Ο προγραμματιστής αντιδρά στον εκπρόσωπο session(_:didAdd:) και τοποθετεί το 3D αντικείμενο στο σημείο ανίχνευσης του επιπέδου μέσω SceneKit ή RealityKit.
Για την υλοποίηση συρσίματος αντικειμένων χρησιμοποιείται το ARHitTestResult: κατά το άγγιγμα της οθόνης, εκτελείται hit-test μέσω του καρέ ARKit, το οποίο επιστρέφει το σημείο τομής της ακτίνας με τα αναγνωρισμένα επίπεδα. Το σημείο που βρέθηκε μετατρέπεται σε ARAnchor και το αντικείμενο σταθεροποιείται σε αυτή τη θέση.
func renderer(
_ renderer: SCNSceneRenderer,
didAdd node: SCNNode,
for anchor: ARAnchor
) {
guard let planeAnchor = anchor
as? ARPlaneAnchor else { return }
let boxNode = SCNNode(
geometry: SCNBox(
width: planeAnchor.extent.x,
height: 0.01,
length: planeAnchor.extent.z,
chamferRadius: 0
)
)
node.addChildNode(boxNode)
}
ARKit παρέχει ένα σύνολο τεχνολογιών που καθιστούν την επαυξημένη πραγματικότητα ρεαλιστική και λειτουργική: παρακολούθηση κίνησης με 6 βαθμούς ελευθερίας, κατανόηση σκηνής μέσω αναγνώρισης επιπέδων και ορίων, εκτίμηση φωτισμού για σωστή σκίαση, απόφραξη ατόμων και ανακλαστικές επιφάνειες βάσει χαρτών περιβάλλοντος.
Motion Capture (ARKit 3+) — τεχνολογία παρακολούθησης ανθρώπινου σώματος σε πραγματικό χρόνο μέσω κάμερας. Επιτρέπει την κίνηση χαρακτήρων με τις κινήσεις του χρήστη χωρίς εξωτερικούς αισθητήρες: 18 αρθρώσεις αναγνωρίζονται σε συχνότητα 60 Hz. Χρησιμοποιείται σε εφαρμογές γυμναστικής και για δημιουργία πρωτοτύπων κίνησης.
Κοινές συνεδρίες AR (ARKit 2+) επιτρέπουν σε πολλές συσκευές να βλέπουν τα ίδια εικονικά αντικείμενα σε κοινό χώρο. Το ARWorldMap αποθηκεύει τον χάρτη περιβάλλοντος, ο οποίος μεταδίδεται σε άλλες συσκευές μέσω δικτύου. Η Apple δίνει ένα παράδειγμα ακρίβειας συγχρονισμού: δύο iPhone 12 Pro στο ίδιο δωμάτιο βλέπουν το αντικείμενο με απόκλιση όχι μεγαλύτερη από 2 εκατοστά.
Ο σαρωτής LiDAR, εγκατεστημένος σε iPhone 12 Pro και νεότερα, αλλάζει ριζικά τις δυνατότητες του ARKit. Αντί του προσδιορισμού βάθους μέσω λογισμικού ανάλυσης εικόνων, το LiDAR παρέχει άμεσα χάρτη βάθους με ακρίβεια έως 3 εκατοστά σε εύρος έως 5 μέτρα. Αυτό επιτρέπει στο ARKit να αναγνωρίζει επίπεδα άμεσα, χωρίς προκαταρκτική σάρωση με κάμερα.
Με το LiDAR, το ARKit μπορεί να προσδιορίσει την αδιαφάνεια αντικειμένων: ένα εικονικό αντικείμενο μπορεί να κρυφτεί πίσω από μια πραγματική καρέκλα ή τραπέζι. Επιπλέον, το Scene Reconstruction χτίζει ένα 3D πλέγμα του περιβάλλοντος σε πραγματικό χρόνο — έως 10 εκατομμύρια πολύγωνα ανά δωμάτιο, που χρησιμοποιείται για προσομοίωση φυσικής σύγκρουσης και ρεαλιστικό φωτισμό.
// Διαμόρφωση για LiDAR
let lidarConfig = ARWorldTrackingConfiguration()
lidarConfig.planeDetection = [.horizontal]
lidarConfig.sceneReconstruction = .mesh
arView.session.run(lidarConfig)
// Ανίχνευση αφής στο επίπεδο
override func touchesBegan(
_ touches: Set<UITouch>,
with event: UIEvent?
) {
let location = touches.first?.location(in: arView)
guard let hitPoint = location else { return }
let results = arView
.raycastQuery(
from: hitPoint,
allowing: .existingPlaneInfinite,
alignment: .horizontal
)
}
Η ενσωμάτωση του ARKit ξεκινά με ελάχιστες απαιτήσεις: Xcode 15+, iOS 17 SDK, συσκευή με τσιπ A12 Bionic και νεότερη. Στο Info.plist πρέπει να προστεθεί το κλειδί NSCameraUsageDescription — το ARKit χρησιμοποιεί την κάμερα για παρακολούθηση και εμφάνιση της σκηνής AR. Χωρίς αυτό το κλειδί, η εφαρμογή θα τερματιστεί με σφάλμα κατά την εκκίνηση της συνεδρίας AR.
Για την απόδοση περιεχομένου, το iOS προσφέρει τρία πλαίσια: SceneKit για 3D γραφικά μεσαίας πολυπλοκότητας, RealityKit για φωτορεαλιστική απόδοση με υλικά PBR και Metal για μέγιστη απόδοση. Το RealityKit — η συνιστώμενη επιλογή για νέα έργα, καθώς περιλαμβάνει ενσωματωμένη υποστήριξη για λειτουργίες ARKit, κίνηση και φυσική.
Σύμφωνα με την Apple, ο μέσος χρόνος ενσωμάτωσης μιας βασικής οθόνης AR σε μια υπάρχουσα εφαρμογή — περίπου 2 ώρες για έναν έμπειρο προγραμματιστή iOS. Οι κύριες δυσκολίες προκύπτουν κατά την εργασία με επικάλυψη στοιχείων UI στη σκηνή AR και κατά τον χειρισμό διακοπών της συνεδρίας AR — κλήσεις, εναλλαγή εφαρμογών ή απώλεια παρακολούθησης σε αμυδρό φωτισμό.
Το ARKit μπορεί να χάσει την παρακολούθηση σε μια σειρά περιπτώσεων: ανεπαρκής φωτισμός (λιγότερο από 100 lux), απουσία χαρακτηριστικών σημείων (μονόχρωμοι τοίχοι), γρήγορες κινήσεις κάμερας ή κάλυψη φακού. Ο εκπρόσωπος ARSessionDelegate παρέχει μεθόδους για τον χειρισμό αυτών των καταστάσεων — συνιστάται η εμφάνιση υποδείξεων στον χρήστη: “Μετακινήστε τη συσκευή πιο αργά” ή “Ανάψτε τον φωτισμό”.
Για ανάκαμψη μετά από αποτυχία, το ARKit εκκινεί αυτόματα επανατοπισμό — προσπαθεί να ταιριάξει την τρέχουσα ροή βίντεο με τον αποθηκευμένο χάρτη περιβάλλοντος. Εάν ο επανατοπισμός δεν είναι δυνατός, η συνεδρία επανεκκινείται με νέα διαμόρφωση. Συνιστάται η αποθήκευση του ARWorldMap κατά την έξοδο από την εφαρμογή για γρήγορη αποκατάσταση της σκηνής AR κατά την επιστροφή.
class ARViewController: UIViewController {
let arView = ARSCNView()
override func viewDidLoad() {
super.viewDidLoad()
arView.session.delegate = self
let config = ARWorldTrackingConfiguration()
config.planeDetection = [.horizontal]
config.frameSemantics = .personSegmentation
arView.session.run(config)
}
func sessionWasInterrupted(
_ session: ARSession
) {
showAlert("Συνεδρία διακόπηκε")
}
}
Συχνές ερωτήσεις
Το ARKit λειτουργεί σε συσκευές Apple με τσιπ A12 Bionic και νεότερες: iPhone XS, XR, 11, 12, 13, 14, 15, 16 και SE (2ης και 3ης γενιάς), iPad Pro 2018+, iPad Air 2020+, iPad mini 2021+. Για λειτουργίες LiDAR απαιτούνται iPhone 12 Pro/Pro Max, iPhone 13 Pro/Pro Max, iPhone 14 Pro/Pro Max, iPhone 15 Pro/Pro Max και iPad Pro 2020+.
Ναι, το ARKit μπορεί να χρησιμοποιηθεί απευθείας με Metal, αλλά αυτό απαιτεί τη σύνταξη δικού του shader και απόδοσης. Τα SceneKit και RealityKit παρέχουν έτοιμες λύσεις με ενσωμάτωση ARKit σε επίπεδο πλαισίου. Για αρχάριους, το RealityKit είναι η βέλτιστη επιλογή, καθώς χειρίζεται αυτόματα τις λειτουργίες ARKit.
Το ARKit αξιολογεί αυτόματα τον φωτισμό σκηνής μέσω της κάμερας και παρέχει δεδομένα σχετικά με την κατεύθυνση, την ένταση και τη θερμοκρασία χρώματος της πηγής φωτός μέσω AREnvironmentProbeAnchor. Αυτό επιτρέπει στα εικονικά αντικείμενα να ρίχνουν σωστά σκιές και να αντανακλούν το περιβάλλον, δημιουργώντας ρεαλιστική σύντηξη με τον πραγματικό κόσμο.
ARKit λειτουργεί μόνο σε iOS και χρησιμοποιεί Visual-Inertial Odometry για παρακολούθηση, ενώ το ARCore της Google λειτουργεί σε Android και χρησιμοποιεί το δικό του Motion Tracking βάσει IMU και κάμερας. Το ARKit έχει πλεονέκτημα χάρη στην ενσωμάτωση υλικού με τσιπ Apple, και το ARCore — πολλαπλές πλατφόρμες μέσω Cloud Anchors.
Ναι, το ARKit είναι ιδανικό για AR παιχνίδια. Τα SceneKit και RealityKit υποστηρίζουν φυσική (SCNPhysicsBody, PhysicsSimulation), κίνηση, ήχο και σωματίδια. Γνωστά παραδείγματα — Pokémon GO (χρησιμοποιεί δική του μηχανή με ARKit), Angry Birds AR και Lego AR Studio. Το ARKit υποστηρίζει επίσης συνεδρίες πολλών παικτών μέσω ARWorldMap.
Σύνοψη
Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση
Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.
Διαβάστε επίσης