Um smartphone moderno não é apenas um dispositivo de computação, mas um conjunto de sensores poderosos. Câmera, acelerômetro, giroscópio, NFC, scanner facial — tudo isso está disponível para desenvolvedores através das APIs da plataforma. Recursos de hardware permitem criar aplicações que interagem com o mundo físico: de rastreadores de fitness a jogos de realidade aumentada. Neste artigo, abordaremos todos os principais sensores e APIs para iOS e Android. Para mais detalhes, consulte a documentação oficial de sensores Android.
Principais conclusões
Os recursos de hardware do smartphone incluem dezenas de sensores que coletam dados sobre o ambiente e a posição do dispositivo. Esses dados estão disponíveis através da Sensors API (Android) e Core Motion (iOS). Os sensores são divididos em três categorias: sensores de movimento (acelerômetro, giroscópio), sensores de posição (magnetômetro) e sensores ambientais (barômetro, luz, temperatura).
O acelerômetro mede a aceleração do dispositivo em três eixos (x, y, z) em m/s². É usado para: detecção de orientação da tela (rotação automática), contagem de passos (navegação de pedestres), reconhecimento de gestos (agitar para desfazer), jogos com controle de inclinação. Android Sensor.TYPE_ACCELEROMETER e Core Motion CMMotionManager (iOS) fornecem dados brutos a até 200 Hz.
O giroscópio mede a velocidade angular de rotação do dispositivo em três eixos (rad/s). Ao contrário do acelerômetro, o giroscópio não é afetado pela gravidade, tornando-o ideal para rastrear rotações. Aplicações: estabilização de vídeo, aplicações VR/AR, navegação interna, controles de jogos. Sensor.TYPE_GYROSCOPE (Android) e CMMotionManager (iOS) são as principais APIs.
O magnetômetro mede o campo magnético da Terra em três eixos (µT) e funciona como uma bússola eletrónica. É usado em aplicações de navegação para determinar a direção norte. O magnetômetro é sensível a interferências de objetos metálicos e altifalantes; é necessária calibração (o característico movimento em forma de oito). Sensor.TYPE_MAGNETIC_FIELD — API Android.
O barômetro mede a pressão atmosférica (hPa) e é usado para determinar a altitude acima do nível do mar com precisão de até 1 metro. O sensor de proximidade desliga o ecrã quando o telefone é aproximado do ouvido durante uma chamada. O sensor de luz ambiente ajusta o brilho do ecrã. Todos esses sensores são acessíveis através do SensorManager (Android) ou CMMotionManager (iOS) para a maioria dos sensores de movimento.
A câmera é um dos componentes de hardware mais requisitados. No Android, o acesso é através do CameraX (API Jetpack moderna) ou Camera2 (API de baixo nível). O CameraX lida automaticamente com o ciclo de vida, suporta Preview, ImageCapture, ImageAnalysis (análise de quadros ML) e VideoCapture. No iOS, a câmera está disponível através do AVFoundation: AVCaptureSession gerencia a captura, AVCaptureDevice configura parâmetros (foco, ISO, balanço de brancos).
O microfone é usado para gravação de áudio, controlo por voz e reconhecimento de fala. No Android — MediaRecorder ou AudioRecord; no iOS — AVAudioRecorder. O acesso à câmera e ao microfone requer permissão do utilizador: Manifest.permission.CAMERA e RECORD_AUDIO (Android), NSCameraUsageDescription e NSMicrophoneUsageDescription (iOS) — strings no Info.plist que descrevem o motivo do uso.
Na IT Sectr, implementámos mais de 20 projetos com câmaras personalizadas: desde scanners de códigos QR a aplicações com filtros AR. Conclusão principal: no Android, o CameraX poupa semanas de desenvolvimento em comparação com o Camera2, enquanto no iOS, o AVFoundation dá controlo total sobre os parâmetros de captura. Exemplo de captura básica de imagem 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()))
}
}
Os recursos de hardware biométrico permitem que os utilizadores iniciem sessão numa aplicação usando impressão digital ou rosto. O iOS usa Face ID (câmara TrueDepth, 30 000 pontos invisíveis) e Touch ID (scanner de impressões digitais capacitivo). O Android usa BiometricPrompt, que combina scanner de impressões digitais (capacitivo ou ultrassónico) e Face Unlock (câmara + ML). O Face ID é mais seguro que o Touch ID: probabilidade de correspondência 1:1 000 000 vs 1:50 000.
NFC (Near Field Communication) é uma tecnologia de comunicação sem fios com alcance de até 10 cm. É usada para: pagamentos sem contacto (Google Pay, Apple Pay), leitura de tags NFC (cartazes inteligentes, cartões de visita), verificação (documentos, bilhetes), transferência de dados (Android Beam — obsoleto). Core NFC (iOS) e NfcAdapter (Android) são as principais APIs. No iOS, o NFC está disponível apenas para leitura (exceto pagamentos Apple Pay).
Bluetooth/BLE (Bluetooth Low Energy) — para conectar dispositivos externos: auscultadores, pulseiras de fitness, sensores médicos, fechaduras inteligentes. Core Bluetooth (iOS) e android.bluetooth (Android) — APIs para digitalizar, conectar e trocar dados. O BLE é energeticamente eficiente: um dispositivo pode funcionar com uma bateria durante anos. No iOS, a operação BLE em segundo plano requer ativação de Background Modes → Uses Bluetooth LE accessories.
Recursos de hardware de saúde: HealthKit (iOS) — framework da Apple para agregação de dados de saúde. Os utilizadores concedem permissão para ler e escrever tipos específicos de dados: passos, frequência cardíaca, sono, calorias, peso, pressão arterial. Todos os dados são armazenados num repositório protegido e sincronizados através do iCloud. O HealthKit fornece uma interface unificada para escrever HKQuantitySample e ler através de HKSampleQuery ou HKStatisticsQuery.
Google Fit — plataforma do Google para dados de fitness no Android. A API divide-se em dois conjuntos: Sensors API (dados reais dos sensores do dispositivo — passos, calorias) e History API (leitura/escrita de dados históricos). O Google Fit também agrega dados de outras aplicações de fitness (Strava, Runkeeper) através de autorização. No iOS, o Google Fit está disponível através da REST API.
Core Motion (iOS) — framework para trabalhar com sensores de movimento sem chip dedicado: acelerómetro, giroscópio, pedómetro (CMPedometer), altímetro (CMAltimeter). CMPedometer conta passos, distância percorrida, ritmo e pisos subidos. No Android, capacidades semelhantes são fornecidas por Sensor.TYPE_STEP_COUNTER e Step Detector. Todos os dados de fitness requerem consentimento explícito do utilizador.
A realidade aumentada (RA) e a aprendizagem automática no dispositivo representam o auge das capacidades de hardware do smartphone. ARKit (Apple, iOS 11+) usa a câmara, giroscópio, acelerómetro e LiDAR (em modelos Pro) para rastrear o espaço circundante. O ARCore (Google) é o equivalente Android com rastreamento de planos, reconhecimento de imagens e estimativa de iluminação. Ambos os frameworks usam Odometria Visual Inercial (VIO) — uma combinação de câmara e sensores inerciais.
ML Kit (Google) — SDK para aprendizagem automática no Android e iOS. Inclui APIs prontas: reconhecimento de texto (OCR), digitalização de códigos de barras, reconhecimento facial, deteção de pose, rastreamento de objetos, reconhecimento de texto em imagens e processamento de linguagem natural. O ML Kit funciona completamente no dispositivo — os dados não são enviados para o servidor, garantindo privacidade e funcionamento offline.
Core ML (Apple) — framework para integrar modelos ML em aplicações iOS. Os modelos (mlmodel) são convertidos a partir de TensorFlow, PyTorch ou Keras através do Core ML Tools. Vision — framework para visão computacional: deteção facial, texto, códigos de barras, alinhamento horizontal. Combinar Vision e Core ML permite construir pipelines ML em tempo real: captura de frame → análise Vision → previsão Core ML → atualização da UI — tudo no dispositivo com latência inferior a 50 ms.
Perguntas frequentes
Um smartphone moderno contém acelerómetro, giroscópio, magnetómetro (bússola), barómetro, sensor de proximidade, sensor de luz ambiente, scanner de impressões digitais, câmara, microfone, NFC, Bluetooth, Wi-Fi, GPS. Os modelos topo de gama também têm LiDAR, monitor de frequência cardíaca e sensor de temperatura.
O Face ID é autenticação biométrica facial usando a câmara TrueDepth (projeção de 30 000 pontos). O Touch ID é autenticação por impressão digital através de um scanner capacitivo. O Face ID é mais seguro (1 em 1 000 000 vs 1 em 50 000) e funciona sem contacto.
A abordagem moderna é o CameraX (biblioteca Jetpack). O CameraX simplifica o trabalho com a câmara: gere automaticamente o ciclo de vida, suporta Preview, ImageCapture, ImageAnalysis e VideoCapture. Para projetos antigos, é usada a API Camera2.
O NFC permite: ler e escrever tags NFC (cartazes inteligentes, cartões de visita), pagamentos sem contacto (Google Pay, Apple Pay), transferir dados entre dispositivos, verificar documentos, abrir portas, usar cartões de transporte. No iOS, o NFC está disponível apenas para leitura (exceto Apple Pay).
O ARKit é o framework da Apple para realidade aumentada no iOS. O ARCore é o equivalente do Google para Android. Ambos suportam rastreamento de planos, reconhecimento de imagens e estimativa de iluminação. O ARKit usa LiDAR (no iPad Pro/iPhone Pro) para posicionamento mais preciso.
Resumo
Vamos desenvolver um aplicativo móvel chave na mão
A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.