Programación móvil

Componentes Básicos en Jetpack Compose

Aprende a utilizar los componentes básicos de Jetpack Compose para construir interfaces de usuario en Android.

En Jetpack Compose, existen varios componentes básicos que puedes utilizar para construir tu interfaz de usuario. A continuación, te mostraré algunos de los componentes más comunes y cómo utilizarlos.

Text

El componente Text se utiliza para mostrar texto en la pantalla. Puedes personalizar su apariencia utilizando diferentes atributos, como el tamaño de fuente, el color y el estilo. Aquí tienes un ejemplo básico:

@Composable
fun MyText() {
    Text("¡Hola, Jetpack Compose!", fontSize = 24.sp, color = Color.Blue)
}

En este ejemplo, hemos creado un componente de texto que muestra el mensaje "¡Hola, Jetpack Compose!" con un tamaño de fuente de 24sp y un color azul.

Los atributos más comunes para el componente Text son los siguientes:

AtributoDescripción
textEl texto que se mostrará en la pantalla.
fontSizeEl tamaño de la fuente del texto. Puedes usar unidades como sp para especificar el tamaño.
colorEl color del texto. Puedes usar la clase Color para definir colores personalizados o utilizar colores predefinidos.
fontWeightEl peso de la fuente, como FontWeight.Bold para texto en negrita o FontWeight.Light para texto más ligero.
fontStyleEl estilo de la fuente, como FontStyle.Italic para texto en cursiva.
textAlignLa alineación del texto, como TextAlign.Center para centrar el texto o TextAlign.Start para alinearlo a la izquierda.
modifierPermite aplicar modificaciones al componente de texto, como padding, tamaño, etc.

Button

El componente Button se utiliza para crear botones interactivos en tu interfaz de usuario. Puedes personalizar su apariencia y comportamiento utilizando diferentes atributos. Aquí tienes un ejemplo básico:

@Composable
fun MyButton() {
    Button(onClick = { /* Acción al hacer clic */ }) {
        Text("Haz clic aquí")
    }
}

En este ejemplo, hemos creado un botón que muestra el texto "Haz clic aquí". El atributo onClick se utiliza para definir la acción que se ejecutará cuando el usuario haga clic en el botón.

Los atributos más comunes para el componente Button son los siguientes:

AtributoDescripción
onClickLa acción que se ejecutará cuando el usuario haga clic en el botón.
enabledControla si el botón está habilitado o deshabilitado. Si se establece en false, el botón no será interactivo.
modifierPermite aplicar modificaciones al botón, como padding, tamaño, etc.
colorsPermite personalizar los colores del botón utilizando la clase ButtonDefaults. Puedes definir colores para el fondo, el texto, etc.
shapePermite personalizar la forma del botón utilizando la clase Shape. Puedes definir formas como RoundedCornerShape para botones con bordes redondeados.
contentPaddingPermite personalizar el padding interno del botón utilizando la clase PaddingValues. Puedes definir el padding para cada lado del botón.

Image

El componente Image se utiliza para mostrar imágenes en tu interfaz de usuario. Puedes cargar imágenes desde recursos locales o desde la red. Aquí tienes un ejemplo básico:

@Composable
fun MyImage() {
    Image(painter = painterResource(id = R.drawable.my_image), contentDescription = "Descripción de la imagen")
}

En este ejemplo, hemos creado un componente de imagen que carga una imagen desde los recursos locales utilizando painterResource. El atributo contentDescription se utiliza para proporcionar una descripción de la imagen para mejorar la accesibilidad.

Los atributos más comunes para el componente Image son los siguientes:

AtributoDescripción
painterEl recurso de imagen que se mostrará. Puedes usar painterResource para cargar imágenes desde los recursos locales o rememberImagePainter para cargar imágenes desde la red.
contentDescriptionUna descripción de la imagen para mejorar la accesibilidad. Es importante proporcionar una descripción significativa para que los usuarios con discapacidades visuales puedan entender el contenido de la imagen.
modifierPermite aplicar modificaciones a la imagen, como padding, tamaño, etc.
contentScaleControla cómo se escala la imagen dentro de su contenedor. Puedes usar valores como ContentScale.Crop para recortar la imagen o ContentScale.Fit para ajustar la imagen dentro del contenedor sin recortarla.
alignmentControla la alineación de la imagen dentro de su contenedor. Puedes usar valores como Alignment.Center para centrar la imagen o Alignment.TopStart para alinearla a la esquina superior izquierda.

TextField

El componente TextField se utiliza para crear campos de texto interactivos donde los usuarios pueden ingresar información. Aquí tienes un ejemplo básico:

@Composable
fun MyTextField() {
    var text by remember { mutableStateOf("") }
    TextField(
        value = text,
        onValueChange = { text = it },
        label = { Text("Ingresa tu nombre") }
    )
}

En este ejemplo, hemos creado un campo de texto donde los usuarios pueden ingresar su nombre. El atributo value se utiliza para controlar el valor del campo de texto, mientras que onValueChange se utiliza para actualizar el valor cuando el usuario ingresa texto. El atributo label se utiliza para mostrar una etiqueta dentro del campo de texto.

Los atributos más comunes para el componente TextField son los siguientes:

AtributoDescripción
valueEl valor actual del campo de texto. Debe ser controlado por un estado mutable para que el campo de texto sea interactivo.
onValueChangeLa función que se ejecutará cuando el valor del campo de texto cambie. Esta función debe actualizar el estado mutable que controla el valor del campo de texto.
labelUna etiqueta que se muestra dentro del campo de texto para indicar al usuario qué tipo de información se espera que ingrese.
placeholderUn texto de marcador de posición que se muestra cuando el campo de texto está vacío. Proporciona una pista visual sobre el tipo de información que se espera que el usuario ingrese.
modifierPermite aplicar modificaciones al campo de texto, como padding, tamaño, etc.
keyboardOptionsPermite configurar las opciones del teclado, como el tipo de teclado que se muestra (por ejemplo, numérico, de texto, etc.) y las acciones del teclado (por ejemplo, "Enviar", "Siguiente", etc.).

Estos son solo algunos de los componentes básicos que puedes utilizar en Jetpack Compose para construir tu interfaz de usuario. Jetpack Compose ofrece una amplia variedad de componentes adicionales, como Card, Checkbox, Switch, entre otros, que te permiten crear interfaces de usuario más complejas y personalizadas. Te recomiendo explorar la documentación oficial de Jetpack Compose para descubrir todos los componentes disponibles y cómo utilizarlos en tus proyectos Android.

Para más información sobre Jetpack Compose, puedes consultar la documentación oficial en el siguiente enlace: Jetpack Compose Documentation.

Copyright Jesús Aurelio Castro Magaña © 2026