Camara, Geolocalización y Sensores
Volver a clases
Desarrollo Móvil●●Intermedio

Camara, Geolocalización y Sensores

120 min

Implementación de librerías para funciones nativas del teléfono.

Práctica: App móvil con sensores, cámara y geolocalización

Objetivo

Desarrollar una aplicación móvil con Expo y React Native que utilice sensores del dispositivo, geolocalización, cámara y galería para realizar una captura automática de una fotografía cuando el teléfono esté inclinado dentro de un rango definido y orientado hacia el norte.


Descripción

La aplicación deberá monitorear continuamente:

  • la inclinación del dispositivo
  • la dirección hacia la que apunta
  • la ubicación del usuario

Cuando se cumplan las condiciones definidas, la app debe tomar una fotografía automáticamente y mostrarla en pantalla junto con la información de ubicación.


Funcionalidades requeridas

La aplicación debe incluir:

1. Sensores

Detectar la inclinación del dispositivo usando sensores del teléfono.

Ejemplo de condición:

  • inclinación entre 40° y 60°

2. Orientación hacia el norte

Detectar si el dispositivo apunta aproximadamente hacia el norte.

Se puede usar una tolerancia aproximada: 345° – 15°


3. Geolocalización

Obtener y mostrar:

  • latitud
  • longitud

4. Cámara

Cuando se cumplan las condiciones:

  • inclinación correcta
  • orientación al norte

la aplicación debe capturar una fotografía automáticamente.

La foto debe mostrarse en pantalla.


5. Galería

La aplicación debe permitir:

  • guardar la imagen capturada en la galería

Información mostrada con la foto

Después de la captura se debe mostrar:

  • fecha y hora
  • latitud
  • longitud
  • orientación detectada
  • inclinación detectada

Tecnologías sugeridas

La aplicación debe desarrollarse con:

  • Expo
  • React Native
  • Hooks (useState, useEffect)

Librerías recomendadas:

  • expo-sensors
  • expo-location
  • expo-camera
  • expo-image-picker
  • expo-media-library

Entregables

1. Código

Proyecto completo en Expo. (Sin node_modules)


Reto opcional

Implementar alguna mejora adicional:

  • brújula visual
  • historial de fotos
  • vibración cuando se detecte la posición correcta
  • mostrar datos sobre la imagen capturada

Recursos

1 recurso disponible

Reto de Lectura

Reto de LecturaPrincipiante90 min🟢 IA requerida

Auditoría IA #3 — La feature con permisos (para TU proyecto)

La auditoría final: genera la feature de hardware de tu proyecto (cámara, GPS o sensores) y audítala donde la IA siempre falla — el permiso denegado y el mundo real.

Tu proyecto integrador necesita una feature de hardware. Hoy la generas, la auditas y decides si entra — el flujo completo de tu vida profesional, sobre TU app.

Paso 1 — Genera con contexto (15 min). Pídele a tu IA la feature de TU proyecto, por ejemplo:

"En mi app de [tu proyecto] (React Native + Expo, TypeScript) necesito [tomar foto de perfil / obtener la ubicación para X / escanear un código]. Mis pantallas son [...] y mis datos tienen esta forma [...]"

Paso 2 — Audita (45 min). El hardware agrega una capa nueva a la checklist de siempre:

#CapaPregunta clave
1Permiso pedido¿Se pide ANTES de usar el hardware, o el código asume que ya lo tiene?
2Permiso denegado¿Qué ve el usuario que dice "no"? ¿Pantalla rota, spinner eterno, o un mensaje digno con cómo reactivarlo en Ajustes?
3"No preguntar de nuevo"En Android el usuario puede denegar permanentemente: ¿la app lo detecta o pide el permiso en un loop infinito?
4Hardware ausente¿Emulador sin cámara, tablet sin GPS? ¿La app truena o degrada con gracia?
5Estados de esperaEl GPS puede tardar 10s en interiores: ¿hay loading? ¿timeout? ¿se puede cancelar?
6Lo de siempreuseEffect con cleanup (¿quién apaga la suscripción del sensor/watchPosition?), async visible, tipos honestos, listas sanas
7SabotajeDeniega el permiso de verdad. Actívalo y desactívalo desde Ajustes con la app abierta. Pruébalo en el emulador SIN el hardware.

Paso 3 — Informe + integración (30 min, entregable): prompt con contexto, 4+ hallazgos con escenario, corrección verificada CON el permiso denegado, y veredicto: commit a tu proyecto (integra cámara auditada, maneja permiso denegado) o rechazo argumentado.