Een moderne smartphone is niet zomaar een computerapparaat, maar een verzameling krachtige sensoren. Camera, versnellingsmeter, gyroscoop, NFC, gezichtsscanner — dit alles is beschikbaar voor ontwikkelaars via platform-API's. Hardware functies stellen u in staat om applicaties te maken die interageren met de fysieke wereld: van fitnesstrackers tot augmented reality-spellen. In dit artikel behandelen we alle belangrijke sensoren en API's voor iOS en Android. Voor meer details, zie de officiële Android Sensors documentatie.
Belangrijkste punten
De hardware functies van een smartphone omvatten tientallen sensoren die gegevens verzamelen over de omgeving en de positie van het apparaat. Deze gegevens zijn beschikbaar via Sensors API (Android) en Core Motion (iOS). Sensoren worden onderverdeeld in drie categorieën: bewegingssensoren (versnellingsmeter, gyroscoop), positiesensoren (magnetometer) en omgevingssensoren (barometer, licht, temperatuur).
De versnellingsmeter meet de versnelling van het apparaat langs drie assen (x, y, z) in m/s². Het wordt gebruikt voor: detectie van schermoriëntatie (automatisch draaien), stappentelling (voetgangersnavigatie), gebarenherkenning (schudden om ongedaan te maken), door kantelen bestuurde spellen. Android Sensor.TYPE_ACCELEROMETER en Core Motion CMMotionManager (iOS) leveren ruwe gegevens tot 200 Hz.
De gyroscoop meet de hoeksnelheid van de rotatie van het apparaat langs drie assen (rad/s). In tegenstelling tot de versnellingsmeter wordt de gyroscoop niet beïnvloed door de zwaartekracht, waardoor hij ideaal is voor het volgen van rotaties. Toepassingen: videostabilisatie, VR/AR-applicaties, indoor navigatie, gamecontrollers. Sensor.TYPE_GYROSCOPE (Android) en CMMotionManager (iOS) zijn de belangrijkste API's.
De magnetometer meet het magnetisch veld van de aarde langs drie assen (µT) en fungeert als een elektronisch kompas. Het wordt gebruikt in navigatietoepassingen om de richting naar het noorden te bepalen. De magnetometer is gevoelig voor interferentie van metalen voorwerpen en luidsprekers; kalibratie is vereist (de karakteristieke achtvormige beweging). Sensor.TYPE_MAGNETIC_FIELD — Android API.
De barometer meet de atmosferische druk (hPa) en wordt gebruikt om de hoogte boven zeeniveau te bepalen met een nauwkeurigheid tot 1 meter. De nabijheidssensor schakelt het scherm uit wanneer de telefoon tijdens een gesprek tegen het oor wordt gehouden. De omgevingslichtsensor past de schermhelderheid aan. Al deze sensoren zijn toegankelijk via de uniforme SensorManager (Android) of CMMotionManager (iOS) voor de meeste bewegingssensoren.
De camera is een van de meest gevraagde hardwarecomponenten. Op Android is toegang via CameraX (moderne Jetpack API) of Camera2 (low-level API). CameraX beheert automatisch de levenscyclus, ondersteunt Preview, ImageCapture, ImageAnalysis (ML-frameanalyse) en VideoCapture. Op iOS is de camera beschikbaar via AVFoundation: AVCaptureSession beheert de vastlegging, AVCaptureDevice configureert parameters (focus, ISO, witbalans).
De microfoon wordt gebruikt voor audio-opname, spraakbediening en spraakherkenning. Op Android — MediaRecorder of AudioRecord; op iOS — AVAudioRecorder. Toegang tot de camera en microfoon vereist toestemming van de gebruiker: Manifest.permission.CAMERA en RECORD_AUDIO (Android), NSCameraUsageDescription en NSMicrophoneUsageDescription (iOS) — strings in Info.plist die de reden van gebruik beschrijven.
Bij IT Sectr hebben we meer dan 20 projecten met aangepaste camera's geïmplementeerd: van QR-code scanners tot toepassingen met AR-filters. Belangrijkste conclusie: op Android bespaart CameraX weken ontwikkeling in vergelijking met Camera2, terwijl op iOS AVFoundation volledige controle over de opnameparameters geeft. Voorbeeld van eenvoudige beeldvastlegging via 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()))
}
}
Biometrische hardware functies stellen gebruikers in staat om in te loggen op een applicatie met een vingerafdruk of gezicht. iOS gebruikt Face ID (TrueDepth-camera, 30.000 onzichtbare punten) en Touch ID (capacitieve vingerafdrukscanner). Android gebruikt BiometricPrompt, dat een vingerafdrukscanner (capacitief of ultrasoon) en Face Unlock (camera + ML) combineert. Face ID is veiliger dan Touch ID: kans op overeenkomst 1:1.000.000 versus 1:50.000.
NFC (Near Field Communication) is een draadloze communicatietechnologie met een bereik tot 10 cm. Het wordt gebruikt voor: contactloze betalingen (Google Pay, Apple Pay), lezen van NFC-tags (slimme posters, visitekaartjes), verificatie (documenten, tickets), gegevensoverdracht (Android Beam — verouderd). Core NFC (iOS) en NfcAdapter (Android) zijn de belangrijkste API's. Op iOS is NFC alleen beschikbaar voor lezen (behalve Apple Pay-betalingen).
Bluetooth/BLE (Bluetooth Low Energy) — voor het aansluiten van externe apparaten: hoofdtelefoons, fitnessarmbanden, medische sensoren, slimme sloten. Core Bluetooth (iOS) en android.bluetooth (Android) — API's voor scannen, verbinden en gegevensuitwisseling. BLE is energiezuinig: een apparaat kan jaren op een batterij werken. Op iOS vereist BLE-achtergrondwerking het inschakelen van Background Modes → Uses Bluetooth LE accessories.
Gezondheids hardware functies: HealthKit (iOS) — het framework van Apple voor het aggregeren van gezondheidsgegevens. De gebruiker geeft toestemming voor het lezen en schrijven van specifieke gegevenstypen: stappen, hartslag, slaap, calorieën, gewicht, bloeddruk. Alle gegevens worden opgeslagen in een beveiligde opslagplaats en gesynchroniseerd via iCloud. HealthKit biedt een uniforme interface voor het schrijven van HKQuantitySample en lezen via HKSampleQuery of HKStatisticsQuery.
Google Fit — het platform van Google voor fitnessgegevens op Android. De API is verdeeld in twee sets: Sensors API (echte gegevens van apparaatsensoren — stappen, calorieën) en History API (lezen/schrijven van historische gegevens). Google Fit aggregeert ook gegevens van andere fitness-apps (Strava, Runkeeper) via autorisatie. Op iOS is Google Fit beschikbaar via de REST API.
Core Motion (iOS) — een framework voor het werken met bewegingssensoren zonder dedicated chip: versnellingsmeter, gyroscoop, stappenteller (CMPedometer), hoogtemeter (CMAltimeter). CMPedometer telt stappen, afgelegde afstand, tempo en aantal beklommen verdiepingen. Op Android worden vergelijkbare mogelijkheden geboden door Sensor.TYPE_STEP_COUNTER en Step Detector. Alle fitnessgegevens vereisen expliciete toestemming van de gebruiker.
Augmented reality (AR) en machine learning op het apparaat vertegenwoordigen het toppunt van de hardwaremogelijkheden van de smartphone. ARKit (Apple, iOS 11+) gebruikt de camera, gyroscoop, versnellingsmeter en LiDAR (op Pro-modellen) voor het volgen van de omringende ruimte. ARCore (Google) is het equivalent voor Android met vlakvolging, beeldherkenning en lichtschatting. Beide frameworks gebruiken Visual Inertial Odometry (VIO) — een combinatie van camera en traagheidssensoren.
ML Kit (Google) — SDK voor machine learning op Android en iOS. Bevat kant-en-klare API's: tekstherkenning (OCR), barcodescannen, gezichtsherkenning, posedetectie, objectvolging, tekstherkenning in afbeeldingen en natuurlijke taalverwerking. ML Kit werkt volledig op het apparaat — gegevens worden niet naar de server gestuurd, wat privacy en offline functionaliteit garandeert.
Core ML (Apple) — framework voor het integreren van ML-modellen in iOS-applicaties. Modellen (mlmodel) worden geconverteerd van TensorFlow, PyTorch of Keras via Core ML Tools. Vision — framework voor computer vision: gezichtsdetectie, tekst, barcodes, horizontale uitlijning. Het combineren van Vision en Core ML maakt het mogelijk om real-time ML-pijplijnen te bouwen: frame vastleggen → Vision analyse → Core ML voorspelling → UI-update — allemaal op het apparaat met een latentie van minder dan 50 ms.
Veelgestelde vragen
Een moderne smartphone bevat een versnellingsmeter, gyroscoop, magnetometer (kompas), barometer, nabijheidssensor, omgevingslichtsensor, vingerafdrukscanner, camera, microfoon, NFC, Bluetooth, Wi-Fi, GPS. Flagship-modellen hebben ook LiDAR, hartslagmeter en temperatuursensor.
Face ID is biometrische gezichtsauthenticatie met behulp van de TrueDepth-camera (30.000-punts projectie). Touch ID is vingerafdrukauthenticatie via een capacitieve scanner. Face ID is veiliger (1 op 1.000.000 versus 1 op 50.000) en werkt zonder contact.
De moderne aanpak is CameraX (Jetpack-bibliotheek). CameraX vereenvoudigt het werk met de camera: het beheert automatisch de levenscyclus, ondersteunt Preview, ImageCapture, ImageAnalysis en VideoCapture. Voor oudere projecten wordt de Camera2 API gebruikt.
NFC stelt u in staat om: NFC-tags te lezen en schrijven (slimme posters, visitekaartjes), contactloze betalingen (Google Pay, Apple Pay), gegevens overdragen tussen apparaten, documenten verifiëren, deuren openen, transportkaarten gebruiken. Op iOS is NFC alleen beschikbaar voor lezen (behalve Apple Pay).
ARKit is het framework van Apple voor augmented reality op iOS. ARCore is het equivalent van Google voor Android. Beide ondersteunen vlakvolging, beeldherkenning en lichtschatting. ARKit gebruikt LiDAR (op iPad Pro/iPhone Pro) voor nauwkeurigere positionering.
Samenvatting
We ontwikkelen een mobiele applicatie turnkey
IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.