Prueba de desarrollador móvil: preguntas ejemplo y criterios de puntuación
Por qué las preguntas de ejemplo importan
La mayoría de las evaluaciones de desarrollador móvil están mal construidas. O se inclinan hacia trivialidades (¿cuál es el nombre del método de ciclo de vida en Android 11?) o son tan abiertas que colapsan bajo su propio peso. Las preguntas de ejemplo correctas se sitúan en el medio: lo suficientemente específicas para ser calificadas, lo suficientemente amplias para revelar juicio.
Si estás construyendo una evaluación móvil desde cero, saber qué tipos de preguntas funcionan es la mitad de la batalla. Aquí están los patrones que realmente predicen el desempeño laboral.
Preguntas específicas de iOS
1. Ciclo de vida del controlador de vista con estado
"Una pantalla de inicio de sesión se carga. En la primera renderización, obtiene la sesión de autenticación del llavero. Si la sesión no es válida, actualiza el token del servidor. Escribe el código para viewDidLoad y viewWillAppear que maneje esto sin llamadas de API duplicadas."
Esto prueba: comprensión del ciclo de vida de ViewController, gestión de estado, redes e programación defensiva. No es trivialidad. Un junior lo escribe diferente que un senior, y ambas versiones son aprendibles.
2. Fuga de memoria en delegación
"Aquí hay un controlador de vista que mantiene una referencia fuerte a un delegado. El delegado (un objeto gerente) mantiene una referencia fuerte de nuevo al controlador de vista. Escribe una prueba que capture este ciclo de retención."
Esto va más allá del conocimiento estático. Requiere comprender el problema, diseñar una prueba y solucionarlo. Trabajo real.
3. Navegación de SwiftUI + async-await
"Tienes una pila de navegación. Cuando se toca un botón, necesitas obtener datos, mostrar un estado de carga, luego navegar a una pantalla de detalle. Escribe el código usando async-await y @State."
Esto es actual. Elimina candidatos que no se han puesto al día y prioriza a personas que entienden patrones de concurrencia modernos.
Preguntas específicas de Android
1. Ciclo de vida de fragmento con estado guardado
"Un fragmento muestra una lista de elementos. La lista se obtiene de la red. Si el usuario rota el dispositivo, la lista debe persistir sin volver a obtener. Escribe el código usando ViewModel y SavedInstanceState."
Pruebas: ciclo de vida, persistencia de estado y patrones de arquitectura modernos. No trivial, no imposible.
2. Inyección de dependencias en pruebas
"Tienes un repositorio que depende de un servicio de API. Escribe el código de configuración de prueba que simule el servicio y garantice que el repositorio maneje un error 500 correctamente."
Esto revela si piensan en testabilidad en tiempo de diseño.
3. Permisos personalizados con devolución de llamada
"Solicita permiso de cámara en tiempo de ejecución. Si se rechaza, muestra un diálogo explicando por qué. Si se otorga, abre la cámara. Escribe el código."
Práctico, Android moderno. No se trata de memorizar nombres de API.
React Native (multiplataforma)
1. Fuga de estado de navegación
"Tienes dos pantallas en una pila de navegación. La pantalla A obtiene datos cuando se monta. Cuando el usuario navega a la pantalla B y vuelve a A, los datos deben ser obtenidos nuevamente, no en caché. Escribe el código usando React Navigation y hooks."
Esto prueba la comprensión del ciclo de vida del estado y una fuente común de errores.
2. Rendimiento: FlatList con imágenes
"Tienes un FlatList renderizando 1000 elementos de imagen. Es lento. Escribe el código que lo arregla (keyExtractor, getItemLayout o cambio de tamaño de imagen)."
Depuración práctica. El candidato conoce el problema o no.
3. Puente a módulo nativo
"Necesitas llamar a una función nativa desde JavaScript. Escribe el código de puente para iOS o Android, incluyendo manejo de errores."
Esto prueba si entienden el límite y pueden trabajar a través de él.
Preguntas móviles generales (todas las plataformas)
1. Compensación de versionado de API
"Tu API cambió un esquema de respuesta. Los clientes antiguos siguen en la naturaleza. Escribe el código en el cliente móvil que maneje ambas versiones."
Pruebas: pragmatismo, programación defensiva y pensamiento de compatibilidad hacia atrás.
2. Sincronización de estado sin conexión primero
"El usuario edita un elemento mientras está sin conexión. ¿Cómo colas esa edición y la sincronizas cuando regresa la conexión? Escribe el pseudocódigo."
Esto es a nivel de arquitectura. La respuesta revela madurez de diseño.
3. Rendimiento de inicio de la aplicación
"Tu aplicación tarda 4 segundos en lanzarse. ¿Cuáles son tres cosas que verificarías y por qué? Escribe el código para una de ellas."
Lo suficientemente abierto para revelar el pensamiento. Lo suficientemente específico para fundamentarlo.
Cómo calificar estas preguntas
No califiques por pulimiento. Califica por:
- ¿Funciona? ¿El código hace lo que se solicitó?
- ¿Lo desplegarías? ¿Hay casos extremos sin manejar?
- ¿Pueden explicarlo? En un recorrido, ¿pueden razonar sobre sus elecciones?
Para trabajo móvil específicamente, una entrevista de codificación en vivo con este tipo de preguntas revela más que solo el artefacto porque el candidato debe navegar las herramientas y su propia incertidumbre en tiempo real.
Qué evitar
No preguntes:
- "¿Cuál es la diferencia entre referencias Strong y Weak?" (trivialidad)
- "Implementa una aplicación de chat completa" (demasiado amplio, sin calificar)
- "¿Qué hace esta bandera oscura?" (sin sentido)
Sí preguntes:
- Problemas con criterios de éxito claros
- Problemas que muestren juicio (compensaciones, no solo corrección)
- Problemas que parezcan trabajo
Estas preguntas de ejemplo anclan tu evaluación al trabajo. Comienza con ellas, añade tus propias variantes específicas del dominio y valida la evaluación una vez que estés en vivo.
Próximos pasos
Si estás evaluando desarrolladores móviles a escala, tener un conjunto consistente de ejemplos en tu equipo previene cambios. Usa estos como plantilla, personaliza para tu pila y itera basado en lo que aprendas de los candidatos contratados.