Ένα σύγχρονο smartphone δεν είναι απλώς μια υπολογιστική συσκευή, αλλά ένα σύνολο ισχυρών αισθητήρων. Κάμερα, επιταχυνσιόμετρο, γυροσκόπιο, NFC, σαρωτής προσώπου — όλα αυτά είναι διαθέσιμα στους προγραμματιστές μέσω των API της πλατφόρμας. Οι λειτουργίες υλικού σας επιτρέπουν να δημιουργείτε εφαρμογές που αλληλεπιδρούν με τον φυσικό κόσμο: από ιχνηλάτες γυμναστικής έως παιχνίδια επαυξημένης πραγματικότητας. Σε αυτό το άρθρο, θα καλύψουμε όλους τους κύριους αισθητήρες και τα API για iOS και Android. Για περισσότερες λεπτομέρειες, δείτε την επίσημη τεκμηρίωση αισθητήρων Android.
Βασικά σημεία
Οι λειτουργίες υλικού του smartphone περιλαμβάνουν δεκάδες αισθητήρες που συλλέγουν δεδομένα για το περιβάλλον και τη θέση της συσκευής. Αυτά τα δεδομένα είναι διαθέσιμα μέσω του Sensors API (Android) και του Core Motion (iOS). Οι αισθητήρες χωρίζονται σε τρεις κατηγορίες: αισθητήρες κίνησης (επιταχυνσιόμετρο, γυροσκόπιο), αισθητήρες θέσης (μαγνητόμετρο) και αισθητήρες περιβάλλοντος (βαρόμετρο, φως, θερμοκρασία).
Το επιταχυνσιόμετρο μετρά την επιτάχυνση της συσκευής κατά μήκος τριών αξόνων (x, y, z) σε m/s². Χρησιμοποιείται για: ανίχνευση προσανατολισμού οθόνης (αυτόματη περιστροφή), μέτρηση βημάτων (πλοήγηση πεζών), αναγνώριση χειρονομιών (ανακίνηση για αναίρεση), παιχνίδια με έλεγχο κλίσης. Android Sensor.TYPE_ACCELEROMETER και Core Motion CMMotionManager (iOS) παρέχουν ακατέργαστα δεδομένα έως 200 Hz.
Το γυροσκόπιο μετρά τη γωνιακή ταχύτητα περιστροφής της συσκευής κατά μήκος τριών αξόνων (rad/s). Σε αντίθεση με το επιταχυνσιόμετρο, το γυροσκόπιο δεν επηρεάζεται από τη βαρύτητα, καθιστώντας το ιδανικό για την παρακολούθηση περιστροφών. Εφαρμογές: σταθεροποίηση βίντεο, εφαρμογές VR/AR, πλοήγηση εσωτερικών χώρων, χειριστήρια παιχνιδιών. Sensor.TYPE_GYROSCOPE (Android) και CMMotionManager (iOS) είναι τα κύρια API.
Το μαγνητόμετρο μετρά το μαγνητικό πεδίο της Γης κατά μήκος τριών αξόνων (µT) και λειτουργεί ως ηλεκτρονική πυξίδα. Χρησιμοποιείται σε εφαρμογές πλοήγησης για τον προσδιορισμό της κατεύθυνσης προς τον βορρά. Το μαγνητόμετρο είναι ευαίσθητο σε παρεμβολές από μεταλλικά αντικείμενα και ηχεία· απαιτείται βαθμονόμηση (η χαρακτηριστική κίνηση σχήματος οκτώ). Sensor.TYPE_MAGNETIC_FIELD — Android API.
Το βαρόμετρο μετρά την ατμοσφαιρική πίεση (hPa) και χρησιμοποιείται για τον προσδιορισμό του υψομέτρου πάνω από την επιφάνεια της θάλασσας με ακρίβεια έως 1 μέτρο. Ο αισθητήρας εγγύτητας απενεργοποιεί την οθόνη όταν το τηλέφωνο φέρεται στο αυτί κατά τη διάρκεια μιας κλήσης. Ο αισθητήρας φωτισμού περιβάλλοντος ρυθμίζει τη φωτεινότητα της οθόνης. Όλοι αυτοί οι αισθητήρες είναι προσβάσιμοι μέσω του ενοποιημένου SensorManager (Android) ή CMMotionManager (iOS) για τους περισσότερους αισθητήρες κίνησης.
Η κάμερα είναι ένα από τα πιο δημοφιλή εξαρτήματα υλικού. Στο Android, η πρόσβαση γίνεται μέσω του CameraX (σύγχρονο API Jetpack) ή του Camera2 (API χαμηλού επιπέδου). Το CameraX διαχειρίζεται αυτόματα τον κύκλο ζωής, υποστηρίζει Preview, ImageCapture, ImageAnalysis (ανάλυση καρέ ML) και VideoCapture. Στο iOS, η κάμερα είναι διαθέσιμη μέσω του AVFoundation: το AVCaptureSession διαχειρίζεται τη λήψη, το AVCaptureDevice διαμορφώνει παραμέτρους (εστίαση, ISO, ισορροπία λευκού).
Το μικρόφωνο χρησιμοποιείται για εγγραφή ήχου, φωνητικό έλεγχο και αναγνώριση ομιλίας. Στο Android — MediaRecorder ή AudioRecord· στο iOS — AVAudioRecorder. Η πρόσβαση στην κάμερα και το μικρόφωνο απαιτεί άδεια χρήστη: Manifest.permission.CAMERA και RECORD_AUDIO (Android), NSCameraUsageDescription και NSMicrophoneUsageDescription (iOS) — συμβολοσειρές στο Info.plist που περιγράφουν τον λόγο χρήσης.
Στην IT Sectr, έχουμε υλοποιήσει πάνω από 20 έργα με προσαρμοσμένες κάμερες: από σαρωτές QR κωδικών έως εφαρμογές με φίλτρα AR. Βασικό συμπέρασμα: στο Android, το CameraX εξοικονομεί εβδομάδες ανάπτυξης σε σύγκριση με το Camera2, ενώ στο iOS, το AVFoundation δίνει πλήρη έλεγχο των παραμέτρων λήψης. Παράδειγμα βασικής λήψης εικόνας μέσω CameraX:
class CameraFragment : Fragment() {
private lateinit var imageCapture: ImageCapture
fun startCamera() {
val processCameraProvider =
ProcessCameraProvider.getInstance(requireContext())
processCameraProvider.addListener({
val cameraProvider = processCameraProvider.get()
val preview = Preview.Builder()
.build()
.also {
it.setSurfaceProvider(viewFinder.surfaceProvider)
}
imageCapture = ImageCapture.Builder()
.setCaptureMode(ImageCapture.CAPTURE_MODE_MINIMIZE_LATENCY)
.build()
val cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA
cameraProvider.bindToLifecycle(
this, cameraSelector, preview, imageCapture
)
}, ContextCompat.getMainExecutor(requireContext()))
}
}
Οι βιομετρικές λειτουργίες υλικού επιτρέπουν στους χρήστες να συνδέονται σε μια εφαρμογή χρησιμοποιώντας δακτυλικό αποτύπωμα ή πρόσωπο. Το iOS χρησιμοποιεί Face ID (κάμερα TrueDepth, 30.000 αόρατα σημεία) και Touch ID (χωρητικός σαρωτής δακτυλικών αποτυπωμάτων). Το Android χρησιμοποιεί BiometricPrompt, το οποίο συνδυάζει σαρωτή δακτυλικών αποτυπωμάτων (χωρητικό ή υπερηχητικό) και Face Unlock (κάμερα + ML). Το Face ID είναι ασφαλέστερο από το Touch ID: πιθανότητα αντιστοίχισης 1:1.000.000 έναντι 1:50.000.
Το NFC (Επικοινωνία Κοντινού Πεδίου) είναι μια ασύρματη τεχνολογία επικοινωνίας με εμβέλεια έως 10 cm. Χρησιμοποιείται για: πληρωμές χωρίς επαφή (Google Pay, Apple Pay), ανάγνωση ετικετών NFC (έξυπνες αφίσες, επαγγελματικές κάρτες), επαλήθευση (έγγραφα, εισιτήρια), μεταφορά δεδομένων (Android Beam — ξεπερασμένο). Core NFC (iOS) και NfcAdapter (Android) είναι τα κύρια API. Στο iOS, το NFC είναι διαθέσιμο μόνο για ανάγνωση (εκτός από πληρωμές Apple Pay).
Bluetooth/BLE (Bluetooth Χαμηλής Ενέργειας) — για σύνδεση εξωτερικών συσκευών: ακουστικά, βραχιόλια γυμναστικής, ιατρικοί αισθητήρες, έξυπνες κλειδαριές. Core Bluetooth (iOS) και android.bluetooth (Android) — API για σάρωση, σύνδεση και ανταλλαγή δεδομένων. Το BLE είναι ενεργειακά αποδοτικό: μια συσκευή μπορεί να λειτουργεί με μπαταρία για χρόνια. Στο iOS, η λειτουργία BLE στο παρασκήνιο απαιτεί ενεργοποίηση του Background Modes → Uses Bluetooth LE accessories.
Λειτουργίες υλικού υγείας: HealthKit (iOS) — το πλαίσιο της Apple για συγκέντρωση δεδομένων υγείας. Ο χρήστης δίνει άδεια για ανάγνωση και εγγραφή συγκεκριμένων τύπων δεδομένων: βήματα, καρδιακός ρυθμός, ύπνος, θερμίδες, βάρος, αρτηριακή πίεση. Όλα τα δεδομένα αποθηκεύονται σε προστατευμένο αποθετήριο και συγχρονίζονται μέσω iCloud. Το HealthKit παρέχει μια ενοποιημένη διεπαφή για εγγραφή HKQuantitySample και ανάγνωση μέσω HKSampleQuery ή HKStatisticsQuery.
Google Fit — η πλατφόρμα της Google για δεδομένα γυμναστικής στο Android. Το API χωρίζεται σε δύο σύνολα: Sensors API (πραγματικά δεδομένα από αισθητήρες συσκευής — βήματα, θερμίδες) και History API (ανάγνωση/εγγραφή ιστορικών δεδομένων). Το Google Fit συγκεντρώνει επίσης δεδομένα από άλλες εφαρμογές γυμναστικής (Strava, Runkeeper) μέσω εξουσιοδότησης. Στο iOS, το Google Fit είναι διαθέσιμο μέσω REST API.
Core Motion (iOS) — πλαίσιο για εργασία με αισθητήρες κίνησης χωρίς αποκλειστικό τσιπ: επιταχυνσιόμετρο, γυροσκόπιο, βηματόμετρο (CMPedometer), υψόμετρο (CMAltimeter). CMPedometer μετρά βήματα, απόσταση που διανύθηκε, ρυθμό και αριθμό ορόφων που ανέβηκαν. Στο Android, παρόμοιες δυνατότητες παρέχονται από τα Sensor.TYPE_STEP_COUNTER και Step Detector. Όλα τα δεδομένα γυμναστικής απαιτούν ρητή συγκατάθεση του χρήστη.
Η επαυξημένη πραγματικότητα (AR) και η μηχανική μάθηση στη συσκευή αντιπροσωπεύουν την κορυφή των δυνατοτήτων υλικού του smartphone. ARKit (Apple, iOS 11+) χρησιμοποιεί κάμερα, γυροσκόπιο, επιταχυνσιόμετρο και LiDAR (σε μοντέλα Pro) για την παρακολούθηση του περιβάλλοντα χώρου. Το ARCore (Google) είναι το αντίστοιχο για Android με παρακολούθηση επιπέδου, αναγνώριση εικόνας και εκτίμηση φωτισμού. Και τα δύο πλαίσια χρησιμοποιούν Visual Inertial Odometry (VIO) — έναν συνδυασμό κάμερας και αδρανειακών αισθητήρων.
ML Kit (Google) — SDK για μηχανική μάθηση σε Android και iOS. Περιλαμβάνει έτοιμα API: αναγνώριση κειμένου (OCR), σάρωση γραμμωτού κώδικα, αναγνώριση προσώπου, ανίχνευση στάσης, παρακολούθηση αντικειμένων, αναγνώριση κειμένου σε εικόνες και επεξεργασία φυσικής γλώσσας. Το ML Kit λειτουργεί εξ ολοκλήρου στη συσκευή — τα δεδομένα δεν αποστέλλονται στον διακομιστή, διασφαλίζοντας το απόρρητο και τη λειτουργία εκτός σύνδεσης.
Core ML (Apple) — πλαίσιο για ενσωμάτωση μοντέλων ML σε εφαρμογές iOS. Τα μοντέλα (mlmodel) μετατρέπονται από TensorFlow, PyTorch ή Keras μέσω του Core ML Tools. Vision — πλαίσιο για υπολογιστική όραση: ανίχνευση προσώπου, κείμενο, γραμμωτοί κώδικες, οριζόντια στοίχιση. Ο συνδυασμός Vision και Core ML επιτρέπει τη δημιουργία αγωγών ML σε πραγματικό χρόνο: λήψη καρέ → ανάλυση Vision → πρόβλεψη Core ML → ενημέρωση UI — όλα στη συσκευή με καθυστέρηση μικρότερη από 50 ms.
Συχνές Ερωτήσεις
Ένα σύγχρονο smartphone περιέχει επιταχυνσιόμετρο, γυροσκόπιο, μαγνητόμετρο (πυξίδα), βαρόμετρο, αισθητήρα εγγύτητας, αισθητήρα φωτισμού περιβάλλοντος, σαρωτή δακτυλικών αποτυπωμάτων, κάμερα, μικρόφωνο, NFC, Bluetooth, Wi-Fi, GPS. Τα κορυφαία μοντέλα έχουν επίσης LiDAR, ανιχνευτή καρδιακών παλμών και αισθητήρα θερμοκρασίας.
Το Face ID είναι βιομετρική αυθεντικοποίηση προσώπου με χρήση της κάμερας TrueDepth (προβολή 30.000 σημείων). Το Touch ID είναι αυθεντικοποίηση δακτυλικού αποτυπώματος μέσω χωρητικού σαρωτή. Το Face ID είναι ασφαλέστερο (1 στο 1.000.000 έναντι 1 στις 50.000) και λειτουργεί χωρίς επαφή.
Η σύγχρονη προσέγγιση είναι το CameraX (βιβλιοθήκη Jetpack). Το CameraX απλοποιεί την εργασία με την κάμερα: διαχειρίζεται αυτόματα τον κύκλο ζωής, υποστηρίζει Preview, ImageCapture, ImageAnalysis και VideoCapture. Για παλαιότερα έργα, χρησιμοποιείται το API Camera2.
Το NFC επιτρέπει: ανάγνωση και εγγραφή ετικετών NFC (έξυπνες αφίσες, επαγγελματικές κάρτες), πληρωμές χωρίς επαφή (Google Pay, Apple Pay), μεταφορά δεδομένων μεταξύ συσκευών, επαλήθευση εγγράφων, άνοιγμα θυρών, χρήση καρτών μεταφοράς. Στο iOS, το NFC είναι διαθέσιμο μόνο για ανάγνωση (εκτός Apple Pay).
Το ARKit είναι το πλαίσιο της Apple για επαυξημένη πραγματικότητα στο iOS. Το ARCore είναι το αντίστοιχο της Google για Android. Και τα δύο υποστηρίζουν παρακολούθηση επιπέδου, αναγνώριση εικόνας και εκτίμηση φωτισμού. Το ARKit χρησιμοποιεί LiDAR (σε iPad Pro/iPhone Pro) για ακριβέστερο εντοπισμό θέσης.
Περίληψη
Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση
Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.