<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Ejemplos prácticos on Documentación</title>
    <link>https://documentation.javiercarrasco.es/pmdm/EjPract/</link>
    <description>Recent content in Ejemplos prácticos on Documentación</description>
    <generator>Hugo</generator>
    <language>es-es</language>
    <atom:link href="https://documentation.javiercarrasco.es/pmdm/EjPract/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Ejemplo práctico 1: Estado observable</title>
      <link>https://documentation.javiercarrasco.es/pmdm/EjPract/ejemploPractico1/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://documentation.javiercarrasco.es/pmdm/EjPract/ejemploPractico1/</guid>
      <description>&lt;h1 id=&#34;ejemplo-práctico-1-estado-observable&#34;&gt;Ejemplo práctico 1: Estado observable&lt;/h1&gt;&#xA;&lt;div class=&#34;book-tabs&#34;&gt;&#xA;&lt;input type=&#34;radio&#34; class=&#34;toggle&#34; name=&#34;tabs-0&#34; id=&#34;tabs-0-0&#34; checked=&#34;checked&#34; /&gt;&lt;label for=&#34;tabs-0-0&#34;&gt;Objetivo&lt;/label&gt;&lt;div class=&#34;book-tabs-content markdown-inner&#34;&gt;&#xA;&lt;p&gt;Entender el funcionamiento de un observable y las diferencias entre utilizar &lt;code&gt;remember { mutableStateOf(false) }&lt;/code&gt; y &lt;code&gt;remember { false }&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;desarrollo&#34;&gt;Desarrollo&lt;a class=&#34;anchor&#34; href=&#34;#desarrollo&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;La clase &lt;code&gt;MainActivity&lt;/code&gt; es la típica configuración de una actividad con Jetpack Compose, donde se establece el tema y el &lt;code&gt;Scaffold&lt;/code&gt;, desde donde se llama a la función composable &lt;code&gt;RememberVsMutableStateDemo&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34; title=&#34;Kotlin&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#4c4f69;background-color:#eff1f5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-kotlin&#34; data-lang=&#34;kotlin&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style=&#34;color:#8839ef&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#df8e1d&#34;&gt;MainActivity&lt;/span&gt; : ComponentActivity() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 2&lt;/span&gt;&lt;span&gt;    &lt;span style=&#34;color:#8839ef&#34;&gt;override&lt;/span&gt; &lt;span style=&#34;color:#8839ef&#34;&gt;fun&lt;/span&gt; &lt;span style=&#34;color:#1e66f5&#34;&gt;onCreate&lt;/span&gt;(savedInstanceState: Bundle?) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 3&lt;/span&gt;&lt;span&gt;        &lt;span style=&#34;color:#8839ef&#34;&gt;super&lt;/span&gt;.onCreate(savedInstanceState)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 4&lt;/span&gt;&lt;span&gt;        enableEdgeToEdge()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 5&lt;/span&gt;&lt;span&gt;        setContent {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 6&lt;/span&gt;&lt;span&gt;            ExampleT1_01Theme {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 7&lt;/span&gt;&lt;span&gt;                Scaffold(modifier = &lt;span style=&#34;color:#df8e1d&#34;&gt;Modifier&lt;/span&gt;.fillMaxSize()) { innerPadding &lt;span style=&#34;color:#04a5e5;font-weight:bold&#34;&gt;-&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 8&lt;/span&gt;&lt;span&gt;                    RememberVsMutableStateDemo(&lt;span style=&#34;color:#df8e1d&#34;&gt;Modifier&lt;/span&gt;.padding(innerPadding))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 9&lt;/span&gt;&lt;span&gt;                }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;10&lt;/span&gt;&lt;span&gt;            }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;11&lt;/span&gt;&lt;span&gt;        }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;12&lt;/span&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;13&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Observa el código del método &lt;code&gt;RememberVsMutableStateDemo&lt;/code&gt;, en el se muestran dos bloques similares pero con comportamientos diferentes:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ejemplo práctico 2: Centrar un Text usando Modifier.layout</title>
      <link>https://documentation.javiercarrasco.es/pmdm/EjPract/ejemploPractico2/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://documentation.javiercarrasco.es/pmdm/EjPract/ejemploPractico2/</guid>
      <description>&lt;h1 id=&#34;ejemplo-práctico-2-centrar-un-text-usando-modifierlayout&#34;&gt;Ejemplo práctico 2: Centrar un Text usando Modifier.layout&lt;/h1&gt;&#xA;&lt;div class=&#34;book-tabs&#34;&gt;&#xA;&lt;input type=&#34;radio&#34; class=&#34;toggle&#34; name=&#34;tabs-0&#34; id=&#34;tabs-0-0&#34; checked=&#34;checked&#34; /&gt;&lt;label for=&#34;tabs-0-0&#34;&gt;Objetivo&lt;/label&gt;&lt;div class=&#34;book-tabs-content markdown-inner&#34;&gt;&#xA;&lt;p&gt;Aprende a crear un &lt;em&gt;layout&lt;/em&gt; personalizado que centre un composable hijo (en este caso, un &lt;code&gt;Text&lt;/code&gt;) manualmente, sin usar &lt;code&gt;Box&lt;/code&gt; o &lt;code&gt;Arrangement.Center&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;estructura-del-modifierlayout&#34;&gt;Estructura del Modifier.layout&lt;a class=&#34;anchor&#34; href=&#34;#estructura-del-modifierlayout&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34; title=&#34;Kotlin&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#4c4f69;background-color:#eff1f5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-kotlin&#34; data-lang=&#34;kotlin&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style=&#34;color:#df8e1d&#34;&gt;Modifier&lt;/span&gt;.layout { measurable, constraints &lt;span style=&#34;color:#04a5e5;font-weight:bold&#34;&gt;-&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 2&lt;/span&gt;&lt;span&gt;    &lt;span style=&#34;color:#9ca0b0;font-style:italic&#34;&gt;// Se mide el hijo con las restricciones.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 3&lt;/span&gt;&lt;span&gt;    &lt;span style=&#34;color:#8839ef&#34;&gt;val&lt;/span&gt; &lt;span style=&#34;color:#fe640b&#34;&gt;placeable&lt;/span&gt; = measurable.measure(constraints)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 4&lt;/span&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 5&lt;/span&gt;&lt;span&gt;    &lt;span style=&#34;color:#9ca0b0;font-style:italic&#34;&gt;// Se calcula el tamaño total del padre.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 6&lt;/span&gt;&lt;span&gt;    &lt;span style=&#34;color:#8839ef&#34;&gt;val&lt;/span&gt; &lt;span style=&#34;color:#fe640b&#34;&gt;width&lt;/span&gt; = constraints.maxWidth&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 7&lt;/span&gt;&lt;span&gt;    &lt;span style=&#34;color:#8839ef&#34;&gt;val&lt;/span&gt; &lt;span style=&#34;color:#fe640b&#34;&gt;height&lt;/span&gt; = constraints.maxHeight&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 8&lt;/span&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 9&lt;/span&gt;&lt;span&gt;    &lt;span style=&#34;color:#9ca0b0;font-style:italic&#34;&gt;// se calcula la posición centrada.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;10&lt;/span&gt;&lt;span&gt;    &lt;span style=&#34;color:#8839ef&#34;&gt;val&lt;/span&gt; &lt;span style=&#34;color:#fe640b&#34;&gt;x&lt;/span&gt; = (width - placeable.width) / &lt;span style=&#34;color:#fe640b&#34;&gt;2&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;11&lt;/span&gt;&lt;span&gt;    &lt;span style=&#34;color:#8839ef&#34;&gt;val&lt;/span&gt; &lt;span style=&#34;color:#fe640b&#34;&gt;y&lt;/span&gt; = (height - placeable.height) / &lt;span style=&#34;color:#fe640b&#34;&gt;2&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;12&lt;/span&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;13&lt;/span&gt;&lt;span&gt;    &lt;span style=&#34;color:#9ca0b0;font-style:italic&#34;&gt;// Se devuelve el layout y se coloca el hijo.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;14&lt;/span&gt;&lt;span&gt;    layout(width, height) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;15&lt;/span&gt;&lt;span&gt;        placeable.place(x, y)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;16&lt;/span&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;17&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;ejemplo-completo&#34;&gt;Ejemplo completo&lt;a class=&#34;anchor&#34; href=&#34;#ejemplo-completo&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Se crea el método composable:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ejemplo práctico 3: Limitar al 50% del espacio disponible usando Modifier.layout</title>
      <link>https://documentation.javiercarrasco.es/pmdm/EjPract/ejemploPractico3/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://documentation.javiercarrasco.es/pmdm/EjPract/ejemploPractico3/</guid>
      <description>&lt;h1 id=&#34;ejemplo-práctico-3-limitar-al-50-del-espacio-disponible-usando-modifierlayout&#34;&gt;Ejemplo práctico 3: Limitar al 50% del espacio disponible usando Modifier.layout&lt;/h1&gt;&#xA;&lt;div class=&#34;book-tabs&#34;&gt;&#xA;&lt;input type=&#34;radio&#34; class=&#34;toggle&#34; name=&#34;tabs-0&#34; id=&#34;tabs-0-0&#34; checked=&#34;checked&#34; /&gt;&lt;label for=&#34;tabs-0-0&#34;&gt;Objetivo&lt;/label&gt;&lt;div class=&#34;book-tabs-content markdown-inner&#34;&gt;&#xA;&lt;p&gt;Se creará un modificador personalizado llamado &lt;code&gt;limitarAnchoAl50Porciento()&lt;/code&gt; que limite el ancho del hijo al 50% del ancho máximo disponible. Además, colocará el hijo centrado horizontalmente dentro del espacio total y mantendrá la altura original del hijo.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;modificador-personalizado&#34;&gt;Modificador personalizado&lt;a class=&#34;anchor&#34; href=&#34;#modificador-personalizado&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34; title=&#34;Kotlin&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#4c4f69;background-color:#eff1f5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-kotlin&#34; data-lang=&#34;kotlin&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style=&#34;color:#8839ef&#34;&gt;fun&lt;/span&gt; &lt;span style=&#34;color:#1e66f5&#34;&gt;Modifier&lt;/span&gt;.limitarAnchoAl50Porciento(): Modifier = &lt;span style=&#34;color:#8839ef&#34;&gt;this&lt;/span&gt;.then(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 2&lt;/span&gt;&lt;span&gt;    &lt;span style=&#34;color:#df8e1d&#34;&gt;Modifier&lt;/span&gt;.layout { measurable, constraints &lt;span style=&#34;color:#04a5e5;font-weight:bold&#34;&gt;-&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 3&lt;/span&gt;&lt;span&gt;        &lt;span style=&#34;color:#9ca0b0;font-style:italic&#34;&gt;// Se calcula el 50% del ancho disponible.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 4&lt;/span&gt;&lt;span&gt;        &lt;span style=&#34;color:#8839ef&#34;&gt;val&lt;/span&gt; &lt;span style=&#34;color:#fe640b&#34;&gt;anchoDisponible&lt;/span&gt; = constraints.maxWidth&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 5&lt;/span&gt;&lt;span&gt;        &lt;span style=&#34;color:#8839ef&#34;&gt;val&lt;/span&gt; &lt;span style=&#34;color:#fe640b&#34;&gt;anchoLimitado&lt;/span&gt; = anchoDisponible / &lt;span style=&#34;color:#fe640b&#34;&gt;2&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 6&lt;/span&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 7&lt;/span&gt;&lt;span&gt;        &lt;span style=&#34;color:#9ca0b0;font-style:italic&#34;&gt;// Se crean nuevas restricciones con ancho máximo reducido.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 8&lt;/span&gt;&lt;span&gt;        &lt;span style=&#34;color:#8839ef&#34;&gt;val&lt;/span&gt; &lt;span style=&#34;color:#fe640b&#34;&gt;newConstraints&lt;/span&gt; = constraints.copy(maxWidth = anchoLimitado)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 9&lt;/span&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;10&lt;/span&gt;&lt;span&gt;        &lt;span style=&#34;color:#9ca0b0;font-style:italic&#34;&gt;// Se mide el hijo con esas restricciones.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;11&lt;/span&gt;&lt;span&gt;        &lt;span style=&#34;color:#8839ef&#34;&gt;val&lt;/span&gt; &lt;span style=&#34;color:#fe640b&#34;&gt;placeable&lt;/span&gt; = measurable.measure(newConstraints)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;12&lt;/span&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;13&lt;/span&gt;&lt;span&gt;        &lt;span style=&#34;color:#9ca0b0;font-style:italic&#34;&gt;// La altura del padre será la del hijo, ancho será el original.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;14&lt;/span&gt;&lt;span&gt;        layout(anchoDisponible, placeable.height) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;15&lt;/span&gt;&lt;span&gt;            &lt;span style=&#34;color:#9ca0b0;font-style:italic&#34;&gt;// Se centra horizontalmente&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;16&lt;/span&gt;&lt;span&gt;            &lt;span style=&#34;color:#8839ef&#34;&gt;val&lt;/span&gt; &lt;span style=&#34;color:#fe640b&#34;&gt;x&lt;/span&gt; = (anchoDisponible - placeable.width) / &lt;span style=&#34;color:#fe640b&#34;&gt;2&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;17&lt;/span&gt;&lt;span&gt;            placeable.place(x, &lt;span style=&#34;color:#fe640b&#34;&gt;0&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;18&lt;/span&gt;&lt;span&gt;        }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;19&lt;/span&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;20&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;A continuación, se creará el método composable:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ejemplo práctico 4: BoxWithConstraints adaptativo</title>
      <link>https://documentation.javiercarrasco.es/pmdm/EjPract/ejemploPractico4/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://documentation.javiercarrasco.es/pmdm/EjPract/ejemploPractico4/</guid>
      <description>&lt;h1 id=&#34;ejemplo-práctico-4-boxwithconstraints-adaptativo&#34;&gt;Ejemplo práctico 4: BoxWithConstraints adaptativo&lt;/h1&gt;&#xA;&lt;div class=&#34;book-tabs&#34;&gt;&#xA;&lt;input type=&#34;radio&#34; class=&#34;toggle&#34; name=&#34;tabs-0&#34; id=&#34;tabs-0-0&#34; checked=&#34;checked&#34; /&gt;&lt;label for=&#34;tabs-0-0&#34;&gt;Objetivo&lt;/label&gt;&lt;div class=&#34;book-tabs-content markdown-inner&#34;&gt;&#xA;&lt;p&gt;Este ejemplo muestra un texto diferente según si el ancho del contenedor es mayor o menor a &lt;code&gt;300.dp&lt;/code&gt;. Además, el fondo cambia de color para mayor visibilidad.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;composable-ejemploboxwithconstraints&#34;&gt;Composable EjemploBoxWithConstraints&lt;a class=&#34;anchor&#34; href=&#34;#composable-ejemploboxwithconstraints&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34; title=&#34;Kotlin&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#4c4f69;background-color:#eff1f5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-kotlin&#34; data-lang=&#34;kotlin&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style=&#34;color:#1e66f5;font-weight:bold&#34;&gt;@SuppressLint&lt;/span&gt;(&lt;span style=&#34;color:#40a02b&#34;&gt;&amp;#34;UnusedBoxWithConstraintsScope&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 2&lt;/span&gt;&lt;span&gt;&lt;span style=&#34;color:#1e66f5;font-weight:bold&#34;&gt;@Composable&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 3&lt;/span&gt;&lt;span&gt;&lt;span style=&#34;color:#8839ef&#34;&gt;fun&lt;/span&gt; &lt;span style=&#34;color:#1e66f5&#34;&gt;EjemploBoxWithConstraints&lt;/span&gt;() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 4&lt;/span&gt;&lt;span&gt;    BoxWithConstraints(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 5&lt;/span&gt;&lt;span&gt;        modifier = Modifier&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 6&lt;/span&gt;&lt;span&gt;            .fillMaxWidth()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 7&lt;/span&gt;&lt;span&gt;            .height(&lt;span style=&#34;color:#fe640b&#34;&gt;200&lt;/span&gt;.dp)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 8&lt;/span&gt;&lt;span&gt;            .background(&lt;span style=&#34;color:#df8e1d&#34;&gt;Color&lt;/span&gt;.LightGray)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 9&lt;/span&gt;&lt;span&gt;    ) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;10&lt;/span&gt;&lt;span&gt;        &lt;span style=&#34;color:#8839ef&#34;&gt;val&lt;/span&gt; &lt;span style=&#34;color:#fe640b&#34;&gt;isPantallaGrande&lt;/span&gt; = maxWidth &amp;gt; &lt;span style=&#34;color:#fe640b&#34;&gt;300&lt;/span&gt;.dp&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;11&lt;/span&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;12&lt;/span&gt;&lt;span&gt;        Box(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;13&lt;/span&gt;&lt;span&gt;            modifier = Modifier&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;14&lt;/span&gt;&lt;span&gt;                .fillMaxSize()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;15&lt;/span&gt;&lt;span&gt;                .background(&lt;span style=&#34;color:#8839ef&#34;&gt;if&lt;/span&gt; (isPantallaGrande) &lt;span style=&#34;color:#df8e1d&#34;&gt;Color&lt;/span&gt;.Cyan &lt;span style=&#34;color:#8839ef&#34;&gt;else&lt;/span&gt; &lt;span style=&#34;color:#df8e1d&#34;&gt;Color&lt;/span&gt;.Magenta),&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;16&lt;/span&gt;&lt;span&gt;            contentAlignment = &lt;span style=&#34;color:#df8e1d&#34;&gt;Alignment&lt;/span&gt;.Center&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;17&lt;/span&gt;&lt;span&gt;        ) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;18&lt;/span&gt;&lt;span&gt;            Text(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;19&lt;/span&gt;&lt;span&gt;                text = &lt;span style=&#34;color:#8839ef&#34;&gt;if&lt;/span&gt; (isPantallaGrande) &lt;span style=&#34;color:#40a02b&#34;&gt;&amp;#34;Pantalla ancha&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#8839ef&#34;&gt;else&lt;/span&gt; &lt;span style=&#34;color:#40a02b&#34;&gt;&amp;#34;Pantalla estrecha&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;20&lt;/span&gt;&lt;span&gt;                fontSize = &lt;span style=&#34;color:#fe640b&#34;&gt;20&lt;/span&gt;.sp,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;21&lt;/span&gt;&lt;span&gt;                color = &lt;span style=&#34;color:#df8e1d&#34;&gt;Color&lt;/span&gt;.White&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;22&lt;/span&gt;&lt;span&gt;            )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;23&lt;/span&gt;&lt;span&gt;        }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;24&lt;/span&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;25&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Para visualizar el ejemplo en la vista previa de Android Studio añade los siguientes métodos, ajustando los anchos de pantalla:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ejemplo práctico 5: Barra de progreso circular personalizada</title>
      <link>https://documentation.javiercarrasco.es/pmdm/EjPract/ejemploPractico5/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://documentation.javiercarrasco.es/pmdm/EjPract/ejemploPractico5/</guid>
      <description>&lt;h1 id=&#34;ejemplo-práctico-5-barra-de-progreso-circular-personalizada&#34;&gt;Ejemplo práctico 5: Barra de progreso circular personalizada&lt;/h1&gt;&#xA;&lt;div class=&#34;book-tabs&#34;&gt;&#xA;&lt;input type=&#34;radio&#34; class=&#34;toggle&#34; name=&#34;tabs-0&#34; id=&#34;tabs-0-0&#34; checked=&#34;checked&#34; /&gt;&lt;label for=&#34;tabs-0-0&#34;&gt;Objetivo&lt;/label&gt;&lt;div class=&#34;book-tabs-content markdown-inner&#34;&gt;&#xA;&lt;p&gt;Este ejemplo muestra cómo crear una barra de progreso circular usando &lt;code&gt;Canvas&lt;/code&gt;. Además, se introduce el uso de &lt;code&gt;Scaffold&lt;/code&gt;, &lt;code&gt;TopAppBar&lt;/code&gt; y &lt;code&gt;FloatingActionButton&lt;/code&gt; para crear una interfaz más completa.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;composable-barraprogresocircular&#34;&gt;Composable BarraProgresoCircular&lt;a class=&#34;anchor&#34; href=&#34;#composable-barraprogresocircular&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34; title=&#34;Kotlin&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#4c4f69;background-color:#eff1f5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-kotlin&#34; data-lang=&#34;kotlin&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style=&#34;color:#1e66f5;font-weight:bold&#34;&gt;@Composable&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 2&lt;/span&gt;&lt;span&gt;&lt;span style=&#34;color:#8839ef&#34;&gt;fun&lt;/span&gt; &lt;span style=&#34;color:#1e66f5&#34;&gt;BarraProgresoCircular&lt;/span&gt;(progreso: Float) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 3&lt;/span&gt;&lt;span&gt;    Canvas(modifier = &lt;span style=&#34;color:#df8e1d&#34;&gt;Modifier&lt;/span&gt;.size(&lt;span style=&#34;color:#fe640b&#34;&gt;150&lt;/span&gt;.dp)) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 4&lt;/span&gt;&lt;span&gt;        &lt;span style=&#34;color:#9ca0b0;font-style:italic&#34;&gt;// Fondo del círculo (gris)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 5&lt;/span&gt;&lt;span&gt;        drawCircle(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 6&lt;/span&gt;&lt;span&gt;            color = &lt;span style=&#34;color:#df8e1d&#34;&gt;Color&lt;/span&gt;.LightGray,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 7&lt;/span&gt;&lt;span&gt;            radius = size.minDimension / &lt;span style=&#34;color:#fe640b&#34;&gt;2&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 8&lt;/span&gt;&lt;span&gt;            center = center,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 9&lt;/span&gt;&lt;span&gt;            style = Stroke(width = &lt;span style=&#34;color:#fe640b&#34;&gt;20f&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;10&lt;/span&gt;&lt;span&gt;        )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;11&lt;/span&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;12&lt;/span&gt;&lt;span&gt;        &lt;span style=&#34;color:#9ca0b0;font-style:italic&#34;&gt;// Progreso (azul)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;13&lt;/span&gt;&lt;span&gt;        drawArc(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;14&lt;/span&gt;&lt;span&gt;            color = &lt;span style=&#34;color:#df8e1d&#34;&gt;Color&lt;/span&gt;.Blue,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;15&lt;/span&gt;&lt;span&gt;            startAngle = -&lt;span style=&#34;color:#fe640b&#34;&gt;90f&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;16&lt;/span&gt;&lt;span&gt;            sweepAngle = &lt;span style=&#34;color:#fe640b&#34;&gt;360&lt;/span&gt; * progreso,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;17&lt;/span&gt;&lt;span&gt;            useCenter = &lt;span style=&#34;color:#8839ef&#34;&gt;false&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;18&lt;/span&gt;&lt;span&gt;            style = Stroke(width = &lt;span style=&#34;color:#fe640b&#34;&gt;20f&lt;/span&gt;, cap = &lt;span style=&#34;color:#df8e1d&#34;&gt;StrokeCap&lt;/span&gt;.Round),&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;19&lt;/span&gt;&lt;span&gt;            size = size&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;20&lt;/span&gt;&lt;span&gt;        )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;21&lt;/span&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;22&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Para visualizar el ejemplo en la vista previa de Android Studio añade el siguiente métodos:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ejemplo práctico 6: Fondo decorativo con formas</title>
      <link>https://documentation.javiercarrasco.es/pmdm/EjPract/ejemploPractico6/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://documentation.javiercarrasco.es/pmdm/EjPract/ejemploPractico6/</guid>
      <description>&lt;h1 id=&#34;ejemplo-práctico-6-fondo-decorativo-con-formas&#34;&gt;Ejemplo práctico 6: Fondo decorativo con formas&lt;/h1&gt;&#xA;&lt;div class=&#34;book-tabs&#34;&gt;&#xA;&lt;input type=&#34;radio&#34; class=&#34;toggle&#34; name=&#34;tabs-0&#34; id=&#34;tabs-0-0&#34; checked=&#34;checked&#34; /&gt;&lt;label for=&#34;tabs-0-0&#34;&gt;Objetivo&lt;/label&gt;&lt;div class=&#34;book-tabs-content markdown-inner&#34;&gt;&#xA;&lt;p&gt;Este ejemplo crea un fondo decorativo con círculos y líneas, ideal para personalizar pantallas.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;composable-fondodecorativo&#34;&gt;Composable FondoDecorativo&lt;a class=&#34;anchor&#34; href=&#34;#composable-fondodecorativo&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34; title=&#34;Kotlin&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#4c4f69;background-color:#eff1f5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-kotlin&#34; data-lang=&#34;kotlin&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style=&#34;color:#1e66f5;font-weight:bold&#34;&gt;@Composable&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 2&lt;/span&gt;&lt;span&gt;&lt;span style=&#34;color:#8839ef&#34;&gt;fun&lt;/span&gt; &lt;span style=&#34;color:#1e66f5&#34;&gt;FondoDecorativo&lt;/span&gt;(modifier: Modifier = Modifier) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 3&lt;/span&gt;&lt;span&gt;    Canvas(modifier = modifier.fillMaxSize()) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 4&lt;/span&gt;&lt;span&gt;        &lt;span style=&#34;color:#8839ef&#34;&gt;val&lt;/span&gt; &lt;span style=&#34;color:#fe640b&#34;&gt;ancho&lt;/span&gt; = size.width&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 5&lt;/span&gt;&lt;span&gt;        &lt;span style=&#34;color:#8839ef&#34;&gt;val&lt;/span&gt; &lt;span style=&#34;color:#fe640b&#34;&gt;alto&lt;/span&gt; = size.height&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 6&lt;/span&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 7&lt;/span&gt;&lt;span&gt;        &lt;span style=&#34;color:#9ca0b0;font-style:italic&#34;&gt;// Fondo general&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 8&lt;/span&gt;&lt;span&gt;        drawRect(Color(&lt;span style=&#34;color:#fe640b&#34;&gt;0xFFEFEFEF&lt;/span&gt;))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 9&lt;/span&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;10&lt;/span&gt;&lt;span&gt;        &lt;span style=&#34;color:#9ca0b0;font-style:italic&#34;&gt;// Círculo azul en esquina superior izquierda&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;11&lt;/span&gt;&lt;span&gt;        drawCircle(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;12&lt;/span&gt;&lt;span&gt;            color = &lt;span style=&#34;color:#df8e1d&#34;&gt;Color&lt;/span&gt;.Blue,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;13&lt;/span&gt;&lt;span&gt;            radius = ancho / &lt;span style=&#34;color:#fe640b&#34;&gt;4&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;14&lt;/span&gt;&lt;span&gt;            center = Offset(ancho / &lt;span style=&#34;color:#fe640b&#34;&gt;4&lt;/span&gt;, alto / &lt;span style=&#34;color:#fe640b&#34;&gt;4&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;15&lt;/span&gt;&lt;span&gt;        )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;16&lt;/span&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;17&lt;/span&gt;&lt;span&gt;        &lt;span style=&#34;color:#9ca0b0;font-style:italic&#34;&gt;// Línea diagonal decorativa&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;18&lt;/span&gt;&lt;span&gt;        drawLine(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;19&lt;/span&gt;&lt;span&gt;            color = &lt;span style=&#34;color:#df8e1d&#34;&gt;Color&lt;/span&gt;.Magenta,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;20&lt;/span&gt;&lt;span&gt;            start = Offset(&lt;span style=&#34;color:#fe640b&#34;&gt;0f&lt;/span&gt;, alto),&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;21&lt;/span&gt;&lt;span&gt;            end = Offset(ancho, &lt;span style=&#34;color:#fe640b&#34;&gt;0f&lt;/span&gt;),&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;22&lt;/span&gt;&lt;span&gt;            strokeWidth = &lt;span style=&#34;color:#fe640b&#34;&gt;10f&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;23&lt;/span&gt;&lt;span&gt;        )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;24&lt;/span&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;25&lt;/span&gt;&lt;span&gt;        &lt;span style=&#34;color:#9ca0b0;font-style:italic&#34;&gt;// Pequeños círculos decorativos&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;26&lt;/span&gt;&lt;span&gt;        &lt;span style=&#34;color:#8839ef&#34;&gt;for&lt;/span&gt; (i &lt;span style=&#34;color:#8839ef&#34;&gt;in&lt;/span&gt; &lt;span style=&#34;color:#fe640b&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#04a5e5;font-weight:bold&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#fe640b&#34;&gt;5&lt;/span&gt;) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;27&lt;/span&gt;&lt;span&gt;            drawCircle(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;28&lt;/span&gt;&lt;span&gt;                color = &lt;span style=&#34;color:#df8e1d&#34;&gt;Color&lt;/span&gt;.Green,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;29&lt;/span&gt;&lt;span&gt;                radius = &lt;span style=&#34;color:#fe640b&#34;&gt;20f&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;30&lt;/span&gt;&lt;span&gt;                center = Offset(ancho * i / &lt;span style=&#34;color:#fe640b&#34;&gt;6&lt;/span&gt;, alto * i / &lt;span style=&#34;color:#fe640b&#34;&gt;6&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;31&lt;/span&gt;&lt;span&gt;            )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;32&lt;/span&gt;&lt;span&gt;        }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;33&lt;/span&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;34&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Para visualizar el ejemplo en la vista previa de Android Studio añade el siguiente método:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ejemplo práctico 7: Animación con graphicsLayer y Scaffold</title>
      <link>https://documentation.javiercarrasco.es/pmdm/EjPract/ejemploPractico7/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://documentation.javiercarrasco.es/pmdm/EjPract/ejemploPractico7/</guid>
      <description>&lt;h1 id=&#34;ejemplo-práctico-7-animación-con-graphicslayer-y-scaffold&#34;&gt;Ejemplo práctico 7: Animación con graphicsLayer y Scaffold&lt;/h1&gt;&#xA;&lt;div class=&#34;book-tabs&#34;&gt;&#xA;&lt;input type=&#34;radio&#34; class=&#34;toggle&#34; name=&#34;tabs-0&#34; id=&#34;tabs-0-0&#34; checked=&#34;checked&#34; /&gt;&lt;label for=&#34;tabs-0-0&#34;&gt;Objetivo&lt;/label&gt;&lt;div class=&#34;book-tabs-content markdown-inner&#34;&gt;&#xA;&lt;p&gt;Este ejemplo se creará un &lt;code&gt;Scaffold&lt;/code&gt; con &lt;code&gt;TopAppBar&lt;/code&gt; y &lt;code&gt;FloatingActionButton&lt;/code&gt;. Se creará un composable que anime su rotación y escala usando &lt;code&gt;graphicsLayer&lt;/code&gt; y un botón flotante que inicie o detenga la animación.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;composable-ejemploavanzadographicslayer&#34;&gt;Composable EjemploAvanzadoGraphicsLayer&lt;a class=&#34;anchor&#34; href=&#34;#composable-ejemploavanzadographicslayer&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34; title=&#34;Kotlin&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#4c4f69;background-color:#eff1f5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-kotlin&#34; data-lang=&#34;kotlin&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style=&#34;color:#1e66f5;font-weight:bold&#34;&gt;@OptIn&lt;/span&gt;(ExperimentalMaterial3Api&lt;span style=&#34;color:#04a5e5;font-weight:bold&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#8839ef&#34;&gt;class&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 2&lt;/span&gt;&lt;span&gt;&lt;span style=&#34;color:#1e66f5;font-weight:bold&#34;&gt;@Composable&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 3&lt;/span&gt;&lt;span&gt;&lt;span style=&#34;color:#8839ef&#34;&gt;fun&lt;/span&gt; &lt;span style=&#34;color:#1e66f5&#34;&gt;EjemploAvanzadoGraphicsLayer&lt;/span&gt;() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 4&lt;/span&gt;&lt;span&gt;    &lt;span style=&#34;color:#8839ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#fe640b&#34;&gt;animar&lt;/span&gt; &lt;span style=&#34;color:#8839ef&#34;&gt;by&lt;/span&gt; remember { mutableStateOf(&lt;span style=&#34;color:#8839ef&#34;&gt;false&lt;/span&gt;) }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 5&lt;/span&gt;&lt;span&gt;    &lt;span style=&#34;color:#8839ef&#34;&gt;val&lt;/span&gt; &lt;span style=&#34;color:#fe640b&#34;&gt;rotacion&lt;/span&gt; &lt;span style=&#34;color:#8839ef&#34;&gt;by&lt;/span&gt; animateFloatAsState(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 6&lt;/span&gt;&lt;span&gt;        targetValue = &lt;span style=&#34;color:#8839ef&#34;&gt;if&lt;/span&gt; (animar) &lt;span style=&#34;color:#fe640b&#34;&gt;360f&lt;/span&gt; &lt;span style=&#34;color:#8839ef&#34;&gt;else&lt;/span&gt; &lt;span style=&#34;color:#fe640b&#34;&gt;0f&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 7&lt;/span&gt;&lt;span&gt;        animationSpec = tween(durationMillis = &lt;span style=&#34;color:#fe640b&#34;&gt;2000&lt;/span&gt;, easing = LinearEasing)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 8&lt;/span&gt;&lt;span&gt;    )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 9&lt;/span&gt;&lt;span&gt;    &lt;span style=&#34;color:#8839ef&#34;&gt;val&lt;/span&gt; &lt;span style=&#34;color:#fe640b&#34;&gt;escala&lt;/span&gt; &lt;span style=&#34;color:#8839ef&#34;&gt;by&lt;/span&gt; animateFloatAsState(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;10&lt;/span&gt;&lt;span&gt;        targetValue = &lt;span style=&#34;color:#8839ef&#34;&gt;if&lt;/span&gt; (animar) &lt;span style=&#34;color:#fe640b&#34;&gt;1.5f&lt;/span&gt; &lt;span style=&#34;color:#8839ef&#34;&gt;else&lt;/span&gt; &lt;span style=&#34;color:#fe640b&#34;&gt;1f&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;11&lt;/span&gt;&lt;span&gt;        animationSpec = tween(durationMillis = &lt;span style=&#34;color:#fe640b&#34;&gt;2000&lt;/span&gt;, easing = LinearEasing)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;12&lt;/span&gt;&lt;span&gt;    )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;13&lt;/span&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;14&lt;/span&gt;&lt;span&gt;    Scaffold(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;15&lt;/span&gt;&lt;span&gt;        topBar = {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;16&lt;/span&gt;&lt;span&gt;            TopAppBar(title = { Text(&lt;span style=&#34;color:#40a02b&#34;&gt;&amp;#34;GraphicsLayer Avanzado&amp;#34;&lt;/span&gt;) })&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;17&lt;/span&gt;&lt;span&gt;        },&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;18&lt;/span&gt;&lt;span&gt;        floatingActionButton = {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;19&lt;/span&gt;&lt;span&gt;            FloatingActionButton(onClick = { animar = !animar }) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;20&lt;/span&gt;&lt;span&gt;                Icon(&lt;span style=&#34;color:#df8e1d&#34;&gt;Icons&lt;/span&gt;.&lt;span style=&#34;color:#df8e1d&#34;&gt;Default&lt;/span&gt;.PlayArrow, contentDescription = &lt;span style=&#34;color:#40a02b&#34;&gt;&amp;#34;Animar&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;21&lt;/span&gt;&lt;span&gt;            }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;22&lt;/span&gt;&lt;span&gt;        }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;23&lt;/span&gt;&lt;span&gt;    ) { padding &lt;span style=&#34;color:#04a5e5;font-weight:bold&#34;&gt;-&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;24&lt;/span&gt;&lt;span&gt;        Box(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;25&lt;/span&gt;&lt;span&gt;            modifier = Modifier&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;26&lt;/span&gt;&lt;span&gt;                .fillMaxSize()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;27&lt;/span&gt;&lt;span&gt;                .padding(padding),&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;28&lt;/span&gt;&lt;span&gt;            contentAlignment = &lt;span style=&#34;color:#df8e1d&#34;&gt;Alignment&lt;/span&gt;.Center&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;29&lt;/span&gt;&lt;span&gt;        ) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;30&lt;/span&gt;&lt;span&gt;            Box(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;31&lt;/span&gt;&lt;span&gt;                modifier = Modifier&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;32&lt;/span&gt;&lt;span&gt;                    .size(&lt;span style=&#34;color:#fe640b&#34;&gt;150&lt;/span&gt;.dp)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;33&lt;/span&gt;&lt;span&gt;                    .graphicsLayer(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;34&lt;/span&gt;&lt;span&gt;                        rotationZ = rotacion,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;35&lt;/span&gt;&lt;span&gt;                        scaleX = escala,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;36&lt;/span&gt;&lt;span&gt;                        scaleY = escala,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;37&lt;/span&gt;&lt;span&gt;                        alpha = &lt;span style=&#34;color:#fe640b&#34;&gt;0.8f&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;38&lt;/span&gt;&lt;span&gt;                        shadowElevation = &lt;span style=&#34;color:#fe640b&#34;&gt;16f&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;39&lt;/span&gt;&lt;span&gt;                    )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;40&lt;/span&gt;&lt;span&gt;                    .background(Color(&lt;span style=&#34;color:#fe640b&#34;&gt;0xFF6200EE&lt;/span&gt;)),&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;41&lt;/span&gt;&lt;span&gt;                contentAlignment = &lt;span style=&#34;color:#df8e1d&#34;&gt;Alignment&lt;/span&gt;.Center&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;42&lt;/span&gt;&lt;span&gt;            ) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;43&lt;/span&gt;&lt;span&gt;                Text(&lt;span style=&#34;color:#40a02b&#34;&gt;&amp;#34;Animado&amp;#34;&lt;/span&gt;, color = &lt;span style=&#34;color:#df8e1d&#34;&gt;Color&lt;/span&gt;.White, fontSize = &lt;span style=&#34;color:#fe640b&#34;&gt;18&lt;/span&gt;.sp)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;44&lt;/span&gt;&lt;span&gt;            }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;45&lt;/span&gt;&lt;span&gt;        }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;46&lt;/span&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;47&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Para visualizar el ejemplo en la vista previa de Android Studio añade el siguiente método:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ejemplo práctico 8: Uso básico de Scaffold con Snackbar</title>
      <link>https://documentation.javiercarrasco.es/pmdm/EjPract/ejemploPractico8/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://documentation.javiercarrasco.es/pmdm/EjPract/ejemploPractico8/</guid>
      <description>&lt;h1 id=&#34;ejemplo-práctico-8-uso-básico-de-scaffold-con-snackbar&#34;&gt;Ejemplo práctico 8: Uso básico de Scaffold con Snackbar&lt;/h1&gt;&#xA;&lt;div class=&#34;book-tabs&#34;&gt;&#xA;&lt;input type=&#34;radio&#34; class=&#34;toggle&#34; name=&#34;tabs-0&#34; id=&#34;tabs-0-0&#34; checked=&#34;checked&#34; /&gt;&lt;label for=&#34;tabs-0-0&#34;&gt;Objetivo&lt;/label&gt;&lt;div class=&#34;book-tabs-content markdown-inner&#34;&gt;&#xA;&lt;p&gt;En este ejemplo se utiliza &lt;strong&gt;Material 3&lt;/strong&gt; para añadir un &lt;code&gt;Scaffold&lt;/code&gt; con &lt;code&gt;TopAppBar&lt;/code&gt;, &lt;code&gt;BottomAppBar&lt;/code&gt;, y &lt;code&gt;FloatingActionButton&lt;/code&gt;. Además, se utiliza un &lt;code&gt;Snackbar&lt;/code&gt; mediante &lt;code&gt;SnackbarHostState&lt;/code&gt; y cambio de contenido al pulsar el FAB, mostrando &lt;code&gt;Snackbar&lt;/code&gt; cuando el contador alcanza el máximo (5).&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;composable-scaffoldmaterial3consnackbar&#34;&gt;Composable ScaffoldMaterial3ConSnackbar&lt;a class=&#34;anchor&#34; href=&#34;#composable-scaffoldmaterial3consnackbar&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34; title=&#34;Kotlin&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#4c4f69;background-color:#eff1f5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-kotlin&#34; data-lang=&#34;kotlin&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style=&#34;color:#1e66f5;font-weight:bold&#34;&gt;@OptIn&lt;/span&gt;(ExperimentalMaterial3Api&lt;span style=&#34;color:#04a5e5;font-weight:bold&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#8839ef&#34;&gt;class&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 2&lt;/span&gt;&lt;span&gt;&lt;span style=&#34;color:#1e66f5;font-weight:bold&#34;&gt;@Composable&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 3&lt;/span&gt;&lt;span&gt;&lt;span style=&#34;color:#8839ef&#34;&gt;fun&lt;/span&gt; &lt;span style=&#34;color:#1e66f5&#34;&gt;ScaffoldMaterial3ConSnackbar&lt;/span&gt;() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 4&lt;/span&gt;&lt;span&gt;    &lt;span style=&#34;color:#8839ef&#34;&gt;val&lt;/span&gt; &lt;span style=&#34;color:#fe640b&#34;&gt;snackbarHostState&lt;/span&gt; = remember { SnackbarHostState() }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 5&lt;/span&gt;&lt;span&gt;    &lt;span style=&#34;color:#8839ef&#34;&gt;val&lt;/span&gt; &lt;span style=&#34;color:#fe640b&#34;&gt;scope&lt;/span&gt; = rememberCoroutineScope()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 6&lt;/span&gt;&lt;span&gt;    &lt;span style=&#34;color:#8839ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#fe640b&#34;&gt;contador&lt;/span&gt; &lt;span style=&#34;color:#8839ef&#34;&gt;by&lt;/span&gt; remember { mutableStateOf(&lt;span style=&#34;color:#fe640b&#34;&gt;0&lt;/span&gt;) }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 7&lt;/span&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 8&lt;/span&gt;&lt;span&gt;    Scaffold(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 9&lt;/span&gt;&lt;span&gt;        snackbarHost = { SnackbarHost(snackbarHostState) },&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;10&lt;/span&gt;&lt;span&gt;        topBar = {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;11&lt;/span&gt;&lt;span&gt;            TopAppBar(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;12&lt;/span&gt;&lt;span&gt;                title = { Text(&lt;span style=&#34;color:#40a02b&#34;&gt;&amp;#34;Mi App Simple M3&amp;#34;&lt;/span&gt;) },&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;13&lt;/span&gt;&lt;span&gt;                colors = topAppBarColors(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;14&lt;/span&gt;&lt;span&gt;                    containerColor = &lt;span style=&#34;color:#df8e1d&#34;&gt;MaterialTheme&lt;/span&gt;.colorScheme.primaryContainer,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;15&lt;/span&gt;&lt;span&gt;                    titleContentColor = &lt;span style=&#34;color:#df8e1d&#34;&gt;MaterialTheme&lt;/span&gt;.colorScheme.primary,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;16&lt;/span&gt;&lt;span&gt;                )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;17&lt;/span&gt;&lt;span&gt;            )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;18&lt;/span&gt;&lt;span&gt;        },&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;19&lt;/span&gt;&lt;span&gt;        bottomBar = {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;20&lt;/span&gt;&lt;span&gt;            BottomAppBar {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;21&lt;/span&gt;&lt;span&gt;                IconButton(onClick = { &lt;span style=&#34;color:#9ca0b0;font-style:italic&#34;&gt;/* Acción 1 */&lt;/span&gt; }) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;22&lt;/span&gt;&lt;span&gt;                    Icon(&lt;span style=&#34;color:#df8e1d&#34;&gt;Icons&lt;/span&gt;.&lt;span style=&#34;color:#df8e1d&#34;&gt;Default&lt;/span&gt;.Home, contentDescription = &lt;span style=&#34;color:#40a02b&#34;&gt;&amp;#34;Home&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;23&lt;/span&gt;&lt;span&gt;                }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;24&lt;/span&gt;&lt;span&gt;                Spacer(&lt;span style=&#34;color:#df8e1d&#34;&gt;Modifier&lt;/span&gt;.weight(&lt;span style=&#34;color:#fe640b&#34;&gt;1f&lt;/span&gt;))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;25&lt;/span&gt;&lt;span&gt;                IconButton(onClick = { &lt;span style=&#34;color:#9ca0b0;font-style:italic&#34;&gt;/* Acción 2 */&lt;/span&gt; }) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;26&lt;/span&gt;&lt;span&gt;                    Icon(&lt;span style=&#34;color:#df8e1d&#34;&gt;Icons&lt;/span&gt;.&lt;span style=&#34;color:#df8e1d&#34;&gt;Default&lt;/span&gt;.Favorite, contentDescription = &lt;span style=&#34;color:#40a02b&#34;&gt;&amp;#34;Favoritos&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;27&lt;/span&gt;&lt;span&gt;                }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;28&lt;/span&gt;&lt;span&gt;            }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;29&lt;/span&gt;&lt;span&gt;        },&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;30&lt;/span&gt;&lt;span&gt;        floatingActionButton = {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;31&lt;/span&gt;&lt;span&gt;            ExtendedFloatingActionButton(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;32&lt;/span&gt;&lt;span&gt;                onClick = {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;33&lt;/span&gt;&lt;span&gt;                    &lt;span style=&#34;color:#8839ef&#34;&gt;if&lt;/span&gt; (contador &amp;lt; &lt;span style=&#34;color:#fe640b&#34;&gt;5&lt;/span&gt;) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;34&lt;/span&gt;&lt;span&gt;                        contador&lt;span style=&#34;color:#04a5e5;font-weight:bold&#34;&gt;++&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;35&lt;/span&gt;&lt;span&gt;                        &lt;span style=&#34;color:#df8e1d&#34;&gt;Log&lt;/span&gt;.d(&lt;span style=&#34;color:#40a02b&#34;&gt;&amp;#34;ScaffoldM3&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#40a02b&#34;&gt;&amp;#34;Contador incrementado: &lt;/span&gt;&lt;span style=&#34;color:#40a02b&#34;&gt;$contador&lt;/span&gt;&lt;span style=&#34;color:#40a02b&#34;&gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;36&lt;/span&gt;&lt;span&gt;                    } &lt;span style=&#34;color:#8839ef&#34;&gt;else&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;37&lt;/span&gt;&lt;span&gt;                        scope.launch {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;38&lt;/span&gt;&lt;span&gt;                            snackbarHostState.showSnackbar(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;39&lt;/span&gt;&lt;span&gt;                                &lt;span style=&#34;color:#40a02b&#34;&gt;&amp;#34;Conteo máximo alcanzado&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;40&lt;/span&gt;&lt;span&gt;                                actionLabel = &lt;span style=&#34;color:#40a02b&#34;&gt;&amp;#34;Reiniciar&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;41&lt;/span&gt;&lt;span&gt;                                duration = &lt;span style=&#34;color:#df8e1d&#34;&gt;SnackbarDuration&lt;/span&gt;.Short&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;42&lt;/span&gt;&lt;span&gt;                            ).let { result &lt;span style=&#34;color:#04a5e5;font-weight:bold&#34;&gt;-&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;43&lt;/span&gt;&lt;span&gt;                                &lt;span style=&#34;color:#8839ef&#34;&gt;if&lt;/span&gt; (result &lt;span style=&#34;color:#04a5e5;font-weight:bold&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#df8e1d&#34;&gt;SnackbarResult&lt;/span&gt;.ActionPerformed) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;44&lt;/span&gt;&lt;span&gt;                                    contador = &lt;span style=&#34;color:#fe640b&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;45&lt;/span&gt;&lt;span&gt;                                }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;46&lt;/span&gt;&lt;span&gt;                            }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;47&lt;/span&gt;&lt;span&gt;                        }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;48&lt;/span&gt;&lt;span&gt;                    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;49&lt;/span&gt;&lt;span&gt;                }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;50&lt;/span&gt;&lt;span&gt;            ) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;51&lt;/span&gt;&lt;span&gt;                Text(&lt;span style=&#34;color:#40a02b&#34;&gt;&amp;#34;Sumar&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;52&lt;/span&gt;&lt;span&gt;            }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;53&lt;/span&gt;&lt;span&gt;        },&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;54&lt;/span&gt;&lt;span&gt;        floatingActionButtonPosition = &lt;span style=&#34;color:#df8e1d&#34;&gt;FabPosition&lt;/span&gt;.End&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;55&lt;/span&gt;&lt;span&gt;    ) { innerPadding &lt;span style=&#34;color:#04a5e5;font-weight:bold&#34;&gt;-&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;56&lt;/span&gt;&lt;span&gt;        Box(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;57&lt;/span&gt;&lt;span&gt;            modifier = Modifier&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;58&lt;/span&gt;&lt;span&gt;                .fillMaxSize()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;59&lt;/span&gt;&lt;span&gt;                .padding(innerPadding),&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;60&lt;/span&gt;&lt;span&gt;            contentAlignment = &lt;span style=&#34;color:#df8e1d&#34;&gt;Alignment&lt;/span&gt;.Center&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;61&lt;/span&gt;&lt;span&gt;        ) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;62&lt;/span&gt;&lt;span&gt;            Text(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;63&lt;/span&gt;&lt;span&gt;                text = &lt;span style=&#34;color:#40a02b&#34;&gt;&amp;#34;Conteo: &lt;/span&gt;&lt;span style=&#34;color:#40a02b&#34;&gt;$contador&lt;/span&gt;&lt;span style=&#34;color:#40a02b&#34;&gt;&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;64&lt;/span&gt;&lt;span&gt;                fontSize = &lt;span style=&#34;color:#fe640b&#34;&gt;24&lt;/span&gt;.sp,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;65&lt;/span&gt;&lt;span&gt;                fontWeight = &lt;span style=&#34;color:#df8e1d&#34;&gt;FontWeight&lt;/span&gt;.Bold&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;66&lt;/span&gt;&lt;span&gt;            )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;67&lt;/span&gt;&lt;span&gt;        }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;68&lt;/span&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;69&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Para visualizar el ejemplo en la vista previa de Android Studio añade el siguiente método:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ejemplo práctico 9: Menú básico en TopAppBar con devolución de selección vía callback</title>
      <link>https://documentation.javiercarrasco.es/pmdm/EjPract/ejemploPractico9/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://documentation.javiercarrasco.es/pmdm/EjPract/ejemploPractico9/</guid>
      <description>&lt;h1 id=&#34;ejemplo-práctico-9-menú-básico-en-topappbar-con-devolución-de-selección-vía-callback&#34;&gt;Ejemplo práctico 9: Menú básico en TopAppBar con devolución de selección vía callback&lt;/h1&gt;&#xA;&lt;div class=&#34;book-tabs&#34;&gt;&#xA;&lt;input type=&#34;radio&#34; class=&#34;toggle&#34; name=&#34;tabs-0&#34; id=&#34;tabs-0-0&#34; checked=&#34;checked&#34; /&gt;&lt;label for=&#34;tabs-0-0&#34;&gt;Objetivo&lt;/label&gt;&lt;div class=&#34;book-tabs-content markdown-inner&#34;&gt;&#xA;&lt;p&gt;Este ejemplo trata de plantear una posible solución a problemas que pueden plantearse durante el desarrollo de aplicaciones móviles. La idea es crear un componente para montar una &lt;code&gt;TopAppBar&lt;/code&gt; con un menú, evaluando la selección del usuario mediante un único &lt;em&gt;callback&lt;/em&gt;, comprobando la respuesta producida y actuando en consecuencia. Debes tener en cuenta que en &lt;strong&gt;Compose&lt;/strong&gt; los métodos no devuelven valores, de ahí el uso de &lt;em&gt;callbacks&lt;/em&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ejemplo práctico 10: Menú con DropdownMenu en BottomAppBar</title>
      <link>https://documentation.javiercarrasco.es/pmdm/EjPract/ejemploPractico10/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://documentation.javiercarrasco.es/pmdm/EjPract/ejemploPractico10/</guid>
      <description>&lt;h1 id=&#34;ejemplo-práctico-10-menú-con-dropdownmenu-en-bottomappbar&#34;&gt;Ejemplo práctico 10: Menú con DropdownMenu en BottomAppBar&lt;/h1&gt;&#xA;&lt;div class=&#34;book-tabs&#34;&gt;&#xA;&lt;input type=&#34;radio&#34; class=&#34;toggle&#34; name=&#34;tabs-0&#34; id=&#34;tabs-0-0&#34; checked=&#34;checked&#34; /&gt;&lt;label for=&#34;tabs-0-0&#34;&gt;Objetivo&lt;/label&gt;&lt;div class=&#34;book-tabs-content markdown-inner&#34;&gt;&#xA;&lt;p&gt;Este ejemplo es una variante del anterior. Se sustituirá la &lt;code&gt;TopAppBar&lt;/code&gt; con un menú por una &lt;code&gt;BottomAppBar&lt;/code&gt;, evaluando la selección del usuario mediante un único &lt;em&gt;callback&lt;/em&gt;, comprobando la respuesta recibida y actuando en consecuencia. Debes tener en cuenta que en &lt;strong&gt;Compose&lt;/strong&gt; los métodos no devuelven valores, de ahí el uso de &lt;em&gt;callbacks&lt;/em&gt;. Se mantendrá la misma estructura de &lt;code&gt;sealed class&lt;/code&gt;, añadiendo &lt;code&gt;label&lt;/code&gt; e &lt;code&gt;icon&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ejemplo práctico 11: Login en un cuadro de diálogo</title>
      <link>https://documentation.javiercarrasco.es/pmdm/EjPract/ejemploPractico11/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://documentation.javiercarrasco.es/pmdm/EjPract/ejemploPractico11/</guid>
      <description>&lt;h1 id=&#34;ejemplo-práctico-11-login-en-un-cuadro-de-diálogo&#34;&gt;Ejemplo práctico 11: Login en un cuadro de diálogo&lt;/h1&gt;&#xA;&lt;div class=&#34;book-tabs&#34;&gt;&#xA;&lt;input type=&#34;radio&#34; class=&#34;toggle&#34; name=&#34;tabs-0&#34; id=&#34;tabs-0-0&#34; checked=&#34;checked&#34; /&gt;&lt;label for=&#34;tabs-0-0&#34;&gt;Objetivo&lt;/label&gt;&lt;div class=&#34;book-tabs-content markdown-inner&#34;&gt;&#xA;&lt;p&gt;Este ejemplo permite crear un &lt;code&gt;AlertDialog&lt;/code&gt; personalizado para solicitar usuario y contraseña.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;recursos-en-stringxml&#34;&gt;Recursos en &lt;code&gt;string.xml&lt;/code&gt;&lt;a class=&#34;anchor&#34; href=&#34;#recursos-en-stringxml&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Como en la versión anterior, se tratará de evitar lo máximo posible el &lt;em&gt;hardcoded text&lt;/em&gt;, aunque en ocasiones, verás que se omite por razones didácticas.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34; title=&#34;XML&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#4c4f69;background-color:#eff1f5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-xml&#34; data-lang=&#34;xml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style=&#34;color:#8839ef&#34;&gt;&amp;lt;resources&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 2&lt;/span&gt;&lt;span&gt;    &lt;span style=&#34;color:#8839ef&#34;&gt;&amp;lt;string&lt;/span&gt; &lt;span style=&#34;color:#1e66f5&#34;&gt;name=&lt;/span&gt;&lt;span style=&#34;color:#40a02b&#34;&gt;&amp;#34;app_name&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#8839ef&#34;&gt;&amp;gt;&lt;/span&gt;ExampleT2_10&lt;span style=&#34;color:#8839ef&#34;&gt;&amp;lt;/string&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 3&lt;/span&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 4&lt;/span&gt;&lt;span&gt;    &lt;span style=&#34;color:#8839ef&#34;&gt;&amp;lt;string&lt;/span&gt; &lt;span style=&#34;color:#1e66f5&#34;&gt;name=&lt;/span&gt;&lt;span style=&#34;color:#40a02b&#34;&gt;&amp;#34;txt_title&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#8839ef&#34;&gt;&amp;gt;&lt;/span&gt;Login&lt;span style=&#34;color:#8839ef&#34;&gt;&amp;lt;/string&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 5&lt;/span&gt;&lt;span&gt;    &lt;span style=&#34;color:#8839ef&#34;&gt;&amp;lt;string&lt;/span&gt; &lt;span style=&#34;color:#1e66f5&#34;&gt;name=&lt;/span&gt;&lt;span style=&#34;color:#40a02b&#34;&gt;&amp;#34;txt_user&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#8839ef&#34;&gt;&amp;gt;&lt;/span&gt;Usuario&lt;span style=&#34;color:#8839ef&#34;&gt;&amp;lt;/string&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 6&lt;/span&gt;&lt;span&gt;    &lt;span style=&#34;color:#8839ef&#34;&gt;&amp;lt;string&lt;/span&gt; &lt;span style=&#34;color:#1e66f5&#34;&gt;name=&lt;/span&gt;&lt;span style=&#34;color:#40a02b&#34;&gt;&amp;#34;txt_password&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#8839ef&#34;&gt;&amp;gt;&lt;/span&gt;Contraseña&lt;span style=&#34;color:#8839ef&#34;&gt;&amp;lt;/string&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 7&lt;/span&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 8&lt;/span&gt;&lt;span&gt;    &lt;span style=&#34;color:#8839ef&#34;&gt;&amp;lt;string&lt;/span&gt; &lt;span style=&#34;color:#1e66f5&#34;&gt;name=&lt;/span&gt;&lt;span style=&#34;color:#40a02b&#34;&gt;&amp;#34;txt_login_error&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#8839ef&#34;&gt;&amp;gt;&lt;/span&gt;Credenciales incorrectas&lt;span style=&#34;color:#8839ef&#34;&gt;&amp;lt;/string&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt; 9&lt;/span&gt;&lt;span&gt;    &lt;span style=&#34;color:#8839ef&#34;&gt;&amp;lt;string&lt;/span&gt; &lt;span style=&#34;color:#1e66f5&#34;&gt;name=&lt;/span&gt;&lt;span style=&#34;color:#40a02b&#34;&gt;&amp;#34;txt_login_ok&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#8839ef&#34;&gt;&amp;gt;&lt;/span&gt;Credenciales correctas&lt;span style=&#34;color:#8839ef&#34;&gt;&amp;lt;/string&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1&#34;&gt;10&lt;/span&gt;&lt;span&gt;&lt;span style=&#34;color:#8839ef&#34;&gt;&amp;lt;/resources&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;compose-logindialog&#34;&gt;Compose &lt;code&gt;LoginDialog&lt;/code&gt;&lt;a class=&#34;anchor&#34; href=&#34;#compose-logindialog&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Se creará el siguiente compose para mostrar el cuadro de diálogo personalizado, en esta ocasión se utiliza &lt;code&gt;AlertDialog&lt;/code&gt; ya que la personalización es mínima y simplifica el código, pero para los cuadros de diálogo personalizados se recomienda el uso de &lt;code&gt;Dialog&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
