<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Expo archivos - Frexus</title>
	<atom:link href="https://www.frexus.dev/tag/expo/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.frexus.dev/tag/expo/</link>
	<description>Generando Valor Agreado</description>
	<lastBuildDate>Thu, 13 Nov 2025 17:10:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://www.frexus.dev/wp-content/uploads/2024/03/cropped-Captura-de-Pantalla-2022-12-26-a-las-15.52.42-32x32.png</url>
	<title>Expo archivos - Frexus</title>
	<link>https://www.frexus.dev/tag/expo/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">215529362</site>	<item>
		<title>Estructuras de control y cíclicas en React Native con Expo</title>
		<link>https://www.frexus.dev/post/estructuras-control-ciclicas-react-native-expo/</link>
					<comments>https://www.frexus.dev/post/estructuras-control-ciclicas-react-native-expo/#respond</comments>
		
		<dc:creator><![CDATA[Alfredo de Jesús Gutiérrez]]></dc:creator>
		<pubDate>Thu, 09 Oct 2025 16:57:32 +0000</pubDate>
				<category><![CDATA[post]]></category>
		<category><![CDATA[aprendizaje activo]]></category>
		<category><![CDATA[desarrollo móvil]]></category>
		<category><![CDATA[estructuras cíclicas]]></category>
		<category><![CDATA[Estructuras de control]]></category>
		<category><![CDATA[Expo]]></category>
		<category><![CDATA[lógica de programación]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[react native]]></category>
		<guid isPermaLink="false">https://www.frexus.dev/?p=4163</guid>

					<description><![CDATA[<p>En el desarrollo de aplicaciones móviles con React Native y Expo, las estructuras de control y las estructuras cíclicas son la base del pensamiento lógico que da vida al código.Estas herramientas permiten que nuestras apps tomen decisiones, repitan acciones y responden de forma dinámica a las interacciones del usuario. Comprender cómo funcionan no solo mejora la calidad del código, sino también la forma en que pensamos los procesos, analizamos escenarios y creamos experiencias interactivas más humanas y fluidas. Objetivo de aprendizaje Estructuras cíclicas: la repetición con propósito Las estructuras cíclicas permiten repetir acciones o recorrer datos sin necesidad de escribir el mismo código varias veces.Entre las más utilizadas se encuentran: Con Expo, estas estructuras permiten optimizar el rendimiento de la app y crear componentes más reutilizables. React Native y Expo: un entorno práctico React Native permite construir aplicaciones móviles nativas con JavaScript y React.Expo, por su parte, es un entorno que simplifica el desarrollo, pruebas y despliegue de apps móviles sin necesidad de configurar Android Studio o Xcode. Al combinarlos, obtienes un entorno rápido, escalable y perfecto para aprender los fundamentos de programación móvil moderna. Actividades de aprendizaje 1. Lectura del caso de estudio: 2. Escucha el pódcast: “Historias que te retan” ¿Tú vida es un algoritmo? Descubre cómo los programadores enfrentan el caos lógico y lo transforman en creatividad. Después de escuchar el podcast, genera un reporte como resultado del reto que hiciste. 3. Actividad práctica: Crea un pequeño proyecto en Expo que use: Aplica estructuras de control y ciclos para manejar estados e interacciones. Puedes guiarte del ejemplo que esta aquí 4. Actividades de reforzamiento Dominar las estructuras de control y cíclicas no es solo un paso técnico:es aprender a pensar con lógica, anticipar decisiones y repetir con propósito.Cada línea de código bien estructurada es una metáfora del orden que damos a nuestras ideas. Porque en la programación —como en la vida—, aprender a decidir y repetir correctamente, es lo que nos permite avanzar.</p>
<p>La entrada <a href="https://www.frexus.dev/post/estructuras-control-ciclicas-react-native-expo/">Estructuras de control y cíclicas en React Native con Expo</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img fetchpriority="high" decoding="async" width="1024" height="683" src="https://www.frexus.dev/wp-content/uploads/2025/10/dos-1-1024x683.png" alt="Estructuras de control y cíclicas en react native con expo" class="wp-image-4164" style="width:442px;height:auto" srcset="https://www.frexus.dev/wp-content/uploads/2025/10/dos-1-1024x683.png 1024w, https://www.frexus.dev/wp-content/uploads/2025/10/dos-1-300x200.png 300w, https://www.frexus.dev/wp-content/uploads/2025/10/dos-1-768x512.png 768w, https://www.frexus.dev/wp-content/uploads/2025/10/dos-1-1140x760.png 1140w, https://www.frexus.dev/wp-content/uploads/2025/10/dos-1.png 1536w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>En el desarrollo de aplicaciones móviles con <strong>React Native</strong> y <strong>Expo</strong>, las <strong>estructuras de control</strong> y las <strong>estructuras cíclicas</strong> son la base del pensamiento lógico que da vida al código.<br>Estas herramientas permiten que nuestras apps <strong>tomen decisiones</strong>, <strong>repitan acciones</strong> y <strong>responden de forma dinámica</strong> a las interacciones del usuario.</p>



<p>Comprender cómo funcionan no solo mejora la calidad del código, sino también la forma en que pensamos los procesos, analizamos escenarios y creamos experiencias interactivas más humanas y fluidas.</p>



<h2 class="wp-block-heading"><strong>Objetivo de aprendizaje</strong></h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Al finalizar esta lección, el estudiante será capaz de <strong>identificar y aplicar las estructuras de control y cíclicas</strong> en el desarrollo de componentes funcionales dentro de React Native utilizando Expo, comprendiendo su relevancia en la toma de decisiones lógicas y la repetición de procesos automatizados.</p>



<h2 class="wp-block-heading"><strong>Estructuras de control: decisiones inteligentes</strong></h2>



<p>Las <strong>estructuras de control</strong> determinan qué camino sigue el código según condiciones específicas.<br>Algunas de las más comunes son:</p>



<ul class="wp-block-list">
<li><strong><code>if / else / else if</code></strong> → permiten evaluar condiciones y decidir qué bloque ejecutar.</li>



<li><strong><code>switch</code></strong> → organiza múltiples rutas posibles según el valor de una variable.</li>



<li><strong>Operador ternario <code>?</code></strong> → forma compacta de tomar decisiones dentro del JSX.</li>



<li><strong>Evaluación lógica <code>&amp;&amp;</code></strong> → ejecuta o muestra algo solo si la condición se cumple.</li>
</ul>



<p>En React Native, estas estructuras controlan la <strong>navegación</strong>, la <strong>interfaz dinámica</strong> y el <strong>flujo de eventos</strong> del usuario.</p>
</blockquote>



<h2 class="wp-block-heading"><strong>Estructuras cíclicas: la repetición con propósito</strong></h2>



<p>Las <strong>estructuras cíclicas</strong> permiten <strong>repetir acciones o recorrer datos</strong> sin necesidad de escribir el mismo código varias veces.<br>Entre las más utilizadas se encuentran:</p>



<ul class="wp-block-list">
<li><strong><code>for</code></strong> → recorre un número definido de elementos.</li>



<li><strong><code>while</code></strong> → repite un bloque mientras una condición sea verdadera.</li>



<li><strong><code>do...while</code></strong> → garantiza al menos una ejecución antes de evaluar la condición.</li>



<li><strong><code>.map()</code></strong> → muy usado en React Native para mostrar listas dinámicas o componentes iterativos.</li>
</ul>



<p>Con Expo, estas estructuras permiten optimizar el rendimiento de la app y crear componentes más reutilizables.</p>



<h2 class="wp-block-heading"><strong>React Native y Expo: un entorno práctico</strong></h2>



<p><strong>React Native</strong> permite construir aplicaciones móviles nativas con JavaScript y React.<br><strong>Expo</strong>, por su parte, es un entorno que simplifica el desarrollo, pruebas y despliegue de apps móviles sin necesidad de configurar Android Studio o Xcode.</p>



<p>Al combinarlos, obtienes un entorno rápido, escalable y perfecto para aprender los fundamentos de programación móvil moderna.</p>



<h2 class="wp-block-heading"><strong>Actividades de aprendizaje</strong></h2>



<h3 class="wp-block-heading"><strong>1. Lectura del caso de estudio:</strong></h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>“E<strong><a href="https://steemit.com/estructuracontrol/@frexus/el-codigo-que-cambio-su-destino" target="_blank" rel="noreferrer noopener">l código que cambió su destino</a></strong>: cómo Sofía descubrió el poder oculto de las estructuras de control”</em><br>Reflexiona sobre el papel de las decisiones y los ciclos en la historia. Después de leerlo responde las siguientes preguntas de reflexión:</p>



<ul class="wp-block-list">
<li>¿Qué similitudes existen entre tomar decisiones en la vida y usar estructuras de control en programación?</li>



<li>¿Cómo influye la comprensión de los bucles en la forma en que enfrentamos la repetición de errores o tareas?</li>



<li>¿De qué manera un <code>if</code> mal planteado en código puede representar una mala decisión en un proyecto real?</li>



<li>¿Qué enseñanza deja el uso del método <code>.map()</code> sobre la importancia de transformar datos —o experiencias— en conocimiento?</li>



<li>¿Por qué el control del flujo en un programa refleja el control emocional en la resolución de problemas?</li>



<li>Si tuvieras que elegir una estructura de control como metáfora de tu forma de pensar, ¿cuál sería y por qué?</li>
</ul>
</blockquote>



<h3 class="wp-block-heading"><strong>2. Escucha el pódcast: “Historias que te retan”</strong></h3>



<p><strong><a href="https://youtu.be/SxRcZ_6H9SI" target="_blank" rel="noreferrer noopener">¿Tú vida es un algoritmo?</a></strong> Descubre cómo los programadores enfrentan el caos lógico y lo transforman en creatividad. Después de escuchar el podcast, genera un reporte como resultado del reto que hiciste.</p>



<h3 class="wp-block-heading"><strong>3. Actividad práctica:</strong></h3>



<p>Crea un pequeño proyecto en Expo que use:</p>



<ul class="wp-block-list">
<li>un botón para ejecutar un <code>if / else</code></li>



<li>una lista de elementos generada con <code>.map()</code></li>
</ul>



<p>Aplica estructuras de control y ciclos para manejar estados e interacciones. Puedes guiarte del ejemplo que esta <strong><a href="https://github.com/ajgutierr3z/ProgramacionMovil/tree/main/Estructuras_ctrl" target="_blank" rel="noreferrer noopener">aquí</a></strong></p>



<h3 class="wp-block-heading"><strong>4. Actividades de reforzamiento</strong></h3>



<ul class="wp-block-list">
<li><strong><a href="https://www.frexus.dev/sopa_letra/solver.html?gridSize=20&amp;words=REACT%2CEXPO%2CIFELSE%2CSWITCH%2CTERNARIO%2CWHILE%2CFOR%2CMAP%2CCICLO&amp;directions=horizontal&amp;title=Desarrollo+de+aplicaciones+M%C3%B3vil&amp;subtitle=Estructuras+de+control+y+ciclicas" target="_blank" rel="noreferrer noopener">Sopa de letras</a></strong></li>



<li><strong><a href="https://www.frexus.dev/crucigrama/crucigrama.html?data=%7B%22id%22%3A%22cw-x7baegial%22%2C%22title%22%3A%22Desarrollo%20de%20aplicaciones%20m%C3%B3viles%22%2C%22subtitle%22%3A%22Estructura%20de%20control%20y%20ciclicas%22%2C%22words%22%3A%5B%7B%22word%22%3A%22REACT%22%2C%22clue%22%3A%22Biblioteca%20usada%20para%20construir%20interfaces%20m%C3%B3viles%20en%20JavaScript.%22%7D%2C%7B%22word%22%3A%22EXPO%22%2C%22clue%22%3A%22Plataforma%20que%20facilita%20el%20desarrollo%20y%20prueba%20de%20apps%20en%20React%20Native.%22%7D%2C%7B%22word%22%3A%22IFELSE%22%2C%22clue%22%3A%22Estructura%20que%20permite%20tomar%20decisiones%20l%C3%B3gicas%20en%20el%20c%C3%B3digo.%22%7D%2C%7B%22word%22%3A%22SWITCH%22%2C%22clue%22%3A%22Controla%20m%C3%BAltiples%20condiciones%20evaluando%20un%20valor%20%C3%BAnico.%22%7D%2C%7B%22word%22%3A%22TERNARIO%22%2C%22clue%22%3A%22Forma%20abreviada%20de%20un%20condicional%20en%20una%20sola%20l%C3%ADnea.%22%7D%2C%7B%22word%22%3A%22WHILE%22%2C%22clue%22%3A%22Ejecuta%20un%20bloque%20de%20c%C3%B3digo%20mientras%20una%20condici%C3%B3n%20sea%20verdadera.%22%7D%2C%7B%22word%22%3A%22DOWHILE%22%2C%22clue%22%3A%22Ejecuta%20primero%20el%20bloque%20y%20luego%20eval%C3%BAa%20la%20condici%C3%B3n.%22%7D%2C%7B%22word%22%3A%22FOR%22%2C%22clue%22%3A%22Repite%20un%20bloque%20de%20c%C3%B3digo%20una%20cantidad%20definida%20de%20veces.%22%7D%2C%7B%22word%22%3A%22MAP%22%2C%22clue%22%3A%22M%C3%A9todo%20que%20recorre%20un%20arreglo%20y%20genera%20una%20nueva%20salida%20din%C3%A1mica.%22%7D%5D%2C%22createdAt%22%3A%222025-10-09T16%3A13%3A34.438Z%22%7D" target="_blank" rel="noreferrer noopener">Crucigrama</a></strong></li>
</ul>



<p>Dominar las estructuras de control y cíclicas no es solo un paso técnico:<br>es aprender a pensar con lógica, anticipar decisiones y repetir con propósito.<br>Cada línea de código bien estructurada es una metáfora del orden que damos a nuestras ideas.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Porque en la programación —como en la vida—, aprender a decidir y repetir correctamente, es lo que nos permite avanzar.</p>
</blockquote>



<p></p>
<p>La entrada <a href="https://www.frexus.dev/post/estructuras-control-ciclicas-react-native-expo/">Estructuras de control y cíclicas en React Native con Expo</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.frexus.dev/post/estructuras-control-ciclicas-react-native-expo/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4163</post-id>	</item>
		<item>
		<title>Ejercicios básico con React Native &#8211; Expo</title>
		<link>https://www.frexus.dev/post/ejercicios-basicos-react-native-expo/</link>
					<comments>https://www.frexus.dev/post/ejercicios-basicos-react-native-expo/#respond</comments>
		
		<dc:creator><![CDATA[Alfredo de Jesús Gutiérrez]]></dc:creator>
		<pubDate>Thu, 11 Sep 2025 19:02:21 +0000</pubDate>
				<category><![CDATA[post]]></category>
		<category><![CDATA[Aplicaciones Multiplataforma]]></category>
		<category><![CDATA[Aprender React Native]]></category>
		<category><![CDATA[desarrollo móvil]]></category>
		<category><![CDATA[Ejercicios React Native]]></category>
		<category><![CDATA[Expo]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[react native]]></category>
		<guid isPermaLink="false">https://www.frexus.dev/?p=4080</guid>

					<description><![CDATA[<p>Si estás comenzando en el mundo del desarrollo móvil, React Native con Expo es una de las mejores formas de dar tus primeros pasos. Gracias a su facilidad de uso y a la rapidez para crear aplicaciones, podrás aprender los fundamentos sin complicaciones. En este post encontrarás 12 ejercicios básicos con React Native y Expo que te llevarán desde mostrar un simple texto en pantalla hasta construir una calculadora funcional. La ruta está pensada para principiantes y cada actividad incluye código listo para probar en tu proyecto. Al terminar este recorrido tendrás una base sólida para desarrollar aplicaciones móviles multiplataforma y continuar con proyectos más avanzados. Ejercicio 1. Hola Mundo Ejercicio 2. Estilos Ejercicio 3. Botón Interactivo Ejercicio 4. Contador Simple Ejercicio 5. Input de Texto (Saludo) Ejercicio 6. Lista de Elementos Ejercicio 7. Navegación Ejercicio 8. Uso de Íconos Ejercicio 10. Consumir API Ejercicio 11. Ejercicio Extra: Suma de Dos Números Ejercicio 12. Número Par o Impar Ejercicio 13. Calculadora Básica</p>
<p>La entrada <a href="https://www.frexus.dev/post/ejercicios-basicos-react-native-expo/">Ejercicios básico con React Native &#8211; Expo</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img decoding="async" width="1024" height="683" src="https://www.frexus.dev/wp-content/uploads/2025/09/react-1024x683.png" alt="Ejercicio básico con React Native - Expo" class="wp-image-4081" style="width:526px;height:auto" srcset="https://www.frexus.dev/wp-content/uploads/2025/09/react-1024x683.png 1024w, https://www.frexus.dev/wp-content/uploads/2025/09/react-300x200.png 300w, https://www.frexus.dev/wp-content/uploads/2025/09/react-768x512.png 768w, https://www.frexus.dev/wp-content/uploads/2025/09/react-1140x760.png 1140w, https://www.frexus.dev/wp-content/uploads/2025/09/react.png 1536w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>Si estás comenzando en el mundo del desarrollo móvil, <strong>React Native con Expo</strong> es una de las mejores formas de dar tus primeros pasos. Gracias a su facilidad de uso y a la rapidez para crear aplicaciones, podrás aprender los fundamentos sin complicaciones.</p>



<p>En este post encontrarás <strong>12 ejercicios básicos con React Native y Expo</strong> que te llevarán desde mostrar un simple texto en pantalla hasta construir una calculadora funcional. La ruta está pensada para principiantes y cada actividad incluye código listo para probar en tu proyecto.</p>



<p>Al terminar este recorrido tendrás una base sólida para desarrollar aplicaciones móviles multiplataforma y continuar con proyectos más avanzados. </p>



<h3 class="wp-block-heading">Ejercicio 1. <strong>Hola Mundo</strong></h3>



<ul class="wp-block-list">
<li><strong>Objetivo:</strong> Mostrar un texto en pantalla.</li>



<li><strong>Tarea:</strong> Crear un proyecto con <code>npx create-expo-app</code> y mostrar <code>Hello World!</code>.</li>



<li><strong>Concepto:</strong> <code>Text</code>, <code>View</code>.</li>
</ul>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React from &#39;react&#39;;
import { View, Text } from &#39;react-native&#39;;

export default function App() {
  return (
    &lt;View style={{ flex:1, justifyContent:&#39;center&#39;, alignItems:&#39;center&#39; }}&gt;
      &lt;Text&gt;Hello World!&lt;/Text&gt;
    &lt;/View&gt;
  );
}
</code></pre></div>



<h3 class="wp-block-heading">Ejercicio 2. <strong>Estilos</strong></h3>



<ul class="wp-block-list">
<li><strong>Objetivo:</strong> Personalizar vistas y textos.</li>



<li><strong>Tarea:</strong> Cambiar color de fondo, tamaño de letra y alinear texto.</li>



<li><strong>Concepto:</strong> <code>StyleSheet</code>.</li>
</ul>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React from &#39;react&#39;;
import { View, Text, StyleSheet } from &#39;react-native&#39;;

export default function App() {
  return (
    &lt;View style={styles.container}&gt;
      &lt;Text style={styles.text}&gt;Texto con estilos&lt;/Text&gt;
    &lt;/View&gt;
  );
}

const styles = StyleSheet.create({
  container: { flex:1, justifyContent:&#39;center&#39;, alignItems:&#39;center&#39;, backgroundColor:&#39;#e0f7fa&#39; },
  text: { fontSize:24, fontWeight:&#39;bold&#39;, color:&#39;#00796b&#39; }
});
</code></pre></div>



<h3 class="wp-block-heading">Ejercicio 3. <strong>Botón Interactivo</strong></h3>



<ul class="wp-block-list">
<li><strong>Objetivo:</strong> Manejo de eventos.</li>



<li><strong>Tarea:</strong> Crear un botón que cambie el texto al hacer clic.</li>



<li><strong>Concepto:</strong> <code>Button</code>, <code>useState</code>.</li>
</ul>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React, { useState } from &#39;react&#39;;
import { View, Text, Button } from &#39;react-native&#39;;

export default function App() {
  const [mensaje, setMensaje] = useState(&quot;Texto inicial&quot;);

  return (
    &lt;View style={{ flex:1, justifyContent:&#39;center&#39;, alignItems:&#39;center&#39; }}&gt;
      &lt;Text&gt;{mensaje}&lt;/Text&gt;
      &lt;Button title=&quot;Cambiar Texto&quot; onPress={() =&gt; setMensaje(&quot;¡Texto cambiado!&quot;)} /&gt;
    &lt;/View&gt;
  );
}
</code></pre></div>



<h3 class="wp-block-heading">Ejercicio 4. <strong>Contador Simple</strong></h3>



<ul class="wp-block-list">
<li><strong>Objetivo:</strong> Estados dinámicos.</li>



<li><strong>Tarea:</strong> Dos botones <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2795.png" alt="➕" class="wp-smiley" style="height: 1em; max-height: 1em;" /> y <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2796.png" alt="➖" class="wp-smiley" style="height: 1em; max-height: 1em;" /> que actualicen un contador.</li>



<li><strong>Concepto:</strong> <code>useState</code>.</li>
</ul>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React, { useState } from &#39;react&#39;;
import { View, Text, Button } from &#39;react-native&#39;;

export default function App() {
  const [contador, setContador] = useState(0);

  return (
    &lt;View style={{ flex:1, justifyContent:&#39;center&#39;, alignItems:&#39;center&#39; }}&gt;
      &lt;Text style={{ fontSize:30 }}&gt;{contador}&lt;/Text&gt;
      &lt;Button title=&quot;&#x2795;&quot; onPress={() =&gt; setContador(contador+1)} /&gt;
      &lt;Button title=&quot;&#x2796;&quot; onPress={() =&gt; setContador(contador-1)} /&gt;
    &lt;/View&gt;
  );
}
</code></pre></div>



<h3 class="wp-block-heading">Ejercicio 5. <strong>Input de Texto (Saludo</strong>)</h3>



<ul class="wp-block-list">
<li><strong>Objetivo:</strong> Capturar texto.</li>



<li><strong>Tarea:</strong> Escribir el nombre en un <code>TextInput</code> y mostrar <em>Hola [nombre]</em>.</li>



<li><strong>Concepto:</strong> <code>TextInput</code>, binding.</li>
</ul>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React, { useState } from &#39;react&#39;;
import { View, Text, TextInput } from &#39;react-native&#39;;

export default function App() {
  const [nombre, setNombre] = useState(&quot;&quot;);

  return (
    &lt;View style={{ flex:1, justifyContent:&#39;center&#39;, alignItems:&#39;center&#39; }}&gt;
      &lt;TextInput 
        placeholder=&quot;Escribe tu nombre&quot; 
        style={{ borderWidth:1, padding:8, marginBottom:10, width:200 }}
        onChangeText={setNombre}
      /&gt;
      &lt;Text&gt;Hola {nombre}&lt;/Text&gt;
    &lt;/View&gt;
  );
}
</code></pre></div>



<h3 class="wp-block-heading">Ejercicio 6. <strong>Lista de Elementos</strong></h3>



<ul class="wp-block-list">
<li><strong>Objetivo:</strong> Renderizar arrays.</li>



<li><strong>Tarea:</strong> Mostrar frutas/tareas en una lista.</li>



<li><strong>Concepto:</strong> <code>FlatList</code>.</li>
</ul>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React from &#39;react&#39;;
import { View, Text, FlatList } from &#39;react-native&#39;;

export default function App() {
  const frutas = [&quot;Manzana&quot;, &quot;Plátano&quot;, &quot;Naranja&quot;, &quot;Uvas&quot;];

  return (
    &lt;View style={{ flex:1, padding:20 }}&gt;
      &lt;FlatList 
        data={frutas}
        keyExtractor={(item, index) =&gt; index.toString()}
        renderItem={({ item }) =&gt; &lt;Text style={{ fontSize:20, margin:5 }}&gt;{item}&lt;/Text&gt;}
      /&gt;
    &lt;/View&gt;
  );
}
</code></pre></div>



<h3 class="wp-block-heading">Ejercicio 7. <strong>Navegación</strong></h3>



<ul class="wp-block-list">
<li><strong>Objetivo:</strong> Moverse entre pantallas.</li>



<li><strong>Tarea:</strong> Pantallas: <em>Inicio</em> y <em>Perfil</em>.</li>



<li><strong>Concepto:</strong> <code>React Navigation</code>.</li>



<li><strong>Requiere</strong>: npm install @react-navigation/native @react-navigation/stack react-native-screens react-native-safe-area-context react-native-gesture-handler react-native-reanimated</li>
</ul>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import * as React from &#39;react&#39;;
import { Button, View, Text } from &#39;react-native&#39;;
import { NavigationContainer } from &#39;@react-navigation/native&#39;;
import { createStackNavigator } from &#39;@react-navigation/stack&#39;;

function HomeScreen({ navigation }) {
  return (
    &lt;View style={{ flex:1, justifyContent:&#39;center&#39;, alignItems:&#39;center&#39; }}&gt;
      &lt;Text&gt;Pantalla Inicio&lt;/Text&gt;
      &lt;Button title=&quot;Ir a Perfil&quot; onPress={() =&gt; navigation.navigate(&#39;Perfil&#39;)} /&gt;
    &lt;/View&gt;
  );
}

function PerfilScreen() {
  return (
    &lt;View style={{ flex:1, justifyContent:&#39;center&#39;, alignItems:&#39;center&#39; }}&gt;
      &lt;Text&gt;Pantalla Perfil&lt;/Text&gt;
    &lt;/View&gt;
  );
}

const Stack = createStackNavigator();

export default function App() {
  return (
    &lt;NavigationContainer&gt;
      &lt;Stack.Navigator&gt;
        &lt;Stack.Screen name=&quot;Inicio&quot; component={HomeScreen} /&gt;
        &lt;Stack.Screen name=&quot;Perfil&quot; component={PerfilScreen} /&gt;
      &lt;/Stack.Navigator&gt;
    &lt;/NavigationContainer&gt;
  );
}
</code></pre></div>



<h3 class="wp-block-heading">Ejercicio 8. <strong>Uso de Íconos</strong></h3>



<ul class="wp-block-list">
<li><strong>Objetivo:</strong> Mejorar UI.</li>



<li><strong>Tarea:</strong> Colocar íconos en botones o listas.</li>



<li><strong>Concepto:</strong> <code>@expo/vector-icons</code>.</li>
</ul>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React from &#39;react&#39;;
import { View, Text } from &#39;react-native&#39;;
import { Ionicons } from &#39;@expo/vector-icons&#39;;

export default function App() {
  return (
    &lt;View style={{ flex:1, justifyContent:&#39;center&#39;, alignItems:&#39;center&#39; }}&gt;
      &lt;Text&gt;Icono de React Native:&lt;/Text&gt;
      &lt;Ionicons name=&quot;logo-react&quot; size={64} color=&quot;blue&quot; /&gt;
    &lt;/View&gt;
  );
}
</code></pre></div>



<h3 class="wp-block-heading">Ejercicio 10. <strong>Consumir API</strong></h3>



<ul class="wp-block-list">
<li><strong>Objetivo:</strong> Traer datos externos.</li>



<li><strong>Tarea:</strong> Mostrar títulos desde <code>https://jsonplaceholder.typicode.com/posts</code>.</li>



<li><strong>Concepto:</strong> <code>useEffect</code>, <code>fetch</code>.</li>
</ul>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React, { useEffect, useState } from &#39;react&#39;;
import { View, Text, FlatList } from &#39;react-native&#39;;

export default function App() {
  const [posts, setPosts] = useState([]);

  useEffect(() =&gt; {
    fetch(&quot;https://jsonplaceholder.typicode.com/posts&quot;)
      .then(res =&gt; res.json())
      .then(data =&gt; setPosts(data.slice(0,10))); // solo 10
  }, []);

  return (
    &lt;View style={{ flex:1, padding:20 }}&gt;
      &lt;FlatList 
        data={posts}
        keyExtractor={item =&gt; item.id.toString()}
        renderItem={({ item }) =&gt; &lt;Text style={{ margin:5 }}&gt;{item.title}&lt;/Text&gt;}
      /&gt;
    &lt;/View&gt;
  );
}
</code></pre></div>



<h3 class="wp-block-heading">Ejercicio 11. <strong>Ejercicio Extra: Suma de Dos Números</strong></h3>



<ul class="wp-block-list">
<li><strong>Objetivo:</strong> Practicar inputs + lógica básica.</li>



<li><strong>Tarea:</strong> Dos <code>TextInput</code> donde se ingresen números y un botón que muestre la suma.</li>



<li><strong>Concepto:</strong> Manejo de <code>TextInput</code> con valores numéricos, conversión <code>parseInt</code>.</li>
</ul>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React, { useState } from &#39;react&#39;;
import { View, Text, TextInput, Button } from &#39;react-native&#39;;

export default function App() {
  const [num1, setNum1] = useState(&quot;&quot;);
  const [num2, setNum2] = useState(&quot;&quot;);
  const [resultado, setResultado] = useState(null);

  const sumar = () =&gt; {
    setResultado(parseInt(num1) + parseInt(num2));
  };

  return (
    &lt;View style={{ flex:1, justifyContent:&#39;center&#39;, alignItems:&#39;center&#39; }}&gt;
      &lt;TextInput placeholder=&quot;Número 1&quot; keyboardType=&quot;numeric&quot; style={{ borderWidth:1, padding:8, margin:5, width:200 }} onChangeText={setNum1}/&gt;
      &lt;TextInput placeholder=&quot;Número 2&quot; keyboardType=&quot;numeric&quot; style={{ borderWidth:1, padding:8, margin:5, width:200 }} onChangeText={setNum2}/&gt;
      &lt;Button title=&quot;Sumar&quot; onPress={sumar} /&gt;
      {resultado !== null && &lt;Text style={{ marginTop:10 }}&gt;Resultado: {resultado}&lt;/Text&gt;}
    &lt;/View&gt;
  );
}
</code></pre></div>



<h3 class="wp-block-heading"><strong>Ejercicio 12. Número Par o Impar</strong></h3>



<ul class="wp-block-list">
<li><strong>Objetivo:</strong> Uso de condicionales.</li>



<li><strong>Tarea:</strong> Ingresar un número en <code>TextInput</code> y mostrar si es par o impar.</li>



<li><strong>Concepto:</strong> Operador módulo <code>%</code>, condicionales.</li>
</ul>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React, { useState } from &#39;react&#39;;
import { View, Text, TextInput, Button } from &#39;react-native&#39;;

export default function App() {
  const [numero, setNumero] = useState(&quot;&quot;);
  const [resultado, setResultado] = useState(&quot;&quot;);

  const verificar = () =&gt; {
    const n = parseInt(numero);
    if (isNaN(n)) {
      setResultado(&quot;Ingresa un número válido&quot;);
    } else {
      setResultado(n % 2 === 0 ? &quot;Es par&quot; : &quot;Es impar&quot;);
    }
  };

  return (
    &lt;View style={{ flex:1, justifyContent:&#39;center&#39;, alignItems:&#39;center&#39; }}&gt;
      &lt;TextInput placeholder=&quot;Escribe un número&quot; keyboardType=&quot;numeric&quot; style={{ borderWidth:1, padding:8, margin:5, width:200 }} onChangeText={setNumero}/&gt;
      &lt;Button title=&quot;Verificar&quot; onPress={verificar} /&gt;
      &lt;Text style={{ marginTop:10 }}&gt;{resultado}&lt;/Text&gt;
    &lt;/View&gt;
  );
}
</code></pre></div>



<h3 class="wp-block-heading"><strong>Ejercicio 13. Calculadora Básica</strong></h3>



<ul class="wp-block-list">
<li><strong>Objetivo:</strong> Combinar inputs + operaciones.</li>



<li><strong>Tarea:</strong> Dos <code>TextInput</code> y botones para sumar, restar, multiplicar y dividir. Mostrar el resultado.</li>



<li><strong>Concepto:</strong> Manejo de múltiples eventos y estados.</li>
</ul>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>import React, { useState } from &#39;react&#39;;
import { View, Text, TextInput, Button } from &#39;react-native&#39;;

export default function App() {
  const [num1, setNum1] = useState(&quot;&quot;);
  const [num2, setNum2] = useState(&quot;&quot;);
  const [resultado, setResultado] = useState(null);

  const calcular = (op) =&gt; {
    const n1 = parseFloat(num1);
    const n2 = parseFloat(num2);
    if (isNaN(n1) || isNaN(n2)) {
      setResultado(&quot;Error: Ingresa números válidos&quot;);
      return;
    }
    if (op === &quot;sumar&quot;) setResultado(n1 + n2);
    if (op === &quot;restar&quot;) setResultado(n1 - n2);
    if (op === &quot;multiplicar&quot;) setResultado(n1 * n2);
    if (op === &quot;dividir&quot;) setResultado(n2 !== 0 ? n1 / n2 : &quot;No se puede dividir entre 0&quot;);
  };

  return (
    &lt;View style={{ flex:1, justifyContent:&#39;center&#39;, alignItems:&#39;center&#39; }}&gt;
      &lt;TextInput placeholder=&quot;Número 1&quot; keyboardType=&quot;numeric&quot; style={{ borderWidth:1, padding:8, margin:5, width:200 }} onChangeText={setNum1}/&gt;
      &lt;TextInput placeholder=&quot;Número 2&quot; keyboardType=&quot;numeric&quot; style={{ borderWidth:1, padding:8, margin:5, width:200 }} onChangeText={setNum2}/&gt;
      
      &lt;View style={{ flexDirection:&#39;row&#39;, marginTop:10 }}&gt;
        &lt;Button title=&quot;&#x2795;&quot; onPress={() =&gt; calcular(&quot;sumar&quot;)} /&gt;
        &lt;Button title=&quot;&#x2796;&quot; onPress={() =&gt; calcular(&quot;restar&quot;)} /&gt;
        &lt;Button title=&quot;&#x2716;&quot; onPress={() =&gt; calcular(&quot;multiplicar&quot;)} /&gt;
        &lt;Button title=&quot;&#x2797;&quot; onPress={() =&gt; calcular(&quot;dividir&quot;)} /&gt;
      &lt;/View&gt;

      {resultado !== null && &lt;Text style={{ marginTop:10 }}&gt;Resultado: {resultado}&lt;/Text&gt;}
    &lt;/View&gt;
  );
}
</code></pre></div>



<p></p>
<p>La entrada <a href="https://www.frexus.dev/post/ejercicios-basicos-react-native-expo/">Ejercicios básico con React Native &#8211; Expo</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.frexus.dev/post/ejercicios-basicos-react-native-expo/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4080</post-id>	</item>
		<item>
		<title>Componentes Multimedia en React Native</title>
		<link>https://www.frexus.dev/post/componentes-multimedia-en-react-native/</link>
					<comments>https://www.frexus.dev/post/componentes-multimedia-en-react-native/#respond</comments>
		
		<dc:creator><![CDATA[Alfredo de Jesús Gutiérrez]]></dc:creator>
		<pubDate>Thu, 31 Jul 2025 06:15:52 +0000</pubDate>
				<category><![CDATA[post]]></category>
		<category><![CDATA[audio en apps]]></category>
		<category><![CDATA[desarrollo móvil]]></category>
		<category><![CDATA[Expo]]></category>
		<category><![CDATA[imágenes en apps]]></category>
		<category><![CDATA[juegos móviles]]></category>
		<category><![CDATA[multimedia]]></category>
		<category><![CDATA[práctica guiada]]></category>
		<category><![CDATA[programación interactiva]]></category>
		<category><![CDATA[programación móvil 2]]></category>
		<category><![CDATA[react native]]></category>
		<guid isPermaLink="false">https://www.frexus.dev/?p=3971</guid>

					<description><![CDATA[<p>Integrar componentes multimedia en React Native eleva la experiencia del usuario en cualquier app. En esta guía práctica aprenderás a incluir imágenes personalizadas, sonidos envolventes y elementos visuales que le dan vida a un clásico juego de “Tres en Raya” (Gato / Tic-Tac-Toe). La práctica se centra en: Todo está diseñado para que lo sigas paso a paso, incluso si es tu primera vez trabajando con Expo o componentes multimedia. Lee el caso de estudio Accede al caso de estudio, después de leerlo responde las siguientes cuestiones: Escucha el podcast Accede al podcast haciendo clic aquí. Resuelve el reto que te indique. Realiza la práctica Accede a la práctica guiada aquí y comienza a desarrollar tu propio juego interactivo usando React Native y Expo. Te recomendamos tener conocimientos básicos de React Native, pero si estás comenzando, no te preocupes: incluimos explicaciones claras, imágenes y comentarios en el código. La diferencia entre una app funcional y una app inolvidable está en los detalles. Al dominar los componentes multimedia en React Native, no solo mejoras la experiencia del usuario, también llevas tu código a otro nivel. ¡Haz que tu app se vea, suene y se sienta increíble! Extras</p>
<p>La entrada <a href="https://www.frexus.dev/post/componentes-multimedia-en-react-native/">Componentes Multimedia en React Native</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" width="1024" height="1024" src="https://www.frexus.dev/wp-content/uploads/2025/07/image.png" alt="Componentes Multimedia en React Native" class="wp-image-3972" style="width:432px;height:auto" srcset="https://www.frexus.dev/wp-content/uploads/2025/07/image.png 1024w, https://www.frexus.dev/wp-content/uploads/2025/07/image-300x300.png 300w, https://www.frexus.dev/wp-content/uploads/2025/07/image-150x150.png 150w, https://www.frexus.dev/wp-content/uploads/2025/07/image-768x768.png 768w, https://www.frexus.dev/wp-content/uploads/2025/07/image-75x75.png 75w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>Integrar <strong>componentes multimedia en React Native</strong> eleva la experiencia del usuario en cualquier app. En esta guía práctica aprenderás a incluir imágenes personalizadas, sonidos envolventes y elementos visuales que le dan vida a un clásico juego de “Tres en Raya” (Gato / Tic-Tac-Toe).</p>



<p>La práctica se centra en:</p>



<ul class="wp-block-list">
<li><strong>Imágenes personalizadas</strong> para representar a los jugadores (como una simpática carita de gato).</li>



<li><strong>Efectos de sonido</strong> al tocar una casilla.</li>



<li><strong>Animaciones suaves</strong> y una interfaz amigable.</li>
</ul>



<p>Todo está diseñado para que lo sigas paso a paso, incluso si es tu primera vez trabajando con Expo o componentes multimedia.</p>



<h3 class="wp-block-heading">Lee el caso de estudio</h3>



<p><a href="https://steemit.com/-multimedia/@frexus/cuando-la-imagen-cobro-vida-multimedia-e-integracion-grafica-con-moviles" target="_blank" rel="noreferrer noopener">Accede al caso de estudio</a>, después de leerlo responde las siguientes cuestiones:</p>



<ul class="wp-block-list">
<li>¿Por qué la integración multimedia mejora la experiencia del usuario en aplicaciones móviles?</li>



<li>¿Qué elementos visuales o sonoros pueden contribuir más a la accesibilidad de una app?</li>



<li>¿Cómo puede un desarrollador equilibrar el rendimiento con la calidad gráfica?</li>



<li>¿Qué papel juega la empatía en el diseño de interfaces interactivas?</li>



<li>¿De qué manera la multimedia puede ayudar a la educación o inclusión digital?</li>



<li>¿Qué herramientas o librerías actuales facilitan la integración multimedia en móviles?</li>
</ul>



<h3 class="wp-block-heading">Escucha el podcast</h3>



<p><a href="https://audius.co/frexus/el-lenguaje-invisible-de-las-apps" target="_blank" rel="noreferrer noopener">Accede al podcast haciendo clic aquí</a>. Resuelve el reto que te indique.</p>



<h3 class="wp-block-heading"><strong>Realiza la práctica</strong></h3>



<p><a href="https://mirror.xyz/0xC0aA599b2bC4f72854E056b6E9A809764371ff3a/hRDLRurQbQNkwupKElaasP0zWa3NVp-uz1kiEbByMcE?referrerAddress=0xC0aA599b2bC4f72854E056b6E9A809764371ff3a" target="_blank" rel="noreferrer noopener">Accede a la práctica guiada aquí</a> y comienza a desarrollar tu propio juego interactivo usando React Native y Expo.</p>



<p>Te recomendamos tener conocimientos básicos de React Native, pero si estás comenzando, no te preocupes: incluimos explicaciones claras, imágenes y comentarios en el código.</p>



<p>La diferencia entre una app funcional y una app inolvidable está en los detalles. Al dominar los <strong>componentes multimedia en React Native</strong>, no solo mejoras la experiencia del usuario, también llevas tu código a otro nivel.</p>



<p>¡Haz que tu app se vea, suene y se sienta increíble!</p>



<h3 class="wp-block-heading">Extras</h3>



<ul class="wp-block-list">
<li><a href="https://github.com/ajgutierr3z/ProgramacionMovil/tree/main/gato" target="_blank" rel="noreferrer noopener">Pulsa aquí para acceder al código fuente base</a></li>
</ul>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Recreación del tres en raya, gato o tic-tac-toe. Escrito en React Native #ProgramacionMovil" width="563" height="1000" src="https://www.youtube.com/embed/0umlBW45Rz8?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div><figcaption class="wp-element-caption">Vídeo 1. Juego del Gato / tres en raya / tic-tac-toe, escrito en React Native y expo. Fuente: Tomado de youtube.com</figcaption></figure>
<p>La entrada <a href="https://www.frexus.dev/post/componentes-multimedia-en-react-native/">Componentes Multimedia en React Native</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.frexus.dev/post/componentes-multimedia-en-react-native/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3971</post-id>	</item>
	</channel>
</rss>
