P
prepair.app
Comenzar entrevista →
EnglishУкраїнськаРусскийDeutsch
🟩

Junior Android (Kotlin)Preguntas de entrevista Android developer

Junior · sin experiencia / menos de 1 año

Las entrevistas de Android se enfocan en idioms de Kotlin, coroutines, y el ciclo de vida de la plataforma — la mayoría de las preguntas senior en realidad preguntan si entiendes que tu proceso puede morir en cualquier momento. Aquí están las preguntas hechas más a menudo, cada una con una respuesta modelo. Junior: teoría básica, definiciones y casos prácticos simples.

Pruébalo — sin cuenta necesaria
Preparando tu pregunta…

Temas para prepararte

Características del lenguaje Kotlin
Coroutines y Flow
Ciclo de vida de Android
Jetpack Compose
Arquitectura y DI
Room, Retrofit y testing

9 preguntas de nivel Junior con respuestas

1

¿Cuál es la diferencia entre `val` y `var`, y hace `val` que algo sea inmutable?

Respuesta

val significa que la referencia no se puede reasignar; var significa que sí. No hace inmutable al objeto — un val que tiene una MutableList puede seguir teniendo elementos agregados. Para inmutabilidad real necesitas un tipo inmutable, no solo un binding inmutable.

2

¿Cómo funciona la null safety de Kotlin?

Respuesta

Los tipos son non-null por defecto, y uno nullable se escribe String?. El compilador entonces te obliga a manejar el caso null — con ?., ?: o un smart cast después de una verificación. !! se sale de eso y lanza, por eso debería aparecer casi nunca en código que posees.

3

¿Qué es una data class y qué te da?

Respuesta

Una clase cuyo propósito es guardar valores. El compilador genera equals, hashCode, toString, copy y destructuring desde las propiedades del constructor primario. La trampa es que solo se incluyen las propiedades del constructor primario, así que un campo declarado en el cuerpo silenciosamente queda fuera de equals.

4

¿Cuál es la diferencia entre `==` y `===` en Kotlin?

Respuesta

== llama a equals — comparación estructural. === compara referencias — si es el mismo objeto. Esto es al revés de Java, donde == es la verificación de referencia, y confunde a la gente que viene de ahí.

5

¿Cuál es el ciclo de vida de la Activity y qué callbacks importan más?

Respuesta

onCreate una vez cuando se construye, onStart y onResume mientras se vuelve visible e interactiva, luego onPause, onStop y onDestroy al salir. Los pares importan: adquiere en onStart, libera en onStop. El error frecuente es mantener un recurso a través de onStop, que lo mantiene vivo mientras la app está en background.

6

¿Qué le pasa a una Activity en la rotación, y por qué es un problema?

Respuesta

Por defecto se destruye y recrea, así que cualquier cosa guardada en un campo desaparece y cualquier trabajo en vuelo queda huérfano. Por eso el estado pertenece a un ViewModel, que sobrevive la recreación, y el estado de UI transitorio en onSaveInstanceState. La rotación es solo el caso visible — lo mismo pasa en un cambio de locale o un resize.

7

¿Qué es un Intent y cuál es la diferencia entre explícito e implícito?

Respuesta

Un mensaje pidiéndole al sistema que arranque algo. Un Intent explícito nombra el componente exacto y es lo que usas dentro de tu propia app. Uno implícito describe una acción — comparte esto, abre esta URL — y el sistema ofrece lo que sea que pueda manejarlo, que puede ser nada, así que necesita un fallback.

8

¿Qué es un ANR y cómo evitas uno?

Respuesta

Application Not Responding — el sistema mata el caso digno de diálogo cuando el hilo principal está bloqueado por aproximadamente cinco segundos en input, o un broadcast tarda demasiado. Pasa porque alguien hizo trabajo de red, disco o base de datos en el hilo principal. El arreglo es estructural: cualquier cosa que pueda tomar tiempo va a una coroutine en Dispatchers.IO, y StrictMode en builds de debug te grita antes de que un usuario lo vea jamás.

9

¿Qué necesitas para mostrar una lista en un `RecyclerView`?

Respuesta

Un layout para una fila, un adapter que crea y vincula view holders, y un layout manager. El ViewHolder existe para que findViewById corra una vez por fila reciclada en vez de una vez por bind, que es la razón entera por la que el widget reemplazó a ListView. DiffUtil entonces calcula el conjunto mínimo de cambios entre listas vieja y nueva, así obtienes animaciones de items y evitas que notifyDataSetChanged redibuje todo.

🦎

Leer respuestas no es suficiente

En una entrevista real hablas bajo presión. Cam hace estas mismas preguntas, evalúa cada respuesta y muestra exactamente qué mejorar.

Practicar entrevista de Junior Android (Kotlin) →
Gratis · 3 entrevistas al mes

Otros niveles — Android (Kotlin)

Middle Android (Kotlin)Senior Android (Kotlin)Todas las preguntas de Android (Kotlin)

Otras especializaciones

🔍Junior Manual QA🤖Junior QA AutomationJunior Java Backend🐍Junior Python Backend🐘Junior PHP Backend🦫Junior Go Backend🟢Junior Node.js Backend💎Junior Ruby on Rails🔷Junior C++🟨Junior JavaScript