Preguntas para Entrevistas de Desarrollador Senior React Native: Guía Completa

Milad Bonakdar
Autor
Domina el desarrollo avanzado de React Native con preguntas esenciales para entrevistas que cubren la optimización del rendimiento, los módulos nativos, la gestión del estado, las pruebas, los patrones de arquitectura y las mejores prácticas multiplataforma para desarrolladores senior.
Introducción
Se espera que los desarrolladores Senior de React Native diseñen aplicaciones multiplataforma escalables, optimicen el rendimiento, integren módulos nativos y tomen decisiones arquitectónicas informadas. Este rol exige una profunda experiencia en React Native, gestión de estado, desarrollo nativo y la capacidad de resolver desafíos complejos de desarrollo móvil.
Esta guía completa cubre las preguntas esenciales de la entrevista para los Desarrolladores Senior de React Native, que abarcan conceptos avanzados de React, optimización del rendimiento, gestión de estado, módulos nativos, pruebas y patrones arquitectónicos. Cada pregunta incluye respuestas detalladas, evaluación de rareza y clasificaciones de dificultad.
React Avanzado & Hooks (5 Preguntas)
1. Explica useMemo y useCallback. ¿Cuándo deberías usarlos?
Respuesta: Ambos hooks optimizan el rendimiento memorizando valores/funciones.
- useMemo: Memoriza valores calculados (cálculos costosos)
- useCallback: Memoriza referencias de funciones (previene la recreación)
- Cuándo usar: Solo cuando tienes problemas de rendimiento. La optimización prematura puede hacer que el código sea más difícil de leer.
Rareza: Muy Común Dificultad: Media
2. ¿Qué es useRef y cuáles son sus casos de uso?
Respuesta:
useRef crea una referencia mutable que persiste a través de los renders sin causar re-renders.
- Casos de uso:
- Acceder a elementos DOM/nativos
- Almacenar valores mutables sin disparar re-render
- Mantener valores previos
- Almacenar timers/intervals
Rareza: Común Dificultad: Media
3. Explica los Custom Hooks y cuándo crearlos.
Respuesta: Los custom hooks extraen la lógica con estado reutilizable en funciones separadas.
- Beneficios: Reutilización de código, separación de responsabilidades, pruebas más fáciles
- Convención: Debe comenzar con "use"
Rareza: Común Dificultad: Media
4. ¿Qué es React Context y cuándo deberías usarlo?
Respuesta: Context proporciona una forma de pasar datos a través del árbol de componentes sin el "prop drilling".
- Casos de uso: Tema, autenticación, preferencias de idioma
- Precaución: Puede causar re-renders innecesarios si no se usa con cuidado
Rareza: Muy Común Dificultad: Media
5. Explica la diferencia entre useEffect y useLayoutEffect.
Respuesta: Ambos ejecutan side effects, pero en diferentes momentos:
- useEffect: Se ejecuta de forma asíncrona después de que el render se pinta en la pantalla
- useLayoutEffect: Se ejecuta sincrónicamente antes de pintar (bloquea las actualizaciones visuales)
- Usa useLayoutEffect cuando: Necesitas medir el DOM o prevenir el parpadeo visual
Rareza: Media Dificultad: Difícil
Gestión de Estado (4 Preguntas)
6. Explica Redux y sus principios básicos.
Respuesta: Redux es un contenedor de estado predecible para aplicaciones de JavaScript.
- Principios básicos:
- Única fuente de verdad (un solo store)
- El estado es de solo lectura (despacha acciones para cambiar)
- Los cambios se realizan con funciones puras (reducers)
Rareza: Muy Común Dificultad: Difícil
7. ¿Qué es Redux Toolkit y cómo simplifica Redux?
Respuesta: Redux Toolkit es la forma oficial recomendada de escribir lógica de Redux.
- Beneficios:
- Menos boilerplate
- Immer incorporado para actualizaciones inmutables
- Incluye Redux Thunk
- Mejor soporte de TypeScript
Rareza: Común Dificultad: Media
8. ¿Cuáles son las alternativas a Redux para la gestión del estado?
Respuesta: Existen múltiples soluciones de gestión de estado:
- Context API + useReducer: Incorporado, bueno para aplicaciones simples
- MobX: Basado en observables, menos boilerplate
- Zustand: Mínimo, basado en hooks
- Recoil: Basado en átomos, por Facebook
- Jotai: Átomos primitivos
Rareza: Común Dificultad: Media
9. ¿Cómo manejas los side effects en Redux?
Respuesta: Usa middleware para operaciones asíncronas:
- Redux Thunk: Funciones que retornan funciones
- Redux Saga: Basado en generadores, más poderoso
- Redux Observable: Basado en RxJS
Rareza: Común Dificultad: Difícil
Optimización del Rendimiento (5 Preguntas)
10. ¿Cómo optimizas el rendimiento de FlatList?
Respuesta: Múltiples estrategias mejoran el desplazamiento de FlatList:
- Usa
keyExtractor: Proporciona claves únicas getItemLayout: Omite la medición para elementos de altura fijaremoveClippedSubviews: Desmonta las vistas fuera de la pantalla (Android)maxToRenderPerBatch: Controla el tamaño del lotewindowSize: Controla la ventana renderizadainitialNumToRender: Elementos a renderizar inicialmente- Memoriza
renderItem: Previene re-renders innecesarios
Rareza: Muy Común Dificultad: Media
11. ¿Qué es el puente de React Native y cómo afecta el rendimiento?
Respuesta: El puente es la capa de comunicación entre JavaScript y el código nativo.
- Cómo funciona:
- JavaScript se ejecuta en un hilo separado
- Los módulos nativos se ejecutan en hilos nativos
- El puente serializa los datos entre ellos (JSON)
- Impacto en el rendimiento:
- La comunicación del puente es asíncrona
- Sobrecarga de serialización
- Puede convertirse en un cuello de botella con la comunicación frecuente
- Soluciones:
- Minimiza los cruces del puente
- Operaciones por lotes
- Usa animaciones nativas (omite el puente)
- Nueva Arquitectura (JSI) elimina el puente
Rareza: Común Dificultad: Difícil
12. ¿Cómo previenes re-renders innecesarios?
Respuesta: Múltiples técnicas previenen renders desperdiciados:
- React.memo: Memoriza componentes
- useMemo/useCallback: Memoriza valores/funciones
- Props de clave apropiadas: Ayuda a React a identificar los cambios
- Evita objetos/arrays inline: Crea nuevas referencias
- Divide los componentes: Componentes más pequeños y enfocados
Rareza: Muy Común Dificultad: Media
13. ¿Cómo optimizas las imágenes en React Native?
Respuesta: La optimización de imágenes es crucial para el rendimiento:
- Redimensiona las imágenes: Usa dimensiones apropiadas
- Cachea las imágenes: Usa librerías como react-native-fast-image
- Carga diferida (Lazy loading): Carga las imágenes bajo demanda
- Carga progresiva: Muestra un placeholder primero
- Usa formato WebP: Mejor compresión
Rareza: Común Dificultad: Media
14. ¿Qué herramientas usas para el performance profiling?
Respuesta: Múltiples herramientas ayudan a identificar problemas de rendimiento:
- React DevTools Profiler: Tiempos de render de componentes
- Flipper: Herramienta de depuración y profiling
- Performance Monitor: Monitor de FPS incorporado
- Systrace: Traza de rendimiento de Android
- Instruments: Perfilado de rendimiento de iOS
Rareza: Común Dificultad: Media
Módulos Nativos y Específicos de la Plataforma (4 Preguntas)
15. ¿Cómo creas un Módulo Nativo en React Native?
Respuesta: Los módulos nativos te permiten usar código específico de la plataforma.
Rareza: Media Dificultad: Difícil
16. ¿Cómo manejas el código específico de la plataforma?
Respuesta: Múltiples enfoques para código específico de la plataforma:
- Módulo de plataforma: Verifica la plataforma en tiempo de ejecución
- Archivos específicos de la plataforma:
.ios.jsy.android.js - Platform.select: Selecciona valores basados en la plataforma
Rareza: Muy Común Dificultad: Fácil
17. ¿Qué es la Nueva Arquitectura (Fabric y TurboModules)?
Respuesta: La Nueva Arquitectura mejora el rendimiento de React Native:
- Fabric: Nuevo sistema de renderizado
- Layout síncrono
- Mejor interop con vistas nativas
- Seguridad de tipos
- TurboModules: Nuevo sistema de módulos nativos
- Carga diferida
- JSI (JavaScript Interface) - comunicación directa en C++
- Sin serialización del puente
Beneficios:
- Inicio más rápido
- Menor uso de memoria
- Llamadas nativas síncronas
- Mejor seguridad de tipos
Rareza: Media Dificultad: Difícil
18. ¿Cómo manejas el deep linking en React Native?
Respuesta: El deep linking permite abrir pantallas específicas desde URLs.
Rareza: Común Dificultad: Media
Pruebas (3 Preguntas)
19. ¿Cómo pruebas los componentes de React Native?
Respuesta: Usa librerías de pruebas como Jest y React Native Testing Library.


