Qué es una Activity, el componente más importante de una App Android
Antonio Leiva

En artículos anteriores hemos visto cómo instalar Android Studio y cómo configurar dispositivos, tanto virtuales como físicos para probar. Hoy ya nos vamos a poner manos a la obra y ver qué es una Activity.

En el vídeo de YouTube lo podrás ver más a fondo, aquí solo te voy a dar unas pinceladas.

Si quieres seguir aprendiendo sobre Android desde Cero, te animo a que te apuntes al curso de Android gratuito, donde además de avisarte del nuevo contenido, tendrás acceso a un Telegram privado.

Qué es una Activity

Una Activity en Android se corresponde con una pantalla de nuestra App. En realidad es un punto de entrada que Android puede cargar en cualquier momento. Se compone de:

  • Una clase, que normalmente extiende de AppCompatActivity. Es donde definimos el código de lo que queremos que haga la App.
  • Un layout, que identifica la apariencia de la vista, el diseño. Tiene formato XML, pero se puede utilizar el diseñador para hacerlo más sencillo
  • Una definición de su uso, que se realiza en el AndroidManifest.

Partes de una Activity

Hay dos cosas de las que debes estar pendiente sobre las Activity, la primera es que por lo general estará compuesta por una clase

y por un archivo XML, este es un archivo con una estructura específica que nos identifica cuál es la forma que tiene esa pantalla.

Si entramos en R.layout.activity_main haciendo control + click en Windows nos mostrara de forma visual nuestra pantalla.

Tenemos varias formas de trabajar con esto, puedes dividir la pantalla para trabajar con el editor de código y la pantalla de diseño. En esta pantalla tendremos sus componentes pero por ahora no te pierdes con los nombres de las vistas como textos, botones, imágenes, entre otros, ya que todo lo estaremos viendo en otros apartados.

lo siguiente es que si nos vamos a la carpeta de manifest situada en la parte lateral izquierda y entramos en el android manifest.

Este archivo vendría siendo una configuración de alto nivel de lo que hace nuestra aplicación y aquí definimos distintas cosas, por ejemplo en la etiqueta label identificamos el nombre de la aplicación:

y cuando se lanza la aplicación, también tenemos el icono para identificar nuestra app que por defecto nos crea uno pero esto en el futuro ya veremos cómo podemos cambiarlo, el tema que es el que nos da la apariencia a nuestra aplicación y algunas configuraciones.

No olvides que este archivo es donde se configura a alto nivel, que eso es lo que va a hacer nuestra aplicación, y luego le tenemos que indicar cuáles son esas pantallas que va a utilizar esos puntos de entrada que mencionábamos que son las Activitys; Así que mediante este pequeño XML se le identifica que esta Activity forma parte de esta aplicación; Si no añadimos la Activity aquí no vamos a tener forma de utilizarla dentro de nuestro proyecto.

después el ejemplo a continuación

vamos a tener varias Activitys en nuestra aplicación, con estos valores identificamos que esta es la Activity Principal, para que cuando le demos al botón de arrancar sea la que nos va a lanzar primero.

Conceptos de programación

En este apartado no voy a profundizar porque lo veremos en otro articulo pero te voy a explicar a grandes rasgos qué es cada cosa, por un lado tendríamos los conceptos de:

  • Clase: una clase vendría a ser una representación de un elemento de la vida real.
  • Herencia: es la capacidad que tiene una clase hijo de tener las propiedades o métodos del padre, así como en la vida real, cuando heredamos el color de ojos de nuestro padre, altura, capacidades físicas y que nosotros podemos extender mas allá de lo que nuestro padre nos heredo.
  • Override: cuando queremos cambiar una función de la clase padre hace uso de override para agregar la funcionalidad deseada.
  • Función: trozo de código al que podemos llamar para que se ejecuta una acción o estados, que son valores de esa clase, que puede almacenar para luego hacer cosas con ellos. Podemos ejecutar llamando al nombre de esa función, de tal forma que podemos guardar cosas más complicadas en una única función y esa función la podemos llamar desde distintos sitios y reutilizar esa parte del código.
  • Variable: una variable es un elemento que guarda un valor de forma temporal.
  • De una única clase se pueden generar un número ilimitado de objetos. Normalmente a estos objetos se les llama instancias específicas de una clase, de tal forma que si los objetos tienen distintos estados, por ejemplo: una clase Persona la cual tendrá un nombre y una edad. Teniendo el nombre y la edad de esa clase podemos crear dos objetos, un objeto 1 del tipo persona y otro objeto 2 del tipo persona también, por ende se puede modificar el estado de cada objeto sin afectar al otro.

