Tabla de Contenidos
JetPack Compose
Jetpack Compose es el sistema oficial de Google para el diseño de interfaces. Con Compose las interfaces se construyen mediante funciones en lenguaje Kotlin.
Funciones Composable
Las funciones que forman parte de la interfaz se marcan con la anotación:
@Composable
Por ejemplo:
@Composable fun Saludo() { Text("Hola Android") }
Una función @Composable puede llamar a otras funciones @Composable para construir interfaces más complejas.
Por ejemplo:
@Composable fun PantallaPrincipal() { Column { Text("Bienvenido") Text("Mi primera aplicación") } }
Mostrar la interfaz
Desde la Activity podemos indicar qué interfaz queremos mostrar utilizando:
setContent { PantallaPrincipal() }
Un ejemplo completo sería:
class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { PantallaPrincipal() } } }
Componentes básicos
Compose incluye numerosos componentes para construir interfaces. Algunos de los más utilizados al principio son:
| Componente | Función |
|---|---|
Text | Mostrar texto |
Button | Crear botones |
TextField | Introducir texto |
Image | Mostrar imágenes |
Icon | Mostrar iconos |
Por ejemplo:
@Composable fun Ejemplo() { Text("Nombre") Button( onClick = { // Acción al pulsar } ) { Text("Aceptar") } }
Organización de elementos
Compose permite organizar los componentes mediante distintos contenedores. Los principales son:
| Componente | Función |
|---|---|
Column | Coloca los elementos verticalmente |
Row | Coloca los elementos horizontalmente |
Box | Permite superponer o posicionar elementos |
Ejemplo:
@Composable fun DatosUsuario() { Column { Text("Nombre: Ana") Text("Edad: 22") } }
También podemos combinar diferentes contenedores:
@Composable fun FichaUsuario() { Column { Text("Usuario") Row { Text("Ana") Text("22 años") } } }
Modifier
Modifier se utiliza para modificar el aspecto, tamaño o posición de los componentes. Por ejemplo:
Text( text = "Hola Android", modifier = Modifier.padding(16.dp) )
También podemos encadenar varios modificadores:
Button( onClick = { }, modifier = Modifier .fillMaxWidth() .padding(16.dp) ) { Text("Aceptar") }
Algunos modificadores habituales son:
padding()fillMaxWidth()fillMaxSize()width()height()
Material Design
Jetpack Compose utiliza habitualmente componentes basados en Material Design. Por ejemplo:
Button( onClick = { } ) { Text("Guardar") }
o:
TextField( value = "", onValueChange = { }, label = { Text("Nombre") } )
Estos componentes ya incluyen comportamientos y estilos preparados para aplicaciones Android modernas.
Previsualizar componentes
Android Studio permite previsualizar componentes Compose sin ejecutar completamente la aplicación. Para ello se utiliza la anotación:
@Preview
Por ejemplo:
@Preview(showBackground = true) @Composable fun PantallaPreview() { PantallaPrincipal() }
Esto permite comprobar rápidamente cómo se verá una parte de la interfaz.
Componentes reutilizables
Una de las ventajas de Compose es que podemos dividir una interfaz en funciones pequeñas y reutilizables. Por ejemplo:
@Composable fun Titulo(texto: String) { Text(texto) }
Podemos reutilizarla varias veces:
@Composable fun Pantalla() { Column { Titulo("Usuarios") Titulo("Configuración") } }
Esto facilita mantener el código organizado y evita repetir elementos.
Estado y eventos
El estado es el conjunto de datos que determina cómo debe mostrarse la interfaz en un momento determinado.
