[{"data":1,"prerenderedAt":807},["ShallowReactive",2],{"navigation_docs":3,"-movil-filas-columnas":298,"-movil-filas-columnas-surround":802},[4,18,70,105,149,178,212,257],{"title":5,"path":6,"stem":7,"children":8,"icon":17},"Evaluación","\u002Fintroduction","1.introduction\u002F1.index",[9,12],{"title":10,"path":6,"stem":7,"icon":11},"Método de Evaluación","i-iconamoon-cheque-bold",{"title":13,"path":14,"stem":15,"icon":16},"Plataforma de Aprendizaje","\u002Fintroduction\u002Fplataforma","1.introduction\u002F2.plataforma","i-lucide-book-marked","i-lucide-house",{"title":19,"path":20,"stem":21,"children":22,"icon":25},"Interfaz Gráfica de Usuario","\u002Fgui","2.gui\u002F01.index",[23,26,30,34,38,42,46,50,54,58,62,66],{"title":24,"path":20,"stem":21,"icon":25},"¿Qué es una Interfaz Gráfica de Usuario (GUI)?","i-carbon-gui-management",{"title":27,"path":28,"stem":29,"icon":25},"Creación de Interfaces Gráficas de Usuario (GUI)","\u002Fgui\u002Fbuild-gui","2.gui\u002F02.build-gui",{"title":31,"path":32,"stem":33,"icon":25},"Componentes Básicos de Swing","\u002Fgui\u002Fcomponentes-basicos","2.gui\u002F03.componentes-basicos",{"title":35,"path":36,"stem":37},"El componente JFrame","\u002Fgui\u002Fjframe","2.gui\u002F04.jframe",{"title":39,"path":40,"stem":41},"El componente JPanel","\u002Fgui\u002Fjpanel","2.gui\u002F05.jpanel",{"title":43,"path":44,"stem":45},"El componente JButton","\u002Fgui\u002Fjbutton","2.gui\u002F06.jbutton",{"title":47,"path":48,"stem":49,"icon":25},"Elementos de texto en interfaces gráficas con Swing","\u002Fgui\u002Ftext","2.gui\u002F07.text",{"title":51,"path":52,"stem":53},"Elementos Visuales","\u002Fgui\u002Felementos-visuales","2.gui\u002F08.elementos-visuales",{"title":55,"path":56,"stem":57,"icon":25},"Eventos en Swing","\u002Fgui\u002Feventos","2.gui\u002F09.eventos",{"title":59,"path":60,"stem":61,"icon":25},"Controles en Swing","\u002Fgui\u002Fcontroles","2.gui\u002F10.controles",{"title":63,"path":64,"stem":65,"icon":25},"Atributos Comunes de los Componentes de Diseño","\u002Fgui\u002Fatributos-comunes","2.gui\u002F11.atributos-comunes",{"title":67,"path":68,"stem":69,"icon":25},"Layouts","\u002Fgui\u002Flayout","2.gui\u002F12.layout",{"title":71,"icon":25,"path":72,"stem":73,"children":74,"page":104},"Personalización","\u002Fpersonalizacion","3.personalizacion",[75,79,84,88,92,96,100],{"title":76,"path":77,"stem":78},"Jerarquía de clases en Swing","\u002Fpersonalizacion\u002Fjerarquia","3.personalizacion\u002F01.jerarquia",{"title":80,"path":81,"stem":82,"icon":83},"Personalización Inicial de Componentes Swing","\u002Fpersonalizacion\u002Fpersonalizacion-inicial","3.personalizacion\u002F02.personalizacion-inicial","i-carbon-palette",{"title":85,"path":86,"stem":87,"icon":83},"Tema y Personalización Avanzada en Swing","\u002Fpersonalizacion\u002Ftheme","3.personalizacion\u002F03.theme",{"title":89,"path":90,"stem":91,"icon":83},"Pintando en Swing","\u002Fpersonalizacion\u002Fpaint","3.personalizacion\u002F04.paint",{"title":93,"path":94,"stem":95,"icon":83},"Mi Tema 1: Comenzando con la Personalización","\u002Fpersonalizacion\u002Ftheme-start","3.personalizacion\u002F05.theme-start",{"title":97,"path":98,"stem":99,"icon":83},"UI Delegates: Personalizando la Apariencia de los Componentes","\u002Fpersonalizacion\u002Fui-delegates","3.personalizacion\u002F06.ui-delegates",{"title":101,"path":102,"stem":103,"icon":83},"Empleado delegadores de UI para personalizar la apariencia de los componentes","\u002Fpersonalizacion\u002Ftheme-02","3.personalizacion\u002F07.theme-02",false,{"title":106,"path":107,"stem":108,"children":109,"icon":148},"Programación concurrente","\u002Fconcurrencia","4.concurrencia\u002F01.index",[110,112,116,120,124,128,132,136,140,144],{"title":111,"path":107,"stem":108,"icon":83},"¿Qué es la concurrencia?",{"title":113,"path":114,"stem":115,"icon":83},"Unidades de Ejecución","\u002Fconcurrencia\u002Funidades-ejecucion","4.concurrencia\u002F02.unidades-ejecucion",{"title":117,"path":118,"stem":119,"icon":83},"Programa de flujo único y de flujo múltiple","\u002Fconcurrencia\u002Fflujos","4.concurrencia\u002F03.flujos",{"title":121,"path":122,"stem":123,"icon":83},"Hilos con Thread y Runnable","\u002Fconcurrencia\u002Fthread-runnable","4.concurrencia\u002F04.thread-runnable",{"title":125,"path":126,"stem":127},"Paralelismo V.S. Concurrencia","\u002Fconcurrencia\u002Fparalelismo","4.concurrencia\u002F05.paralelismo",{"title":129,"path":130,"stem":131,"icon":83},"Problemas clásicos de concurrencia","\u002Fconcurrencia\u002Fproblemas","4.concurrencia\u002F06.problemas",{"title":133,"path":134,"stem":135,"icon":83},"Emulando condiciones de carrera en Java","\u002Fconcurrencia\u002Fcondiciones-carrera","4.concurrencia\u002F07.condiciones-carrera",{"title":137,"path":138,"stem":139,"icon":83},"Semáforos en Java","\u002Fconcurrencia\u002Fsemaforos","4.concurrencia\u002F08.semaforos",{"title":141,"path":142,"stem":143,"icon":83},"La clase Timer en Java Swing","\u002Fconcurrencia\u002Ftimer","4.concurrencia\u002F09.timer",{"title":145,"path":146,"stem":147,"icon":83},"Algoritmos de ordenamiento de procesos","\u002Fconcurrencia\u002Falgoritmos-procesos","4.concurrencia\u002F10.algoritmos-procesos","i-carbon-parallel-groups",{"title":150,"path":151,"stem":152,"children":153,"icon":177},"Acceso a datos","\u002Fdatos","5.datos\u002F01.index",[154,157,161,165,169,173],{"title":155,"path":151,"stem":152,"icon":156},"Java y las bases de datos","i-carbon-database",{"title":158,"path":159,"stem":160},"Cliente Servidor","\u002Fdatos\u002Fcliente-servidor","5.datos\u002F02.cliente-servidor",{"title":162,"path":163,"stem":164},"CRUD","\u002Fdatos\u002Fcrud","5.datos\u002F03.crud",{"title":166,"path":167,"stem":168},"Sentencias Preparadas con JDBC","\u002Fdatos\u002Fsentencia-preparada","5.datos\u002F04.sentencia-preparada",{"title":170,"path":171,"stem":172},"DAO (Data Access Object)","\u002Fdatos\u002Fdao","5.datos\u002F05.dao",{"title":174,"path":175,"stem":176},"Usando Hibernate ORM","\u002Fdatos\u002Form","5.datos\u002F06.orm","i-gravity-ui-database-fill",{"title":179,"path":180,"stem":181,"children":182,"icon":211},"Programación móvil","\u002Fmovil","6.movil\u002F01.index",[183,186,191,195,199,203,207],{"title":184,"path":180,"stem":181,"icon":185},"¿Qué es Android y Kotlin?","i-carbon-mobile",{"title":187,"path":188,"stem":189,"icon":190},"¿Qué es Android Studio?","\u002Fmovil\u002Fandroid-studio","6.movil\u002F02.android-studio","i-carbon-application",{"title":192,"path":193,"stem":194,"icon":190},"¿Qué es Jetpack Compose?","\u002Fmovil\u002Fjetpack-compose","6.movil\u002F03.jetpack-compose",{"title":196,"path":197,"stem":198},"Filas y Columnas con Jetpack Compose","\u002Fmovil\u002Ffilas-columnas","6.movil\u002F04.filas-columnas",{"title":200,"path":201,"stem":202,"icon":190},"Componentes Básicos en Jetpack Compose","\u002Fmovil\u002Fcomponentes-basicos","6.movil\u002F05.componentes-basicos",{"title":204,"path":205,"stem":206,"icon":190},"Las Intenciones en Android con Jetpack Compose","\u002Fmovil\u002Fintentions","6.movil\u002F06.intentions",{"title":208,"path":209,"stem":210,"icon":190},"Navegación en Android con Jetpack Compose","\u002Fmovil\u002Fnavegacion","6.movil\u002F07.navegacion","phone_android",{"title":213,"icon":25,"path":214,"stem":215,"children":216,"page":104},"Ejemplos","\u002Fejemplos","7.ejemplos",[217,221,225,229,233,237,241,245,249,253],{"title":218,"path":219,"stem":220},"Ejemplo 01: Creando un validador abstracto de expresiones","\u002Fejemplos\u002Fejemplo-01","7.ejemplos\u002F01.ejemplo-01",{"title":222,"path":223,"stem":224},"Ejemplo 02: Diferencias de validar un JTextField y un JFormattedTextField","\u002Fejemplos\u002Fejemplo-02","7.ejemplos\u002F02.ejemplo-02",{"title":226,"path":227,"stem":228},"Ejemplo 03: Creando una Aplicación con GUI en Java Swing","\u002Fejemplos\u002Fejemplo-03","7.ejemplos\u002F03.ejemplo-03",{"title":230,"path":231,"stem":232},"Ejemplo 4: Estilizando componentes Swing con Delegadores","\u002Fejemplos\u002Fejemplo-04","7.ejemplos\u002F04.ejemplo-04",{"title":234,"path":235,"stem":236,"icon":83},"Ejemplo 5: Uso de Hilos con Thread y Runnable","\u002Fejemplos\u002Fejemplo-05","7.ejemplos\u002F05.ejemplo-05",{"title":238,"path":239,"stem":240,"icon":83},"Ejemplo 06: Manejando Hilos de formas Diferentes en Java","\u002Fejemplos\u002Fejemplo-06","7.ejemplos\u002F06.ejemplo-06",{"title":242,"path":243,"stem":244,"icon":83},"Ejemplo 7: Condiciones de carrera en Java","\u002Fejemplos\u002Fejemplo-07","7.ejemplos\u002F07.ejemplo-07",{"title":246,"path":247,"stem":248,"icon":83},"Ejemplo 8: Control de acceso a recursos compartidos con semáforos","\u002Fejemplos\u002Fejemplo-08","7.ejemplos\u002F08.ejemplo-08",{"title":250,"path":251,"stem":252,"icon":83},"Ejemplo 9: El restaurante y los pedidos","\u002Fejemplos\u002Fejemplo-09","7.ejemplos\u002F09.ejemplo-09",{"title":254,"path":255,"stem":256},"Ejemplo 10: Proceso FIFO (First In, First Out) con Semáforos y Swing","\u002Fejemplos\u002Fejemplo-10","7.ejemplos\u002F10.ejemplo-10",{"title":258,"icon":25,"path":259,"stem":260,"children":261,"page":104},"Actividades","\u002Factividades","8.actividades",[262,266,270,274,278,282,286,290,294],{"title":263,"path":264,"stem":265,"icon":25},"Actividad 1: Introducción al diseño de interfaces","\u002Factividades\u002Fact-01","8.actividades\u002F01.act-01",{"title":267,"path":268,"stem":269,"icon":25},"Actividad 2: Diseño de wireframes y prototipos","\u002Factividades\u002Fact-02","8.actividades\u002F02.act-02",{"title":271,"path":272,"stem":273,"icon":25},"Actividad 3: Propuesta de Proyecto y Wireframe inicial","\u002Factividades\u002Fact-03","8.actividades\u002F03.act-03",{"title":275,"path":276,"stem":277,"icon":83},"Actividad 4: Temas y Componentes Personalizados en Swing","\u002Factividades\u002Fact-04","8.actividades\u002F04.act-04",{"title":279,"path":280,"stem":281,"icon":83},"Actividad 5: Explicando la Concurrencia a un Niño de 5 Años","\u002Factividades\u002Fact-05","8.actividades\u002F05.act-05",{"title":283,"path":284,"stem":285,"icon":83},"Actividad 6: Simulación de una cocina con múltiples chefs (hilos)","\u002Factividades\u002Fact-06","8.actividades\u002F06.act-06",{"title":287,"path":288,"stem":289,"icon":83},"Actividad 7: Sistema de retiro bancario","\u002Factividades\u002Fact-07","8.actividades\u002F07.act-07",{"title":291,"path":292,"stem":293,"icon":83},"Actividad 8: Simulación de Round Robin con hilos e Interfaz Gráfica","\u002Factividades\u002Fact-08","8.actividades\u002F08.act-08",{"title":295,"path":296,"stem":297,"icon":83},"Actividad 9: CRUD con Hibernate y Swing","\u002Factividades\u002Fact-09","8.actividades\u002F09.act-09",{"id":299,"title":196,"body":300,"description":795,"extension":796,"links":797,"meta":798,"navigation":799,"path":197,"seo":800,"stem":198,"__hash__":801},"docs\u002F6.movil\u002F04.filas-columnas.md",{"type":301,"value":302,"toc":785},"minimark",[303,324,331,337,396,399,409,447,450,499,506,517,573,618,624,629,668,684,736,769,773,781],[304,305,306,307,311,312,315,316,311,320,323],"p",{},"En Jetpack Compose, puedes organizar tu interfaz de usuario utilizando ",[308,309,310],"strong",{},"filas"," y ",[308,313,314],{},"columnas",". Estas son herramientas fundamentales para crear diseños flexibles y adaptativos. A continuación, te mostraré cómo usar ",[317,318,319],"code",{},"Row",[317,321,322],{},"Column"," para estructurar tu UI.",[325,326,328,329],"h2",{"id":327},"filas-con-row","Filas con ",[317,330,319],{},[304,332,333,334,336],{},"Antes de comenzar, entendamos qué es una fila. Una fila es un contenedor que organiza sus elementos hijos horizontalmente. Para crear una fila en Jetpack Compose, puedes usar el componente ",[317,335,319],{},". Aquí tienes un ejemplo básico:",[338,339,344],"pre",{"className":340,"code":341,"language":342,"meta":343,"style":343},"language-kotlin shiki shiki-themes github-dark","@Composable\nfun MyRow() {\n    Row() {\n        Text(\"Elemento 1\")\n        Text(\"Elemento 2\")\n        Text(\"Elemento 3\")\n    }\n}\n","kotlin","",[317,345,346,354,360,366,372,378,384,390],{"__ignoreMap":343},[347,348,351],"span",{"class":349,"line":350},"line",1,[347,352,353],{},"@Composable\n",[347,355,357],{"class":349,"line":356},2,[347,358,359],{},"fun MyRow() {\n",[347,361,363],{"class":349,"line":362},3,[347,364,365],{},"    Row() {\n",[347,367,369],{"class":349,"line":368},4,[347,370,371],{},"        Text(\"Elemento 1\")\n",[347,373,375],{"class":349,"line":374},5,[347,376,377],{},"        Text(\"Elemento 2\")\n",[347,379,381],{"class":349,"line":380},6,[347,382,383],{},"        Text(\"Elemento 3\")\n",[347,385,387],{"class":349,"line":386},7,[347,388,389],{},"    }\n",[347,391,393],{"class":349,"line":392},8,[347,394,395],{},"}\n",[304,397,398],{},"En este ejemplo, hemos creado una fila que contiene tres elementos de texto. Los elementos se organizarán horizontalmente, uno al lado del otro.",[304,400,401,402,404,405,408],{},"Sin embargo, la función ",[317,403,319],{}," tiene varios parámetros que te permiten personalizar su comportamiento. Por ejemplo, puedes usar ",[317,406,407],{},"horizontalArrangement"," para controlar cómo se distribuyen los elementos dentro de la fila:",[338,410,412],{"className":340,"code":411,"language":342,"meta":343,"style":343},"@Composable\nfun MyRow() {\n    Row(horizontalArrangement = Arrangement.SpaceBetween) {\n        Text(\"Elemento 1\")\n        Text(\"Elemento 2\")\n        Text(\"Elemento 3\")\n    }\n}\n",[317,413,414,418,422,427,431,435,439,443],{"__ignoreMap":343},[347,415,416],{"class":349,"line":350},[347,417,353],{},[347,419,420],{"class":349,"line":356},[347,421,359],{},[347,423,424],{"class":349,"line":362},[347,425,426],{},"    Row(horizontalArrangement = Arrangement.SpaceBetween) {\n",[347,428,429],{"class":349,"line":368},[347,430,371],{},[347,432,433],{"class":349,"line":374},[347,434,377],{},[347,436,437],{"class":349,"line":380},[347,438,383],{},[347,440,441],{"class":349,"line":386},[347,442,389],{},[347,444,445],{"class":349,"line":392},[347,446,395],{},[304,448,449],{},"En este caso, los elementos se distribuirán con espacio entre ellos. El resto de atributos son los siguientes:",[451,452,453,466],"table",{},[454,455,456],"thead",{},[457,458,459,463],"tr",{},[460,461,462],"th",{},"Atributo",[460,464,465],{},"Descripción",[467,468,469,479,489],"tbody",{},[457,470,471,476],{},[472,473,474],"td",{},[317,475,407],{},[472,477,478],{},"Controla la distribución horizontal de los elementos dentro de la fila.",[457,480,481,486],{},[472,482,483],{},[317,484,485],{},"verticalAlignment",[472,487,488],{},"Controla la alineación vertical de los elementos dentro de la fila.",[457,490,491,496],{},[472,492,493],{},[317,494,495],{},"modifier",[472,497,498],{},"Permite aplicar modificaciones a la fila, como padding, tamaño, etc.",[500,501,503,504],"h3",{"id":502},"alineación-vertical-en-row","Alineación Vertical en ",[317,505,319],{},[304,507,508,509,511,512,311,514,516],{},"Puedes alinear los elementos dentro de un ",[317,510,319],{}," utilizamos los atributos ",[317,513,407],{},[317,515,485],{},". Por ejemplo:",[338,518,520],{"className":340,"code":519,"language":342,"meta":343,"style":343},"@Composable\nfun MyRow() {\n    Row(\n        horizontalArrangement = Arrangement.Center,\n        verticalAlignment = Alignment.CenterVertically\n    ) {\n        Text(\"Elemento 1\")\n        Text(\"Elemento 2\")\n        Text(\"Elemento 3\")\n    }\n}\n",[317,521,522,526,530,535,540,545,550,554,558,563,568],{"__ignoreMap":343},[347,523,524],{"class":349,"line":350},[347,525,353],{},[347,527,528],{"class":349,"line":356},[347,529,359],{},[347,531,532],{"class":349,"line":362},[347,533,534],{},"    Row(\n",[347,536,537],{"class":349,"line":368},[347,538,539],{},"        horizontalArrangement = Arrangement.Center,\n",[347,541,542],{"class":349,"line":374},[347,543,544],{},"        verticalAlignment = Alignment.CenterVertically\n",[347,546,547],{"class":349,"line":380},[347,548,549],{},"    ) {\n",[347,551,552],{"class":349,"line":386},[347,553,371],{},[347,555,556],{"class":349,"line":392},[347,557,377],{},[347,559,561],{"class":349,"line":560},9,[347,562,383],{},[347,564,566],{"class":349,"line":565},10,[347,567,389],{},[347,569,571],{"class":349,"line":570},11,[347,572,395],{},[304,574,575,576,311,578,580,581,583,584,587,588,587,591,587,594,587,597,600,601,604,605,607,608,587,611,600,614,617],{},"En este ejemplo, los elementos se centrarán tanto horizontal como verticalmente dentro de la fila. Puedes experimentar con diferentes valores para ",[317,577,407],{},[317,579,485],{}," para lograr el diseño que deseas. Algunos valores comunes para ",[317,582,407],{}," incluyen ",[317,585,586],{},"Start",", ",[317,589,590],{},"End",[317,592,593],{},"Center",[317,595,596],{},"SpaceBetween",[317,598,599],{},"SpaceAround",", y ",[317,602,603],{},"SpaceEvenly",". Para ",[317,606,485],{},", puedes usar ",[317,609,610],{},"Top",[317,612,613],{},"CenterVertically",[317,615,616],{},"Bottom",".",[325,619,621,622],{"id":620},"columnas-con-column","Columnas con ",[317,623,322],{},[304,625,626,627,336],{},"Una columna es un contenedor que organiza sus elementos hijos verticalmente. Para crear una columna en Jetpack Compose, puedes usar el componente ",[317,628,322],{},[338,630,632],{"className":340,"code":631,"language":342,"meta":343,"style":343},"@Composable\nfun MyColumn() {\n    Column() {\n        Text(\"Elemento 1\")\n        Text(\"Elemento 2\")\n        Text(\"Elemento 3\")\n    }\n}\n",[317,633,634,638,643,648,652,656,660,664],{"__ignoreMap":343},[347,635,636],{"class":349,"line":350},[347,637,353],{},[347,639,640],{"class":349,"line":356},[347,641,642],{},"fun MyColumn() {\n",[347,644,645],{"class":349,"line":362},[347,646,647],{},"    Column() {\n",[347,649,650],{"class":349,"line":368},[347,651,371],{},[347,653,654],{"class":349,"line":374},[347,655,377],{},[347,657,658],{"class":349,"line":380},[347,659,383],{},[347,661,662],{"class":349,"line":386},[347,663,389],{},[347,665,666],{"class":349,"line":392},[347,667,395],{},[304,669,670,671,673,674,676,677,311,680,683],{},"En este ejemplo, hemos creado una columna que contiene tres elementos de texto. Los elementos se organizarán verticalmente, uno debajo del otro. Al igual que con ",[317,672,319],{},", puedes personalizar el comportamiento de ",[317,675,322],{}," utilizando los parámetros ",[317,678,679],{},"verticalArrangement",[317,681,682],{},"horizontalAlignment",":",[338,685,687],{"className":340,"code":686,"language":342,"meta":343,"style":343},"@Composable\nfun MyColumn() {\n    Column(\n        verticalArrangement = Arrangement.SpaceBetween,\n        horizontalAlignment = Alignment.CenterHorizontally\n    ) {\n        Text(\"Elemento 1\")\n        Text(\"Elemento 2\")\n        Text(\"Elemento 3\")\n    }\n}\n",[317,688,689,693,697,702,707,712,716,720,724,728,732],{"__ignoreMap":343},[347,690,691],{"class":349,"line":350},[347,692,353],{},[347,694,695],{"class":349,"line":356},[347,696,642],{},[347,698,699],{"class":349,"line":362},[347,700,701],{},"    Column(\n",[347,703,704],{"class":349,"line":368},[347,705,706],{},"        verticalArrangement = Arrangement.SpaceBetween,\n",[347,708,709],{"class":349,"line":374},[347,710,711],{},"        horizontalAlignment = Alignment.CenterHorizontally\n",[347,713,714],{"class":349,"line":380},[347,715,549],{},[347,717,718],{"class":349,"line":386},[347,719,371],{},[347,721,722],{"class":349,"line":392},[347,723,377],{},[347,725,726],{"class":349,"line":560},[347,727,383],{},[347,729,730],{"class":349,"line":565},[347,731,389],{},[347,733,734],{"class":349,"line":570},[347,735,395],{},[304,737,738,739,741,742,311,744,580,746,583,748,587,750,587,752,587,754,587,756,600,758,604,760,607,762,587,764,600,767,617],{},"En este caso, los elementos se distribuirán con espacio entre ellos y se centrarán horizontalmente dentro de la columna. Al igual que con ",[317,740,319],{},", puedes experimentar con diferentes valores para ",[317,743,679],{},[317,745,682],{},[317,747,679],{},[317,749,610],{},[317,751,593],{},[317,753,616],{},[317,755,596],{},[317,757,599],{},[317,759,603],{},[317,761,682],{},[317,763,586],{},[317,765,766],{},"CenterHorizontally",[317,768,590],{},[325,770,772],{"id":771},"conclusión","Conclusión",[304,774,775,776,311,778,780],{},"Las filas y columnas son herramientas esenciales para organizar tu interfaz de usuario en Jetpack Compose. Utilizando ",[317,777,319],{},[317,779,322],{},", puedes crear diseños flexibles y adaptativos que se ajusten a las necesidades de tu aplicación. Experimenta con los diferentes parámetros de alineación y distribución para lograr el diseño perfecto para tu UI.",[782,783,784],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":343,"searchDepth":356,"depth":356,"links":786},[787,792,794],{"id":327,"depth":356,"text":788,"children":789},"Filas con Row",[790],{"id":502,"depth":362,"text":791},"Alineación Vertical en Row",{"id":620,"depth":356,"text":793},"Columnas con Column",{"id":771,"depth":356,"text":772},"Aprende a organizar tu interfaz de usuario utilizando filas y columnas en Jetpack Compose.","md",null,{},true,{"title":196,"description":795},"eiY4q0mmxwRjF2CUg_zEW76PH74ithiyIrc57aR3JHs",[803,805],{"title":192,"path":193,"stem":194,"description":804,"icon":190,"children":-1},"En este artículo se explicará qué es Jetpack Compose, sus características, cómo funciona y el proceso de instalación y configuración de Jetpack Compose para el desarrollo de aplicaciones Android utilizando Kotlin.",{"title":200,"path":201,"stem":202,"description":806,"icon":190,"children":-1},"Aprende a utilizar los componentes básicos de Jetpack Compose para construir interfaces de usuario en Android.",1775101374747]