Cuál es el ciclo de vida de una Activity

Es una serie de pasos por las que va pasando la pantalla en función del estado en el que se encuentra:

  • onCreate(): es el primero paso, lo primero que se llama nada más crearse la Activity
  • onStart(): cuando la activity se inicia. Se llama siempre que se llama a onCreate(), pero no al revés. onStart() se puede llamar cuando la activity pasa a un segundo plano y vuelve a estar visible
  • onResume(): cuando la activity se reanuda. Se llama siempre que se llama a onStart(), pero no al revés. onResume() se puede llamar cuando algo se pone por encima de nuestra activity (por ejemplo un diálogo), pero la activity se sigue viendo. Al recuperar el control, se llama a onResume()
  • onPause(): el opuesto de onResume(). Se llama cuando algo se pone por encima de la activity, pero esta se sigue viendo.
  • onStop(): el opuesto de onStart(). Se llama cuando la App se va a segundo plano, o se lanza otra activity por encima.
  • onDestroy(): el opuesto de onCreate(). Se llama cuando la Activity se destruye. Es lo último que se llamará antes de que la activity desaparezca.

En función de las tareas que estemos ejecutando, nos interesará lanzarlos en un paso del ciclo de vida o en otro. Se pararán en su opuesto.

Modificando el texto

Te dejo como ejercicio en el onCreate() recuperar la vista del texto del layout y modificar su texto. En el vídeo tienes la explicación y la solución. El resultado sería:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val helloText = findViewById<TextView>(R.id.hello_text)
    helloText.text = "Hello Android"

    Log.d(tag, "onCreate")
}

En él también te explico por encima algunos conceptos importantes, como qué es una clase, una función y una variable. Profundizaremos más en esto en el futuro.

Conclusión

Las activities son probablemente el component más importante en una App Android, así que te animo a que cojas soltura con ellas y entiendas cómo funcionan.

Seguiremos viendo muchas más cosas en el futuro, pero por ahora quédate con que cada Activity define una pantalla, y que necesitas usarlas para representar los pasos de tu App.

Si quieres seguir aprendiendo sobre Android desde Cero, te animo a que te apuntes al curso de Android gratuito, donde además de avisarte del nuevo contenido, tendrás acceso a un Telegram privado.

Quizá también te interese…

Clases y constructores en Kotlin con Android Studio

Clases y constructores en Kotlin con Android Studio

Veremos un repaso las clases y constructores de Kotlin para solventar esas inquietudes que nos surgen a la hora de seguir este curso, que pueden ser como funciona realmente y porque se presentan las clases de ese modo, como es la interacción y el constructor a la hora...

Los 7 mejores cursos online para aprender Android desde cero en 2021

Los 7 mejores cursos online para aprender Android desde cero en 2021

No hay que ser un genio para darse cuenta de que el sector del desarrollo de aplicaciones móviles está en auge y cada vez más gente busca aprender Android para iniciarse en esta profesión. Atraídos, cómo no, por la posibilidad de obtener un empleo estable, (muy) bien...

0 comentarios

Enviar un comentario

Los datos personales que proporciones a través de este formulario quedarán registrados en un fichero de DevExpert, S.L.U., con el fin de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento de la parte interesada. Si no se acepta, no podrás comentar en este blog. Los datos que proporciona solo se utilizan para evitar el correo no deseado y no se usarán para nada más. Puede ejercer los derechos de acceso, rectificación, cancelación y oposición en contacto@devexperto.com.

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Acepto la política de privacidad *