blog.1.image
Staff Augmentation

2021-01-12

Cómo contratar desarrolladores Android (y 10 preguntas clave para una entrevista de trabajo)

Fabián Rodríguez

Back to Blog

Desarrollar para dispositivos Android requiere tener claros muchos conceptos que van desde el hardware, hasta la arquitectura del sistema. Es por ello, que es recomendado siempre revisar los conocimientos específicos que necesita un programador para asignarlo a un proyecto, ya que juzgarlo por no tener conocimientos de algunos componentes del núcleo de Android sería bastante injusto.

Por esta razón, las siguientes preguntas solo servirán para orientar un poco al entrevistador acerca de conceptos básicos, intermedios y avanzados. Después de esto, se recomienda evaluar con una prueba técnica al candidato, para comprobar que tiene las capacidades necesarias para construir las funcionalidades específicas que requiere la aplicación.

1. ¿Qué es un ContentProvider y para qué es usado?

Es una forma de proporcionar contenido a las aplicaciones, esto lo hacen encapsulando los datos y poniéndolos a disposición en las aplicaciones a través de un ContentResolver. Uno de los ejemplos más comunes es cuando se necesita compartir el acceso a la información contenida dentro de una base de datos SQLite, ya que estas inicialmente son privadas y accesibles solo desde la propia aplicación.

2. ¿Cuáles son algunos usos comunes para un Intent?

Algunos casos en los que podemos utilizar un Intent son:

  • Para iniciar una Activity: Se logra través del método startActivity().

  • Para iniciar un servicio: Esto posible con el método startService().

  • Para entregar un broadcast: Puedes entregar un broadcast a otras aplicaciones con distintos métodos tales como sendBroadCast().

3. ¿Qué es JobScheduler? ¿En qué casos puede usarse?

Es un API que sirve para programar tareas asincrónicas para diferentes tipos trabajos, como activar un servicio programado a cierta hora del sistema. Otros escenarios comunes para implementarlos son:

  • Tareas que deben realizar una vez que el dispositivo se ha conectado a una fuente de alimentación.

  • Tareas que requieren acceso a la red o conexión Wi-Fi.

  • Tareas que deberían ejecutarse de forma regular y en donde el tiempo no es algo crítico.

4. ¿Cuáles son los 6 callbacks principales del ciclo de vida de Android?

El ciclo de vida son los diferentes estados por los que pasa una actividad en una aplicación Android. Este ciclo de vida está compuesto por 6 eventos:

  • onCreate(): Se inicia cuando la Activity es creada.

  • onStart(): Este método es llamado en el momento en que la Activity es visible al usuario.

  • onResume(): Se ejecuta cuando la Activity está en primer plano y el usuario puede interactuar con ella.

  • onPause(): Se ejecuta cuando la Activity pierde el foco o deja de estar en primer plano.

  • onStop(): Se activa cuando la Activity está completamente oculta y no es visible para el usuario.

  • onDestroy(): En la última etapa, la Activity se destruye y se elimina de la memoria.

5. ¿Cuál es la relación entre un Fragment y una Activity? Explica la relación entre los dos

Una Activity es usualmente una operación enfocada a que un usuario pueda realizar una acción, aunque estas puedes ser realmente complejas, las actividades pueden hacer uso de la clase Fragment para así producir un código mas modular.

Un fragmento es una sección de una actividad, que posee su propio ciclo de vida y eventos, sin embargo, cuando el ciclo de vida de la actividad se ve afectado, también lo hace el ciclo de vida del fragmento; así, si la actividad se pone en pausa, el fragmento también lo hará.

6. ¿Qué son los fragments y qué usos tiene?

Son partes reutilizables de la interfaz de usuario de una aplicación. Los fragmentos poseen su propio diseño y administran un ciclo de vida a parte de la actividad en donde se encuentren declaradas. Pueden ser utilizados para pasar información entre las pantallas y organizar la interfaz de usuario.

7. ¿Cuáles son las diferentes formas de implementar un DataStore?

Un DataStore es una forma de hacer persistencia de datos y tiene dos formas de implementarse:

  • Preferences DataStore: Utiliza objetos del tipo clave - valor para almacenar la información y no necesita definir un esquema de datos previamente.

  • Proto DataStore: Almacena datos como instancias con tipos de datos personalizados y requieren que se defina un esquema previamente.

8. ¿Cuáles son los bloques esenciales de una aplicación Android?

Los componentes principales de una aplicación Android son cuatro:

  • Activities: Es el punto de entrada en el que el usuario puede interactuar con la aplicación.

  • Services: Es un componente que se ejecuta en segundo plano para realizar operaciones de larga duración o realizar procesos remotos. No poseen interfaz de usuario.

  • Broadcast receivers: Permite que el sistema envíe eventos a la aplicación fuera del flujo regular de un usuario.

  • Content providers: Administra un conjunto de datos compartido y puede utilizarse para hacer persistencia de datos.

9. ¿Cuál es la diferencia entre las Activities y los Services?

Una actividad es una interfaz de usuario y un servicio es un proceso que corre constantemente en segundo plano y no posee una GUI.

10. ¿Qué significa hacer una aplicación "Lazy First"?

Significa que la aplicación buscará maneras de reducir y optimizar las operaciones que tienen un mayor consumo de batería. Esto se logra de diferentes formas, como por ejemplo, almacenando en caché datos descargados en lugar de descargarlos repetidamente cada vez que se usen.

Share this article:

FacebookTwitterLinked In
What are you waiting for?

pre-vetted developers ready to be interviewed and join your team

More great articles

Sundevs

© Copyright SunDevs 2021. All Rights Reserved.