# data[].attributes.body
Meta-anotación que especifica los elementos del código donde una anotación personalizada puede ser utilizada.

Se utiliza @AnnotationTarget para indicar dichos elementos.

# data[].attributes.body
Es una marca especial que le dice a Compose que esta función dibuja parte de la UI.

# data[].attributes.body
@ENTIRE

¿Qué es?

La anotación @Entity se usa para decirle a Kotlin (o más bien a una librería como Room, que es una librería de Android que te permite guardar datos en una base de datos local de forma fácil) que una clase representa una tabla en la base de datos.

¿Cuál es el objetivo?

El objetivo principal es conectar tus clases de Kotlin con la base de datos, sin que tú tengas que escribir todo el código SQL manualmente.

# data[].attributes.body
Se usa para marcar funciones, propiedades o clases como obsoletas, sugiriendo una alternativa y apareciendo tachadas o con advertencias en el IDE.

# data[].attributes.body
@Deprecated

Se utiliza para marcar elementos de código (funciones, clases, propiedades, etc.) como obsoletos.

Esto significa que todavía se pueden usar, pero ya no se recomienda porque pueden tener una mejor alternativa, dejarán de estar soportados en el futuro o son inseguros.

# data[].attributes.body
Esta anotación se usa para marcar funciones, clases o propiedades que ya no deberían usarse, porque están obsoletas o hay una mejor alternativa.

# data[].attributes.body
Señalan si una variable puede ser nula o no.

# data[].attributes.body
Indican si un parámetro, retorno o variable puede ser null o no.

Ayuda a evitar errores de NullPointerException al advertir al desarrollador y al compilador.

# data[].attributes.body
Esta anotación te marca funciones, propiedades o clases que ya no sirven o hay mejores opciones

# data[].attributes.body
Sirve para ocultar las advertencias del ide al programar en Kotlin. Evita que algo se marque como warning.

# data[].attributes.body
Indica que un método sobreescribe a otro

# data[].attributes.body
Indica que un objeto es estable, sus propiedades no cambian.

# data[].attributes.body
Se usa para indicar que una función forma parte de la interfaz gráfica. Sin esta anotación, no prodíamos dibujar en pantalla con elementos como Text, Button, Column, etc.

# data[].attributes.body
Para que un método sobrescriba a otro

# data[].attributes.body
@JvmStatic: permite que un miembro estático de una clase Kotlin sea accesible como estático en Java.

# data[].attributes.body
indica que una clase no va a cambiar despues de ser creada, así se optimiza el rendimiento, porque no hace comprobaciones innecesarias, así que no necesita revisar sus valores cada vez que se usa una instancia de esta clase

# data[].attributes.body
Jetpack Compose, para optimizar el rendimiento, se salta funciones con la etiqueta @Composable si los parámetros no han cambiado. Esta anotación (@NonSkippableComposable) evita que se salte la ejecución de una función desactivando esa optimización.

Se usa en casos donde la función, realiza efectos secundarios que deben ejecutarse siempre o cuando se depende de algo externo que Compose no puede detectar como por ejemplo recursos nativos o un sensor.

# data[].attributes.body
@ReadOnlyComposable es una anotación de optimización que le indica al compilador que una función en concreto no va a producir efecto en los nodos del árbol de composición ni modificar el estado actual.

# data[].attributes.body
Permite ver la UI en el IDE sin correr la app.

# data[].attributes.body
Esta notación sirve para indicar al compilador que dicha clase o variable es predecible, sus propiedades no cambian de manera inesperada

# data[].attributes.body
En Kotlin se usa para que un método dentro de un object o companion object se compile como un método estático real en Java.

# data[].attributes.body
Se usa para indicar cuánto tiempo estará disponible una anotación en el ciclo de vida del programa.

# data[].attributes.body
Se usa para que las instancias de las dependencias sean únicas a lo largo de la aplicación.

# data[].attributes.body
La anotación @Preview se utiliza para mostrar una vista previa de un composable en el editor sin tener que ejecutar la aplicación en un dispositivo o emulador.

# data[].attributes.body
@Preview es una anotación que se usa para mostrar una vista previa visual de una función composable directamente en Android Studio, sin necesidad de ejecutar la aplicación en un emulador o dispositivo físico.