<?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>Programación Móvil archivos - Frexus</title>
	<atom:link href="https://www.frexus.dev/tag/programacion-movil/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.frexus.dev/tag/programacion-movil/</link>
	<description>Generando Valor Agreado</description>
	<lastBuildDate>Wed, 12 Nov 2025 19:56:51 +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>Programación Móvil archivos - Frexus</title>
	<link>https://www.frexus.dev/tag/programacion-movil/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">215529362</site>	<item>
		<title>Pantallas Inteligentes: la nueva era de la interacción visual y táctil</title>
		<link>https://www.frexus.dev/post/aplicaciones-para-pantallas-inteligentes/</link>
					<comments>https://www.frexus.dev/post/aplicaciones-para-pantallas-inteligentes/#respond</comments>
		
		<dc:creator><![CDATA[Alfredo de Jesús Gutiérrez]]></dc:creator>
		<pubDate>Wed, 12 Nov 2025 19:34:11 +0000</pubDate>
				<category><![CDATA[post]]></category>
		<category><![CDATA[aplicaciones smart display]]></category>
		<category><![CDATA[desarrollo IoT]]></category>
		<category><![CDATA[domótica]]></category>
		<category><![CDATA[Flutter]]></category>
		<category><![CDATA[frameworks multiplataforma]]></category>
		<category><![CDATA[Inteligencia Artificial]]></category>
		<category><![CDATA[interfaces táctiles]]></category>
		<category><![CDATA[pantallas inteligentes]]></category>
		<category><![CDATA[Programación Móvil]]></category>
		<category><![CDATA[react native]]></category>
		<guid isPermaLink="false">https://www.frexus.dev/?p=4216</guid>

					<description><![CDATA[<p>Las pantallas inteligentes están cambiando la manera en que interactuamos con el mundo digital. Desde los asistentes con pantalla como el Google Nest Hub o el Echo Show hasta paneles industriales o educativos, estos dispositivos integran voz, tacto y visualización en tiempo real para ofrecer experiencias más humanas, intuitivas y conectadas. Hoy, aprender sobre aplicaciones para pantallas inteligentes es fundamental para comprender cómo convergen el Internet de las cosas (IoT), la inteligencia artificial y el diseño de interfaces. “Cada pantalla inteligente no solo muestra información… también nos escucha y nos entiende.” Objetivo de aprendizaje Al finalizar la lectura y las actividades, el lector será capaz de identificar qué son las pantallas inteligentes, comprender los lenguajes y frameworks utilizados para su desarrollo, y reconocer sus principales ecosistemas y diferencias técnicas. ¿Qué son las aplicaciones para pantallas inteligentes? Las aplicaciones para pantallas inteligentes son programas diseñados para funcionar en dispositivos que combinan pantalla táctil, micrófono y conexión a internet. Permiten controlar sistemas del hogar, mostrar información contextual o facilitar interacciones por voz. Ejemplos populares incluyen: Estas apps son el centro del ecosistema inteligente, integrando IA, UX y conectividad en un solo punto de interacción. Lenguajes de programación más utilizados El desarrollo de apps para pantallas inteligentes se apoya en una variedad de lenguajes, dependiendo del ecosistema: Plataforma Lenguajes principales Uso Android Things / Fuchsia Java, Kotlin Apps nativas con interfaz táctil y control por voz. Alexa Show JavaScript, JSON Creación de skills con interfaz visual APL. IoT (Raspberry Pi / Linux) Python, C++, Node.js Paneles de control y automatización conectada. Multiplataforma Flutter (Dart), React Native Desarrollo adaptable a distintas pantallas y tamaños. Consejo: Si buscas compatibilidad con distintos dispositivos, Flutter o React Native son los frameworks más versátiles. Frameworks de trabajo más comunes Framework Enfoque Ventaja principal Flutter Multiplataforma Interfaces dinámicas y modernas. React Native Móvil e IoT Reutiliza código y conecta hardware fácilmente. Node-RED IoT visual Permite conectar sensores y pantallas con flujos gráficos. Electron Escritorio / kioskos Ideal para paneles interactivos locales. Alexa Presentation Language (APL) Dispositivos Echo Show Interfaz por voz + visual. Hacia un diseño más humano El verdadero reto está en crear experiencias que integren voz, vista y tacto de forma natural.Las interfaces deben ser claras, accesibles y adaptativas, priorizando el bienestar del usuario sobre la automatización excesiva. “Las pantallas inteligentes no son el futuro… son el espejo del presente conectado.” Actividades de aprendizaje Para reforzar tu comprensión y conectar teoría con práctica, te invitamos a realizar las siguientes actividades:</p>
<p>La entrada <a href="https://www.frexus.dev/post/aplicaciones-para-pantallas-inteligentes/">Pantallas Inteligentes: la nueva era de la interacción visual y táctil</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/11/dos-1-1024x683.png" alt="Pantallas inteligentes: la nueva era de la interacción visual y táctil" class="wp-image-4217" style="width:474px;height:auto" srcset="https://www.frexus.dev/wp-content/uploads/2025/11/dos-1-1024x683.png 1024w, https://www.frexus.dev/wp-content/uploads/2025/11/dos-1-300x200.png 300w, https://www.frexus.dev/wp-content/uploads/2025/11/dos-1-768x512.png 768w, https://www.frexus.dev/wp-content/uploads/2025/11/dos-1-1140x760.png 1140w, https://www.frexus.dev/wp-content/uploads/2025/11/dos-1.png 1536w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>Las <strong>pantallas inteligentes</strong> están cambiando la manera en que interactuamos con el mundo digital. Desde los <strong>asistentes con pantalla</strong> como el <em>Google Nest Hub</em> o el <em>Echo Show</em> hasta paneles industriales o educativos, estos dispositivos integran <strong>voz, tacto y visualización en tiempo real</strong> para ofrecer experiencias más humanas, intuitivas y conectadas.</p>



<p>Hoy, aprender sobre <strong>aplicaciones para pantallas inteligentes</strong> es fundamental para comprender cómo convergen el <em>Internet de las cosas (IoT)</em>, la inteligencia artificial y el diseño de interfaces.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>“Cada pantalla inteligente no solo muestra información… también nos escucha y nos entiende.”</p>
</blockquote>



<p></p>



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



<p>Al finalizar la lectura y las actividades, el lector será capaz de <strong>identificar qué son las pantallas inteligentes, comprender los lenguajes y frameworks utilizados para su desarrollo, y reconocer sus principales ecosistemas y diferencias técnicas</strong>.</p>



<h3 class="wp-block-heading"><strong>¿Qué son las aplicaciones para pantallas inteligentes?</strong></h3>



<p>Las <strong>aplicaciones para pantallas inteligentes</strong> son programas diseñados para funcionar en dispositivos que combinan pantalla táctil, micrófono y conexión a internet. Permiten controlar sistemas del hogar, mostrar información contextual o facilitar interacciones por voz.</p>



<p>Ejemplos populares incluyen:</p>



<ul class="wp-block-list">
<li><strong>Google Nest Hub</strong> (Android Things / Fuchsia)</li>



<li><strong>Amazon Echo Show</strong> (Fire OS con Alexa Skills Kit)</li>



<li><strong>Pantallas IoT industriales</strong> basadas en Raspberry Pi o Linux embebido</li>
</ul>



<p>Estas apps son el <strong>centro del ecosistema inteligente</strong>, integrando <strong>IA, UX y conectividad</strong> en un solo punto de interacción.</p>



<h3 class="wp-block-heading"><strong>Lenguajes de programación más utilizados</strong></h3>



<p>El desarrollo de apps para pantallas inteligentes se apoya en una variedad de lenguajes, dependiendo del ecosistema:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Plataforma</th><th>Lenguajes principales</th><th>Uso</th></tr></thead><tbody><tr><td>Android Things / Fuchsia</td><td>Java, Kotlin</td><td>Apps nativas con interfaz táctil y control por voz.</td></tr><tr><td>Alexa Show</td><td>JavaScript, JSON</td><td>Creación de <em>skills</em> con interfaz visual APL.</td></tr><tr><td>IoT (Raspberry Pi / Linux)</td><td>Python, C++, Node.js</td><td>Paneles de control y automatización conectada.</td></tr><tr><td>Multiplataforma</td><td>Flutter (Dart), React Native</td><td>Desarrollo adaptable a distintas pantallas y tamaños.</td></tr></tbody></table></figure>



<p><em>Consejo:</em> Si buscas compatibilidad con distintos dispositivos, <strong>Flutter</strong> o <strong>React Native</strong> son los frameworks más versátiles.</p>



<h3 class="wp-block-heading"><strong>Frameworks de trabajo más comunes</strong></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Framework</th><th>Enfoque</th><th>Ventaja principal</th></tr></thead><tbody><tr><td><strong>Flutter</strong></td><td>Multiplataforma</td><td>Interfaces dinámicas y modernas.</td></tr><tr><td><strong>React Native</strong></td><td>Móvil e IoT</td><td>Reutiliza código y conecta hardware fácilmente.</td></tr><tr><td><strong>Node-RED</strong></td><td>IoT visual</td><td>Permite conectar sensores y pantallas con flujos gráficos.</td></tr><tr><td><strong>Electron</strong></td><td>Escritorio / kioskos</td><td>Ideal para paneles interactivos locales.</td></tr><tr><td><strong>Alexa Presentation Language (APL)</strong></td><td>Dispositivos Echo Show</td><td>Interfaz por voz + visual.</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><strong>Hacia un diseño más humano</strong></h3>



<p>El verdadero reto está en crear <strong>experiencias que integren voz, vista y tacto</strong> de forma natural.<br>Las interfaces deben ser <strong>claras, accesibles y adaptativas</strong>, priorizando el bienestar del usuario sobre la automatización excesiva.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>“Las pantallas inteligentes no son el futuro… son el espejo del presente conectado.”</p>
</blockquote>



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



<p>Para reforzar tu comprensión y conectar teoría con práctica, te invitamos a realizar las siguientes actividades:</p>



<ol class="wp-block-list">
<li><strong><a href="https://steemit.com/dispositivosinteligentes/@frexus/entre-pantallas-y-voces" target="_blank" rel="noreferrer noopener">Lectura del caso de estudio</a>:</strong><br><em>Entre pantallas y voces: el despertar de una casa inteligente</em><br>Descubre cómo la tecnología transformó la vida de Lucía y reflexiona sobre el equilibrio entre automatización y humanidad. Después de leer el caso de estudio responde las siguientes preguntas:
<ul class="wp-block-list">
<li>¿En qué momento una pantalla inteligente deja de ser una herramienta y se convierte en una extensión de nosotros mismos?</li>



<li>¿Podemos diseñar tecnología que promueva el bienestar emocional, no solo la eficiencia?</li>



<li>¿Qué papel juega la personalización en la experiencia con pantallas inteligentes?</li>



<li>¿Hasta qué punto la automatización puede reemplazar la toma de decisiones humanas?</li>



<li>¿Cómo equilibrar el uso de la voz, el tacto y la vista en una interfaz verdaderamente intuitiva?</li>



<li>¿Qué aprendemos sobre nosotros mismos al programar el entorno que habitamos?</li>
</ul>
</li>



<li><strong><a href="https://audius.co/frexus/maneras-para-programar-una-pantalla-inteligentes" target="_blank" rel="noreferrer noopener">Escucha el pódcast</a>:</strong><br><strong>Historias que te retan</strong><br>Un episodio narrado con experiencias reales sobre cómo usamos la inteligencia en nuestros espacios cotidianos.</li>



<li><strong>Actividad práctica:</strong><br>Diseña una mini app con <strong>Flutter</strong> o <strong>Node-RED</strong> que muestre información útil en una pantalla (clima, calendario o tareas).</li>



<li><strong>Actividades de reforzamiento:</strong>
<ul class="wp-block-list">
<li><strong><a href="https://www.frexus.dev/sopa_letra/solver.html?gridSize=20&amp;words=PANTALLA%2CINTELIGENTE%2CIOT%2CFLUTTER%2CREACTNATIVE%2CNODERED%2CALEXA%2CKOTLIN%2CASISTENTE&amp;directions=horizontal&amp;title=Desarrollo+para+Dispositivo+Inteligentes&amp;subtitle=Pantallas+inteligentes" target="_blank" rel="noreferrer noopener">Sopa de letras</a>:</strong> encuentra los conceptos clave del tema.</li>



<li><strong><a href="https://www.frexus.dev/crucigrama/crucigrama.html?data=%7B%22id%22%3A%22cw-dpo8a3dol%22%2C%22title%22%3A%22Desarrollo%20para%20Dispositivo%20Inteligentes%22%2C%22subtitle%22%3A%22Pantallas%20Inteligentes%22%2C%22words%22%3A%5B%7B%22word%22%3A%22ANDROIDTHINGS%22%2C%22clue%22%3A%22Plataforma%20de%20Google%20para%20dispositivos%20IoT%20con%20pantallas.%22%7D%2C%7B%22word%22%3A%22APL%22%2C%22clue%22%3A%22Lenguaje%20visual%20usado%20en%20pantallas%20de%20Alexa.%22%7D%2C%7B%22word%22%3A%22FRAMEWORK%22%2C%22clue%22%3A%22Entorno%20de%20desarrollo%20con%20herramientas%20para%20crear%20apps.%22%7D%2C%7B%22word%22%3A%22SMARTDISPLAY%22%2C%22clue%22%3A%22Dispositivo%20con%20pantalla%20t%C3%A1ctil%20y%20asistente%20de%20voz.%22%7D%2C%7B%22word%22%3A%22FUCHSIA%22%2C%22clue%22%3A%22Sistema%20operativo%20experimental%20de%20Google.%22%7D%2C%7B%22word%22%3A%22FLUTTER%22%2C%22clue%22%3A%22Framework%20multiplataforma%20de%20Google%20para%20interfaces%20gr%C3%A1ficas.%22%7D%2C%7B%22word%22%3A%22NODERED%22%2C%22clue%22%3A%22Entorno%20visual%20para%20automatizaci%C3%B3n%20IoT.%22%7D%2C%7B%22word%22%3A%22UX%22%2C%22clue%22%3A%22Experiencia%20de%20usuario%2C%20clave%20en%20dise%C3%B1o%20de%20interfaces%22%7D%2C%7B%22word%22%3A%22KOTLIN%22%2C%22clue%22%3A%22Lenguaje%20moderno%20para%20desarrollo%20Android.%22%7D%5D%2C%22createdAt%22%3A%222025-11-12T19%3A27%3A24.207Z%22%7D" target="_blank" rel="noreferrer noopener">Crucigrama</a>:</strong> completa los términos técnicos según las pistas.</li>
</ul>
</li>
</ol>



<p></p>



<p></p>
<p>La entrada <a href="https://www.frexus.dev/post/aplicaciones-para-pantallas-inteligentes/">Pantallas Inteligentes: la nueva era de la interacción visual y táctil</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.frexus.dev/post/aplicaciones-para-pantallas-inteligentes/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4216</post-id>	</item>
		<item>
		<title>Ciclos, con bloques para android</title>
		<link>https://www.frexus.dev/articulo/ciclos-con-bloques-para-android/</link>
					<comments>https://www.frexus.dev/articulo/ciclos-con-bloques-para-android/#respond</comments>
		
		<dc:creator><![CDATA[Alfredo de Jesús Gutiérrez]]></dc:creator>
		<pubDate>Fri, 29 Oct 2021 19:52:11 +0000</pubDate>
				<category><![CDATA[articulo]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[AppInventor]]></category>
		<category><![CDATA[Ciclos]]></category>
		<category><![CDATA[Programación Móvil]]></category>
		<guid isPermaLink="false">https://www.ajgutierrez.me/?p=446</guid>

					<description><![CDATA[<p>En esta entrada se aborda el tema de los ciclos / bucles / secuencias iterativas, o como se guste llamar. Si quedan dudas sobre lo que se tratara, visita el siguiente enlace donde se describe el concepto de ciclos. En esta ocasión el ejercicio que se realizará será en el que de un número dado (5, 10, 100) por el usuario, se clasificará cuales son pares y cuales son impares. es decir si el usuario introduce un 10 el programa debe de mostrar cuales son pares y lo impares partiendo del rango 1-10, siendo el diez el limite y posteriormente leer cada grupo. Para ello se va a requerir de lo siguiente: Requisitos Conocimiento de: Componentes: Partiendo de que ya se tiene creado un proyecto nuevo y que se tiene un lienzo en blanco, se debe de tener una interfaz de usuario similar a la que se muestra en la imagen 1. Para esta actividad, se va a requerir de tres variables, una es la que va a tener el valor numérico que escribe el usuario, llevará el nombre de num, otra es la que tendrá el resultado de la operación, se llamará rpi (resultado par e impar), la que contendrá los números pares e impares, par e ipar respectivamente. No se olvide que deben de ser iniciadas en cero o en vacío, según convenga. Se debe de tener algo similar a lo que se muestra en la imagen 2. Ahora viene el momento de tomar el valor que envía el usuario, mediante un ciclo for hacer las iteraciones desde 1 hasta el número que se escribió en el cuadro de texto, posteriormente dentro del ciclo hay que hacer la operación para determinar si un número es par o impar, se debe de recordar que esto se realiza con el calculo del residuo y se debe de dividir entre dos, el resultado de ello se debe de guardar en el variable rpi. Se debería de poder tener algo similar a lo que se muestra en la imagen 3. Ahora hay que hacer uso del bloque del ciclo for (desde / para) paa ello se hará clic sobre los integrados en su categoría &#8220;control&#8221;, se tomará el bloque que tiene los textos: &#8220;por cada número desde &#8230; hasta &#8230; se incrementa en ejecutar &#8230;&#8220;. los caracteres marcados con negritas corresponde a lo siguiente: Es momento de que se coloquen las instrucciones (bloques) que permitirá darle &#8220;vida&#8221; a la aplicación. para ello se hará uso del bloque if-else donde la condición a evaluar es el resultado del residuo, después de ello hay que unir (concatenar) los valores que la variable i adquiere, que es la que de los valores existente entre 1 y el número que introdujo el usuario. Se debería de tener algo similar a lo que se muestra en la imagen 5. Es importante notar que hasta este punto se tiene todas las variables iniciadas en cero, es decir, en un valor entero. Pero las variables par e ipar son las que van a contener todos los pares y debe de unirse con el texto &#8220;los pares son:&#8221; y se debe de cambiar el valor de iniciado en cero por un en texto vacío. Se debe de hacer un proceso similar a como se muestra en la imagen 6. En la imagen 7 se puede observar los bloques que permiten, concatenar los números pares e impares, para ello se hizo uso de los bloques de unión (concatenación), de los integrados de texto, posteriormente se utiliza los bloques de tomar, que se encuentra en la categorías de las variables. El proceso se debe de repetir dos veces uno para los pares y los impares, la diferencia va hacer el uso de las variables, recordad que ipar es para los impares y par para los números pares. Ahora es momento de enviar los valores a las etiquetas, no olvidar que en la etiqueta uno se colocaran los números pares y en la etiqueta dos los impares, para hacer esto hay que ir al componente etiqueta1 y buscar el bloque que inicia con el texto &#8220;poner..&#8221;, después hay que usar el bloque unión para concatenar el texto &#8220;los pares son: &#8221; con el valor de la variable par. Luego hay que realizar el mismo proceso con la etiqueta2. Vea la imagen 8, debe de hacerse un proceso similar. Es momento de asignarle los bloques al texto a voz, para que lee los resultados, hay que aclarar que no es necesario crear dos texto a voz sino con uno y se concatena las dos etiquetas para que las lea una después de terminar la otra. Se recomienda seguir un procedimiento como el que se muestra en la imagen 9. Por último, es momento de agrupar todos los bloques o al menos los que competan dentro del bloque de ejecutar del objeto botón cuando se haga clic se ejecute cada uno de los mismo, para ello hay que ir al componente &#8220;botón&#8221; y elegir el bloque que tiene el texto &#8220;clic&#8221;. Se debe de hacer un proceso similar al que se puede visualizar en la imagen 10. Al leer los bloques de código se puede observar que es un 99 % probable que exista un pequeño error, el cual consiste en que no se ha limpiado las variables que guardan los números pares (par) y los impares (ipar). Esto se notará cuando se ejecutar el programa por primera vez todo saldra bien. Pero sino cierras la aplicación y le das oro número para que calcule cuales son los pares e impares se mostrara, los nuevos números junto con los anteriores. Para solventar ese detalle solo hay que iniciar en vacío las variables ipar y par, eso se realiza con bloque de texto en vacío. Y después hay que colocar esos bloques dentro del botón. Es algo similar a lo que se muestra en la imagen 11. En el vídeo 1 se muestra la integración de todos los bloques que se mostraron anteriormente. El vídeo 2, muestra la ejecución de los bloques . Se espera que la reproducción de esta actividad sea más placentera y de fácil aprendizaje para sus futuros proyectos. Espero sus comentarios.</p>
<p>La entrada <a href="https://www.frexus.dev/articulo/ciclos-con-bloques-para-android/">Ciclos, con bloques para android</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>En esta entrada se aborda el tema de los ciclos / bucles / secuencias iterativas, o como se guste llamar. Si quedan dudas sobre lo que se tratara, visita el siguiente <a href="https://www.frexus.dev/articulo/estructuras-ciclicas/">enlace</a> donde se describe el concepto de ciclos. En esta ocasión el ejercicio que se realizará será en el que de un número dado (5, 10, 100) por el usuario, se clasificará cuales son pares y cuales son impares. es decir si el usuario introduce un 10 el programa debe de mostrar cuales son pares y lo impares partiendo del rango 1-10, siendo el diez el limite y posteriormente leer cada grupo. Para ello se va a requerir de lo siguiente:</p>



<h5 class="wp-block-heading">Requisitos</h5>



<p>Conocimiento de:</p>



<ul class="wp-block-list">
<li>Estructura de control,  leer el ejercicio creado <a href="https://www.frexus.dev/articulo/estructuras-de-control-if-else-en-appinventor/">aquí</a>.</li>



<li>Creación de un proyecto en appinventor, visita la práctica por <a href="https://www.frexus.dev/articulo/solicitando-datos-al-usuario-con-appinventor/">acá</a>.</li>
</ul>



<p>Componentes:</p>



<ul class="wp-block-list">
<li>Cuadro de texto.</li>



<li>Botón.</li>



<li>Un par de etiquetas.</li>



<li>Texto a voz.</li>
</ul>



<p>Partiendo de que ya se tiene creado un proyecto nuevo y que se tiene un lienzo en blanco, se debe de tener una interfaz de usuario similar a la que se muestra en la imagen 1. </p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/666362621557129216/v2" data-did="d4664b3f55d18c26ed1b6eb824335fa4582397dc"  ><a href="https://www.tumblr.com/ajgutierr3z/666362621557129216/appinventor-ciclos-ui">https://www.tumblr.com/ajgutierr3z/666362621557129216/appinventor-ciclos-ui</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption class="wp-element-caption">Imagen 1. Interfaz de Usuario en AppInvnetor. Fuente: tumblr.com</figcaption></figure>



<p>Para esta actividad, se va a requerir de tres variables, una es la que va a tener el valor numérico que escribe el usuario, llevará el nombre de <em>num</em>, otra es la que tendrá el resultado de la operación, se llamará <em>rpi</em> (resultado par e impar), la que contendrá los números pares e impares, <em>pa</em>r e <em>ipa</em>r respectivamente. No se olvide que deben de ser iniciadas en cero o en vacío, según convenga. Se debe de tener algo similar a lo que se muestra en la imagen 2. </p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/666364204464357376/v2" data-did="be2bbe1f83221be907485e4a46e45c7a92065865"  ><a href="https://www.tumblr.com/ajgutierr3z/666364204464357376/appinventor-ciclos-variables">https://www.tumblr.com/ajgutierr3z/666364204464357376/appinventor-ciclos-variables</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption class="wp-element-caption">Imagen 2. Variables utilizadas e iniciadas. Fuente: tumblr.com. </figcaption></figure>



<p>Ahora viene el momento de tomar el valor que envía el usuario, mediante un ciclo for hacer las iteraciones desde 1 hasta el número que se escribió en el cuadro de texto, posteriormente dentro del ciclo hay que hacer la operación para determinar si un número es par o impar, se debe de recordar que esto se realiza con el calculo del residuo y se debe de dividir entre dos, el resultado de ello se debe de guardar en el variable rpi. Se debería de poder tener algo similar a lo que se muestra en la imagen 3.</p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/666365375484657664/v2" data-did="4f795dae398a5d62204e93de055667a52cfa5fbe"  ><a href="https://www.tumblr.com/ajgutierr3z/666365375484657664/appinventor-ciclos-valores-variables">https://www.tumblr.com/ajgutierr3z/666365375484657664/appinventor-ciclos-valores-variables</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption class="wp-element-caption">Imagen 3. Dando valores a las variables. Fuente: tumblr.com</figcaption></figure>



<p>Ahora hay que hacer uso del bloque del ciclo for (desde / para) paa ello se hará clic sobre los integrados en su categoría &#8220;control&#8221;, se tomará el bloque que tiene los textos: &#8220;<em>por cada <strong>número</strong> desde <strong>&#8230;</strong> hasta <strong>&#8230;</strong> se incrementa en ejecutar</em> <strong>&#8230;</strong>&#8220;. los caracteres marcados con negritas corresponde a lo siguiente: </p>



<ul class="wp-block-list">
<li>la palabra &#8220;<strong><em>número</em></strong>&#8221; corresponde al nombre de la variable que irá llevando el conteo de cuantas veces se va ejecutando, es decir equivale a lo que sería el contador o la variable i que regularmente se utiliza en la sintaxis del ciclo for (<a href="https://www.frexus.dev/articulo/estructuras-ciclicas/">leer</a> para recordar estructura del ciclo <a href="https://www.frexus.dev/articulo/estructura-for-en-java/">acá</a> para ver un ejemplo del ciclo en java). </li>



<li>Los puntos (<strong>&#8230;</strong>), son las variables que hay que introducirle, el primero indica desde donde va a iniciar, es decir, su limite inferior (regularmente es cero o uno). El segundo, señala hasta donde se va a incrementar, en otras palabras, es su limite superior. El tercero, marca cuanto es el incremento que se estará utilizando en el ciclo (peculiarmente su incremento es en uno o dos, de acuerdo a lo que se requiera). (vea imagen 4)</li>
</ul>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/666371748201119744/v2" data-did="13abd9089ac3870ab844cf4ce8b315def338859f"  ><a href="https://www.tumblr.com/ajgutierr3z/666371748201119744/appinventar-ciclos-for-iniciar">https://www.tumblr.com/ajgutierr3z/666371748201119744/appinventar-ciclos-for-iniciar</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption class="wp-element-caption">Imagen 4. Bloque ciclo For (Desde / Para). Fuente: tumblr.com</figcaption></figure>



<p>Es momento de que se coloquen las instrucciones (bloques) que permitirá darle &#8220;vida&#8221; a la aplicación. para ello se hará uso del bloque if-else donde la condición a evaluar es el resultado del residuo, después de ello hay que unir (concatenar) los valores que la variable <em>i</em> adquiere, que es la que de los valores existente entre 1 y el número que introdujo el usuario. Se debería de tener algo similar a lo que se muestra en la imagen 5.</p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/666374106356334592/v2" data-did="c792f3a7bbfe08f35268f6467377a8e1a04466f7"  ><a href="https://www.tumblr.com/ajgutierr3z/666374106356334592/appinventor-ciclo-for-evaluando">https://www.tumblr.com/ajgutierr3z/666374106356334592/appinventor-ciclo-for-evaluando</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption class="wp-element-caption">Imagen 5. Evaluando las condiciones dentro del ciclo. Fuente: tumblr.com</figcaption></figure>



<p>Es importante notar que hasta este punto se tiene todas las variables iniciadas en cero, es decir, en un valor entero. Pero las variables <strong>par</strong> e <strong>ipar</strong> son las que van a contener todos los pares y debe de unirse con el texto &#8220;<em>los pares son</em>:&#8221; y se debe de cambiar el valor de iniciado en cero por un en texto vacío. Se debe de hacer un proceso similar a como se muestra en la imagen 6.</p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/666374866562351104/v2" data-did="16e638eede7126e4a3ee23de6cd0ad7403436621"  ><a href="https://www.tumblr.com/ajgutierr3z/666374866562351104/appinventor-ciclos-for-correcci%C3%B3n-inciovalorvariabl">https://www.tumblr.com/ajgutierr3z/666374866562351104/appinventor-ciclos-for-correcci%C3%B3n-inciovalorvariabl</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption class="wp-element-caption">Imagen 6. Corrigiendo carga de inicio de variable. Fuente: tumblr.com</figcaption></figure>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/666376278941794304/v2" data-did="83f579aa9917551b763a3bb0f5f46a5b41d9968c"  ><a href="https://www.tumblr.com/ajgutierr3z/666376278941794304/appinventor-ciclos-for-resultado-evaluacion">https://www.tumblr.com/ajgutierr3z/666376278941794304/appinventor-ciclos-for-resultado-evaluacion</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption class="wp-element-caption">Imagen 7. Bloques que ayudan a determinar el resultado de la evaluación del if-else. Fuente: tumblr.com</figcaption></figure>



<p>En la imagen 7 se puede observar los bloques que permiten, concatenar los números pares e impares, para ello se hizo uso de los bloques de unión (concatenación), de los integrados de texto, posteriormente se utiliza los bloques de tomar, que se encuentra en la categorías de las variables. El proceso se debe de repetir dos veces uno para los pares  y los impares, la diferencia va hacer el uso de las variables, recordad que ipar es para los impares y par para los números pares.</p>



<p>Ahora es momento de enviar los valores a las etiquetas, no olvidar que en la etiqueta uno se colocaran los números pares y en la etiqueta dos los impares, para hacer esto hay que ir al componente etiqueta1 y buscar el bloque que inicia con el texto &#8220;poner..&#8221;, después hay que usar el bloque unión para concatenar el texto &#8220;los pares son: &#8221; con el valor de la variable par. Luego hay que realizar el mismo proceso con la etiqueta2. Vea la imagen 8, debe de hacerse un proceso similar. </p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/666378297840664576/v2" data-did="15053d078b8a20b7621b55c17594fecf2352887f"  ><a href="https://www.tumblr.com/ajgutierr3z/666378297840664576/appinventor-ciclos-etiquetas">https://www.tumblr.com/ajgutierr3z/666378297840664576/appinventor-ciclos-etiquetas</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption class="wp-element-caption">Imagen 8. Bloque de Etiquetas y valores. Fuente: tumblr.com</figcaption></figure>



<p>Es momento de asignarle los bloques al texto a voz, para que lee los resultados, hay que aclarar que no es necesario crear dos texto a voz sino con uno y se concatena las dos etiquetas para que las lea una después de terminar la otra. Se recomienda seguir un procedimiento como el que se muestra en la imagen 9.</p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/666378999347429376/v2" data-did="026d2805bb56a00c3d3eff04d0d2322789a73513"  ><a href="https://www.tumblr.com/ajgutierr3z/666378999347429376/appinventor-ciclo-for-textavoz">https://www.tumblr.com/ajgutierr3z/666378999347429376/appinventor-ciclo-for-textavoz</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption class="wp-element-caption">Imagen 9. Bloques del componente TextAVoz. Fuente: Tumblr.com</figcaption></figure>



<p>Por último, es momento de agrupar todos los bloques o al menos los que competan dentro del bloque de ejecutar del objeto botón cuando se haga clic se ejecute cada uno de los mismo, para ello hay que ir al componente &#8220;botón&#8221; y elegir el bloque que tiene el texto &#8220;clic&#8221;. Se debe de hacer un proceso similar al que se puede visualizar en la imagen 10.</p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/666379745029701632/v2" data-did="7e3f3513cc2c54b355b9bade2da5586625774e0c"  ><a href="https://www.tumblr.com/ajgutierr3z/666379745029701632/appinventor-ciclo-for-integracion-bloque-boton">https://www.tumblr.com/ajgutierr3z/666379745029701632/appinventor-ciclo-for-integracion-bloque-boton</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption class="wp-element-caption">Imagen 10. Integración de los bloques dentro del botón Fuente: tumblr.com</figcaption></figure>



<p>Al leer los bloques de código se puede observar que es un 99 % probable que exista un pequeño error, el cual consiste en que no se ha limpiado las variables que guardan los números pares (par) y los impares (ipar). Esto se notará cuando se ejecutar el programa por primera vez todo saldra bien. Pero sino cierras la aplicación y le das oro número para que calcule cuales son los pares e impares se mostrara, los nuevos números junto con los anteriores. Para solventar ese detalle solo hay que iniciar en vacío las variables ipar y par, eso se realiza con bloque de texto en vacío. Y después hay que colocar esos bloques dentro del botón. Es algo similar a lo que se muestra en la imagen 11.</p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/666380954726760448/v2" data-did="99654e98b6846d95c5cafd5d5cb363be5eb995ab"  ><a href="https://www.tumblr.com/ajgutierr3z/666380954726760448/appinventor-ciclos-for-limpiandovariables">https://www.tumblr.com/ajgutierr3z/666380954726760448/appinventor-ciclos-for-limpiandovariables</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption class="wp-element-caption">Imagen 11. Limpiando las variables par e ipar, agregandolo al botón. Fuente: tumblr.com</figcaption></figure>



<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 title="Manejo del ciclo for en android con appinventor" width="960" height="540" src="https://www.youtube.com/embed/0Ot8jpDyIwI?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. Integrando bloques ciclo for.  Fuente: youtube.com</figcaption></figure>



<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 title="Ejecución de bloques usando ciclo for con appinventor" width="960" height="540" src="https://www.youtube.com/embed/sriOI7tB3XI?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></figure>



<p>En el vídeo 1 se muestra la integración de todos los bloques que se mostraron anteriormente. El vídeo 2, muestra la ejecución de los bloques . Se espera que la reproducción de esta actividad sea más placentera y de fácil aprendizaje para sus futuros proyectos. Espero sus comentarios.</p>



<p></p>
<p>La entrada <a href="https://www.frexus.dev/articulo/ciclos-con-bloques-para-android/">Ciclos, con bloques para android</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.frexus.dev/articulo/ciclos-con-bloques-para-android/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">446</post-id>	</item>
		<item>
		<title>Estructuras de control (if-else) en AppInventor</title>
		<link>https://www.frexus.dev/articulo/estructuras-de-control-if-else-en-appinventor/</link>
					<comments>https://www.frexus.dev/articulo/estructuras-de-control-if-else-en-appinventor/#respond</comments>
		
		<dc:creator><![CDATA[Alfredo de Jesús Gutiérrez]]></dc:creator>
		<pubDate>Thu, 28 Oct 2021 20:41:30 +0000</pubDate>
				<category><![CDATA[articulo]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[AppInventor]]></category>
		<category><![CDATA[Estructura de control]]></category>
		<category><![CDATA[Programación Móvil]]></category>
		<guid isPermaLink="false">https://www.ajgutierrez.me/?p=438</guid>

					<description><![CDATA[<p>En esta entrada se aborda el tema de la estructura de control, particularmente el de if-else (si &#8211; entonces) en el appinventor para una aplicación en android. El ejercicio es que la aplicación pueda identificar si un número dado es par o impar. Esto se hará de la siguiente manera: Descripción La actividad consiste en que el usuario escriba un número en un cuadro de texto, al pulsar el botón, se muestre en una etiqueta la leyenda: &#8220;El número es par&#8221; o &#8220;El número es impar&#8221; y posteriormente se escuche mediante un texto a voz, lo que tiene escrito la etiqueta. Para ello se va a necesitar los siguiente: Requisitos Para poder llevar acabo esta práctica se requiere de lo siguiente: Una cuenta en el appinventor. Crear un nuevo proyecto en el appinventor. Un cuadro de texto. Un botón. Un texto a voz. Partiendo de que ya se tiene creado el proyecto nuevo en el appInventor, y que se tiene una interfaz de usuario similar a la que se muestra en la imagen 1. Se ira a la sección de bloques. Si no recuerdas como hacer un nuevo proyecto puedes ir al menú &#8220;proyecto&#8221; hacer clic en la opción &#8220;comenzar un nuevo proyecto&#8221; se mostrará una ventana donde se solicita el nombre del nuevo proyecto, para este ejercicio se escribió el nombre de &#8220;parImpar&#8221; se puede escribir el que quieras. Luego pulsas en aceptar o en enter (en el teclado) y después arrastras los objetos Cuadro de texto, botón, etiqueta y texto a voz, y lo se suelta en el lienzo de trabajo. Creación de bloques Lo primero que se va a realizar es la declaración de las variables que se van a utilizar, para esta práctica se requiere dos variables una que va a contener el valor numérico que introduce el usuario y la que va a guardar el valor de la operación que determina si un número es par o impar. Para determinar si un número es par o impar se utilizará el siguiente proceso: El número dado se dividirá entre dos El residuo se evaluara si es cero, el número que se dividió es par, sino es impar Para crear las dos variables se va a los componentes integrados se pulsara sobre la opción &#8220;integrados&#8221; y se va a elegir el bloque que dice &#8220;Inicializar global como nombre &#8221; se debe de tener dos bloques (ya que, son dos variables que se van a utilizar). Después se debe de ir al componente de &#8220;mátematicas&#8221; donde se elija el bloque que tiene un cero. Vea imagen 2. Ahora sigue el procesamiento de ese número dado para identificar si es par o impar. Para ello se pulsara sobre el componente de variable y se selecciona el bloque que dice &#8220;poner a&#8221;, después se regresará a los componentes de cuadro de texto y se elige el bloque que dice: &#8220;campo de texto1 . texto&#8221;. Al final debe de quedar algo similar como lo que se muestra en la imagen 3. Ahora que ya se tiene el valor que ha introducido el usuario, hay que regresar a la sección de &#8220;Variables&#8221; donde se va a eligir nuevamente un bloque que diga &#8220;poner a&#8221;, posteriormente se debe de ir a los bloques de matemáticas en donde se debe de seleccionar el bloque que dice &#8220;modulo de &#8220;. Recordad que la obtención del residuo en regularmente se hace con el símbolo de porcentaje (%). Ahora llega el turno de tomar de los bloques de variable el que lleva el nombre de &#8220;tomar &#8221; y como la operación que se va a realizar es con una constante hay que tomar del bloque de matemáticas el que tiene un cero. Finalmente en su lienzo de bloques se debe de tener algo como lo que se muestra en la imagen 4. Ahora llega el turno de la evaluación del calculo que se ha realizado, para ello se hará clic sobre la opción de &#8220;logica&#8221; (tiene un color verde) se encuentra en los controles de interfaz de la columna de Bloques. Y se debe de pulsar sobre el que tiene el símbolo de igual. Luego hay que ir a buscar el bloque que tiene el texto de &#8220;tomar&#8221; que se encuentra en la sección de variables, posteriormente se debe de colocar el bloque que tiene el texto &#8220;cero&#8221;, que es con lo que se va a comparar para evaluar el residuo de la operación. Y finalmente hay que ir a los bloques de control (tiene un color amarillo) y al pulsar sobre el se podrá notar que se tiene una gran variedad de controles que van desdee el if, if-else, switch y ciclos. Si todo ha ido bien se debe de tener una pantalla como la que se muestra en la imagen 5. Una vez que se ha evaluado corresponde enviar los resultados a la etiqueta, para los casos en que sea par o impar el número. Para ello se va a ir los bloques del componete &#8220;Etiqueta&#8221; y se debe de elegir el que dice: &#8220;poner etiqueta1.texto como&#8221; se va a necesitar dos así como dos uniones, para poder concatenar el número y la leyenda &#8220;Es par&#8221; o en su caso &#8220;es impar&#8221; si se quisiera que la leyenda dijera &#8220;El número es par&#8221;, se debe de notar que se esta haciendo tres uniones, que son: &#8220;el&#8221; + número + &#8220;es par&#8221; por lo que se necesitaría dos uniones para cada caso. Por el momento se dejará de la forma sencilla: número `+ &#8220;es par&#8221;. Finalmente si todo ha salido bien se debe de tener un lienzo similar como lo que se ve en la imagen 6. Es momento de agregar el bloque de texto a voz, este va a permitir que se lea lo que dice la etiqueta. para ello se hará clic en el componente Texto a voz, y se debe de elegir el bloque que dice: &#8220;llamar textoAVoz1. hablar mensaje&#8221; (es de color morado), y del componente etiqueta se va a requerir el bloque que tiene un texto como : &#8220;Etiqueta1.texto&#8221;. Debe de quedar un lienzo como el que se muestra en la imagen 7. Se puede agregar dos bloques de texto a voz para que se ejecute en cada caso. Incluso podría usarse una variable que contenga el resultado y después de pasar la evaluación enviarla a la etiqueta, esto optimizaría el código en no usar al rededor de seis bloques. Finalmente es hora de agregar el bloque que contendrá a todos los demás bloques, el del botón, que cuando se pulse debe de ejecutar todo los bloques, para ello hay que ir al componente &#8220;boton&#8221; y agregar el bloque que dice &#8220;clic&#8221;. Debe de tenerse algo como lo que se muestra en la imagen 8. Ahora es momento de introducir &#8220;código&#8221; a los bloques y de conectarlos. Los códigos que se introducirá son: El nombre de las variables y los textos a mostrarse en la etiqueta. Las variables que se usaran son las siguientes: num, para guardar el número que introdujo por el cuadro de texto el usuario. rpi, que guardara el resultado del residuo o modulo de la división entre dos. En la imagen 9 se aprecia todo el ensamble que se hizo para crear la &#8220;inteligencia&#8221; y funcionalidad de que la app, pueda identificar que número es par o impar. Sin embargo en la imagen 10 se observa, en la parte de arriba el resultado final del armado de los bloques y en la parte de abajo se nota la &#8220;optimización&#8221; al usar una variable que guarde el texto completo en vez de enviarlo directo a la etiqueta. La misma operación que se hizo con la variable (las concatenaciones) se puede hacer con la etiqueta y el texto a voz. Para cerrar esta entrada, en el vídeo 1 se muestra la creación del proyecto, la generación de interfaz de usuario, y el ensamble de los bloques el entorno del appinventor. El vídeo 2 muestra la ejecución de lo que se creo en dicho entrono. Espero que la recreación de esta praáctica sea mucho mas fácil y aporte a sus conocimiento. Espero sus comentarios.</p>
<p>La entrada <a href="https://www.frexus.dev/articulo/estructuras-de-control-if-else-en-appinventor/">Estructuras de control (if-else) en AppInventor</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>En esta entrada se aborda el tema de la estructura de control, particularmente el de if-else (si &#8211; entonces) en el appinventor para una aplicación en android. El ejercicio es que la aplicación pueda identificar si un número dado es par o impar. Esto se hará de la siguiente manera:</p>



<h4 class="wp-block-heading">Descripción </h4>



<p>La actividad consiste en que el usuario escriba un número en un cuadro de texto, al pulsar el botón, se muestre en una etiqueta la leyenda: &#8220;<em>El número es par</em>&#8221; o &#8220;<em>El número es impar</em>&#8221; y posteriormente se escuche mediante un texto a voz, lo que tiene escrito la etiqueta. Para ello se va a necesitar los siguiente:</p>



<h4 class="wp-block-heading">Requisitos</h4>



<p>Para poder llevar acabo esta práctica se requiere de lo siguiente:</p>



<ol class="wp-block-list"><li>Una cuenta en el appinventor.</li><li>Crear un nuevo proyecto en el appinventor.</li><li>Un cuadro de texto.</li><li>Un botón.</li><li>Un texto a voz.</li></ol>



<p>Partiendo de que ya se tiene creado el proyecto nuevo en el appInventor, y que se tiene una interfaz de usuario similar a la que se muestra en la imagen 1. Se ira a la sección de bloques.  Si no recuerdas como hacer un nuevo proyecto puedes ir al menú &#8220;proyecto&#8221; hacer clic en la opción &#8220;comenzar un nuevo proyecto&#8221; se mostrará una ventana donde se solicita el nombre del nuevo proyecto, para este ejercicio se escribió el nombre de &#8220;parImpar&#8221; se puede escribir el que quieras. Luego pulsas en aceptar  o en enter (en el teclado) y después arrastras los objetos Cuadro de texto, botón, etiqueta y texto a voz, y lo se suelta en el lienzo de trabajo.</p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/666285552232955904/v2" data-did="8a43b975802d6e830236b59fcdbbdc583d6ecaca"  ><a href="https://www.tumblr.com/ajgutierr3z/666285552232955904/appinventor-parimpar">https://www.tumblr.com/ajgutierr3z/666285552232955904/appinventor-parimpar</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption>Imagen 1. UI para resolver el ejercicio par e impar. Fuente: tumblr.com</figcaption></figure>



<h4 class="wp-block-heading">Creación de bloques</h4>



<p>Lo primero que se va a realizar es la  declaración de las variables que se van a utilizar, para esta práctica se requiere dos variables una que va a contener el valor numérico que introduce el usuario y la que va a guardar el valor de la operación que determina si un número es par o impar. Para determinar si un número es par o impar se utilizará el siguiente proceso: </p>



<ol class="wp-block-list"><li>El número dado se dividirá entre dos</li><li>El residuo se evaluara si es cero, el número que se dividió es par, sino es impar</li></ol>



<p>Para crear las dos variables se va a los componentes integrados se pulsara sobre la opción &#8220;integrados&#8221; y se va a elegir el bloque que dice &#8220;Inicializar global como nombre &#8221; se debe de tener dos bloques (ya que, son dos variables que se van a utilizar). Después se debe de ir al componente de &#8220;mátematicas&#8221; donde se elija el bloque que tiene un cero. Vea imagen 2. </p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/666287075610525696/v2" data-did="68973471929de3e5426964c89e61a569bac89449"  ><a href="https://www.tumblr.com/ajgutierr3z/666287075610525696/appinventor-parimpar-variables">https://www.tumblr.com/ajgutierr3z/666287075610525696/appinventor-parimpar-variables</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption>Imagen 2. Variables en appInventor para el ejercicio Par-Impar. Fuente tumblr.com</figcaption></figure>



<p>Ahora sigue el procesamiento de ese número dado para identificar si es par o impar. Para ello se pulsara sobre el componente de variable y se selecciona el bloque que dice &#8220;poner  a&#8221;, después se regresará a los componentes de cuadro de texto y se elige el bloque que dice: &#8220;campo de texto1 . texto&#8221;. Al final debe de quedar algo similar como lo que se muestra en la imagen 3.</p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/666287821406027776/v2" data-did="744a9ed4e77f8a36669b84a2c88375ebc3201b7d"  ><a href="https://www.tumblr.com/ajgutierr3z/666287821406027776/appinventor-parimpar-asignarvalorusuario">https://www.tumblr.com/ajgutierr3z/666287821406027776/appinventor-parimpar-asignarvalorusuario</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption>Imagen 3. Asignar el valor que introduce el usuario. Fuente: tumblr.com</figcaption></figure>



<p>Ahora que ya se tiene el valor que ha introducido el usuario, hay que regresar a la sección de &#8220;Variables&#8221; donde se va a eligir nuevamente un bloque que diga &#8220;poner  a&#8221;, posteriormente se debe de ir a los bloques de matemáticas en donde se debe de seleccionar el bloque que dice &#8220;modulo de &#8220;. Recordad que la obtención del residuo en regularmente se hace con el símbolo de porcentaje (%). Ahora llega el turno de tomar de los bloques de variable el que lleva el nombre de &#8220;tomar &#8221; y como la operación que se va a realizar es con una constante hay que tomar del bloque de matemáticas el que tiene un cero. Finalmente en su lienzo de bloques se debe de tener algo como lo que se muestra en la imagen 4.</p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/666290792022900736/v2" data-did="c977f2b5853ae2e9534d4b7eb98ecc7408909361"  ><a href="https://www.tumblr.com/ajgutierr3z/666290792022900736/appinventor-parimpar-calculo">https://www.tumblr.com/ajgutierr3z/666290792022900736/appinventor-parimpar-calculo</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption>Imagen 4. Bloques para el calculo del par e impar. Fuente: tumblr.com</figcaption></figure>



<p>Ahora llega el turno de la evaluación del calculo que se ha realizado, para ello se hará clic sobre la opción de &#8220;logica&#8221; (tiene un color verde) se encuentra en los controles de interfaz de la columna de Bloques. Y se debe de pulsar sobre el que tiene el símbolo de igual. Luego hay que ir a buscar el bloque que tiene el texto de &#8220;tomar&#8221; que se encuentra en la sección de variables, posteriormente se debe de colocar el bloque que tiene el texto &#8220;cero&#8221;, que es con lo que se va a comparar para evaluar el residuo de la operación. Y finalmente hay que ir a los bloques de control (tiene un color amarillo) y al pulsar sobre el se podrá notar que se tiene una gran variedad de controles que van desdee el if, if-else, switch y ciclos. Si todo ha ido bien se debe de tener una pantalla como la que se muestra en la imagen 5.</p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/666292328783331328/v2" data-did="f4766026e18573fdb77c18fed7b58b34ea21c15c"  ><a href="https://www.tumblr.com/ajgutierr3z/666292328783331328/appinventor-parimpar-evaluacion">https://www.tumblr.com/ajgutierr3z/666292328783331328/appinventor-parimpar-evaluacion</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption>Imagen 5. Evaluación del modulo. Fuente: tumblr.com</figcaption></figure>



<p>Una vez que se ha evaluado corresponde enviar los resultados a la etiqueta, para los casos en que sea par o impar el número. Para ello se va a ir los bloques del componete &#8220;Etiqueta&#8221; y se debe de elegir el que dice: &#8220;poner etiqueta1.texto como&#8221; se va a necesitar dos así como dos uniones, para poder concatenar el número y la leyenda &#8220;Es par&#8221; o en su caso &#8220;es impar&#8221; si se quisiera que la leyenda dijera &#8220;El número es par&#8221;, se debe de notar que se esta haciendo tres  uniones, que son: &#8220;el&#8221; + número + &#8220;es par&#8221; por lo que se necesitaría dos uniones para cada caso. Por el momento se dejará de la forma sencilla: número `+ &#8220;es par&#8221;. Finalmente si todo ha salido bien se debe de tener un lienzo similar como lo que se ve en la imagen 6.</p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/666293705847816192/v2" data-did="0c6942189c545ddab24f3786f5d890eb4a47244b"  ><a href="https://www.tumblr.com/ajgutierr3z/666293705847816192/appinventor-parimpar-resultado">https://www.tumblr.com/ajgutierr3z/666293705847816192/appinventor-parimpar-resultado</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption>Imagen 6. Resultados de la evaluación Par o impar. Fuente: tumblr.com</figcaption></figure>



<p>Es momento de agregar el bloque de texto a voz, este va a permitir que se lea lo que dice la etiqueta. para ello se hará clic en el componente Texto a voz, y se debe de elegir el bloque que dice: &#8220;llamar textoAVoz1. hablar mensaje&#8221; (es de color morado), y del componente etiqueta se va a requerir el bloque que tiene un texto como : &#8220;Etiqueta1.texto&#8221;. Debe de quedar un lienzo como el que se muestra en la imagen 7.</p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/666295252819296256/v2" data-did="3ae45e2f3a3ac4fa194db6273d76faa781ea0f78"  ><a href="https://www.tumblr.com/ajgutierr3z/666295252819296256/appinventor-parimpar-voz">https://www.tumblr.com/ajgutierr3z/666295252819296256/appinventor-parimpar-voz</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption>Imagen 7. Texto a voz, Par-Impar. Fuente: tumblr.com</figcaption></figure>



<p>Se puede agregar dos bloques de texto a voz para que se ejecute en cada caso. Incluso podría usarse una variable que contenga el resultado y después de pasar la evaluación enviarla a la etiqueta, esto optimizaría el código en no usar al rededor de seis bloques. </p>



<p>Finalmente es hora de agregar el bloque que contendrá a todos los demás bloques, el del botón, que cuando se pulse debe de ejecutar todo los bloques, para ello hay que ir al componente &#8220;boton&#8221; y agregar el bloque que dice &#8220;clic&#8221;. Debe de tenerse algo como lo que se muestra en la imagen 8.</p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/666295832127176704/v2" data-did="5afcd4b67b9f803ec6b4467a719928383a54e0cf"  ><a href="https://www.tumblr.com/ajgutierr3z/666295832127176704/appinventor-parimpar-boton">https://www.tumblr.com/ajgutierr3z/666295832127176704/appinventor-parimpar-boton</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption>Imagen 8. Bloque del Botón. Fuente: tumblr.com</figcaption></figure>



<p>Ahora es momento de introducir &#8220;código&#8221; a los bloques y de conectarlos. Los códigos que se introducirá son: El nombre de las variables y los textos a mostrarse en la etiqueta. Las variables que se usaran son las siguientes:</p>



<ul class="wp-block-list"><li>num, para guardar el número que introdujo por el cuadro de texto el usuario.</li><li>rpi, que guardara el resultado del residuo o modulo de la división entre dos. </li></ul>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/666298825947906049/v2" data-did="d5430a0639282811144ac1cec414549f1f5e8dc1"  ><a href="https://www.tumblr.com/ajgutierr3z/666298825947906049/appinventor-parimpar-ensamble">https://www.tumblr.com/ajgutierr3z/666298825947906049/appinventor-parimpar-ensamble</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption>Imagen 9. Ensamble de los bloques. fuente: tumblr.com</figcaption></figure>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/666299358758715392/v2" data-did="aa32f1244b425f6e59f8d0892d0361f860b29164"  ><a href="https://www.tumblr.com/ajgutierr3z/666299358758715392/appinventor-parimpar-bloquesmejorados">https://www.tumblr.com/ajgutierr3z/666299358758715392/appinventor-parimpar-bloquesmejorados</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption>Imagen 10. Optimizando bloques. Fuente: tumblr.com</figcaption></figure>



<p>En la imagen 9 se aprecia todo el ensamble que se hizo para crear la &#8220;inteligencia&#8221; y funcionalidad de que la app, pueda identificar que número es par o impar. Sin embargo en la imagen 10 se observa, en la parte de arriba el resultado final del armado de los bloques y en la parte de abajo se nota la &#8220;optimización&#8221; al usar una variable que guarde el texto completo en vez de enviarlo directo a la etiqueta. La misma operación que se hizo con la variable (las concatenaciones) se puede hacer con la etiqueta y el texto a voz.</p>



<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="Estructura de control (if-else) en AppInventor" width="960" height="540" src="https://www.youtube.com/embed/PKHJsr-p2xU?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
</div><figcaption>Vídeo 1. Creación de IU,ensamble de bloques. Fuente: youtube.com</figcaption></figure>



<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="Ejecutando el calculo Par e Impar" width="960" height="540" src="https://www.youtube.com/embed/3WIyCWurWkM?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
</div><figcaption>Vídeo 2. Ejecución del código generado en appinventor. Fuente: youtube.com</figcaption></figure>



<p>Para cerrar esta entrada, en el vídeo 1 se muestra la creación del proyecto, la generación de interfaz de usuario, y el ensamble de los bloques el entorno del appinventor. El vídeo 2 muestra la ejecución de lo que se creo en dicho entrono. Espero que la recreación de esta praáctica sea mucho mas fácil y aporte a sus conocimiento. Espero sus comentarios. </p>
<p>La entrada <a href="https://www.frexus.dev/articulo/estructuras-de-control-if-else-en-appinventor/">Estructuras de control (if-else) en AppInventor</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.frexus.dev/articulo/estructuras-de-control-if-else-en-appinventor/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">438</post-id>	</item>
		<item>
		<title>Hola mundo interactivo en android.</title>
		<link>https://www.frexus.dev/articulo/solicitando-datos-al-usuario-con-appinventor/</link>
					<comments>https://www.frexus.dev/articulo/solicitando-datos-al-usuario-con-appinventor/#respond</comments>
		
		<dc:creator><![CDATA[Alfredo de Jesús Gutiérrez]]></dc:creator>
		<pubDate>Sat, 23 Oct 2021 21:05:39 +0000</pubDate>
				<category><![CDATA[articulo]]></category>
		<category><![CDATA[AppInventor]]></category>
		<category><![CDATA[Programación Móvil]]></category>
		<guid isPermaLink="false">https://www.ajgutierrez.me/?p=425</guid>

					<description><![CDATA[<p>En la entrada anterior (ver aquí) se creo un hola mundo, muy al estilo para dispositivos móviles, donde al pulsar un botón, el dispositivo te &#8220;habla&#8221; con una voz muy &#8220;robótica&#8221;. Hoy se tratara el tema de solicitarle datos al usuario, obtenerlo y &#8220;hacer algo&#8221; algo como &#8220;que al pulsar el botón diga: &#8220;Hola Amia&#8221; &#8220;. Sería como un hola mundo mejorado. Para poder hacer esto se debe de ir a la página del appinventor, (accedes a ella desde aquí), se deberá de mostrar una ventana como la que se muestra en la imagen 1. Una vez que se encuentre ahí, hay que ir al menú proyectos opción comenzar un proyecto nuevo. Después de pulsar en esa opción se mostrará una ventana emergente como la que se puede apreciar en la imagen 2. Después de crear un proyecto nuevo se verá una ventana como la que se muestra en la imagen 3, ese es el lienzo de trabajo (área blanca dentro del móvil), ahora hay que buscar el componente (u objeto) campo de texto este regularmente se encuentra en la columna de la izquierda (vea imagen 3, parte inferior izquierda). Lo selecciona y lo arrastra. Ahora hay que agregar un botón y un componente llamado TextoAVoz (vea imagen 4 y 5). En las imágenes 4 y 5, se puede observar que, el componente &#8220;TextoAVoz&#8221; se encuentra en la opción &#8220;Medios&#8221; se accede a ella, en las opciones de la paleta (opciones de componentes de la columna de la izquierda). Se recomienda se realice un pequeño scroll hacia abajo y pulse sobre la opción &#8220;medios&#8221; y dentro de ella encontrara el componente &#8220;TextoAVoz&#8221;. Pulse y arrastre hacia el lienzo. Hasta ahora se debe de tener tres componentes u objetos sobre el lienzo, que son: un campo de texto, un botón y un texto a voz. (vea imagen 6). Ahora es momento de codificar al estilo scratch (por bloques) para ello hay que realizar un clic en el botón que dice &#8220;bloques&#8221; se encuentra en la parte superior derecha, debajo de la cuenta con la que se autentico dentro de appinventor. Una vez que se haga clic sobre él, se podrá de ver una ventana, similar a la que se muestra en la imagen 7. En la sección de bloques, que se encuentra del lado izquierdo (vea la imagen 7) se encontrará todos los tipos de bloques, acciones y eventos que se pueden tener. Se puede observar que también se tiene los componentes que se arrastraron o agregaron (vea imagen 6). Para darle funcionalidad a la interfaz gráfica creada, se debe de hacer lo siguiente: Si todo va bien se debe de tener la cantidad de bloques que se ven en la imagen 12. Ahora solo sigue ensamblar los bloques se debería de hacer de la siguiente manera: Si todo ha salido bien debe de tener una unión de bloques similar a la que se muestra en la imagen 13. Se deja un vídeo de como se creo este &#8220;hola mundo interactivo&#8221;, que disfruten la recreación de la practica y espero sus comentarios.</p>
<p>La entrada <a href="https://www.frexus.dev/articulo/solicitando-datos-al-usuario-con-appinventor/">Hola mundo interactivo en android.</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>En la entrada anterior (ver <a href="https://www.frexus.dev/articulo/mi-aplicacion-movil-y-no-se-por-donde-empezar/">aquí</a>) se creo un hola mundo, muy al estilo para dispositivos móviles, donde al pulsar un botón, el dispositivo te &#8220;habla&#8221; con una voz muy &#8220;robótica&#8221;. Hoy se tratara el tema de solicitarle datos al usuario, obtenerlo y &#8220;hacer algo&#8221; algo como &#8220;que al pulsar el botón diga: &#8220;Hola Amia&#8221; &#8220;. Sería como un hola mundo mejorado.</p>



<p>Para poder hacer esto se debe de ir a la página del appinventor, (accedes a ella desde <a href="http://ai2.appinventor.mit.edu/">aquí</a>), se deberá de mostrar una ventana como la que se muestra en la imagen 1. Una vez que se encuentre ahí, hay que ir al menú <em>proyectos</em> opción <em>comenzar un proyecto nuevo</em>. Después de pulsar en esa opción se mostrará una ventana emergente como la que se puede apreciar en la imagen 2. </p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/665142886743031808/v2" data-did="85b8ab279faf495e1a404d78b416c80c9af7ce09"  ><a href="https://www.tumblr.com/ajgutierr3z/665142886743031808/lienzo-nuevo-proyecto">https://www.tumblr.com/ajgutierr3z/665142886743031808/lienzo-nuevo-proyecto</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption class="wp-element-caption">Imagen 1. Ventana que se muestra al entrar al appinventor. Fuente: tumblr.</figcaption></figure>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/665142715927937024/v2" data-did="cd4dd74fcf97124e615d1d6de547f4c634fb093f"  ><a href="https://www.tumblr.com/ajgutierr3z/665142715927937024/nombre-proyecto-appinventor">https://www.tumblr.com/ajgutierr3z/665142715927937024/nombre-proyecto-appinventor</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption class="wp-element-caption">Imagen 2. Ventana emergente, donde se coloca el nombre del nuevo proyecto. Fuente: tumblr.</figcaption></figure>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/665844471610638336/v2" data-did="7d4d4592efad86f54af1812387e309bbdd7f6bd1"  ><a href="https://www.tumblr.com/ajgutierr3z/665844471610638336/textbox-appinventor">https://www.tumblr.com/ajgutierr3z/665844471610638336/textbox-appinventor</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption class="wp-element-caption">Imagen 3. Seleccionando Campo de Texto y colocarlo en el lienzo. Fuente: tumblr</figcaption></figure>



<p>Después de crear un proyecto nuevo se verá una ventana como la que se muestra en la imagen 3, ese es el lienzo de trabajo (área blanca dentro del móvil), ahora hay que buscar el componente (u objeto) campo de texto este regularmente se encuentra en la columna de la izquierda (vea imagen 3, parte inferior izquierda). Lo selecciona y lo arrastra. Ahora hay que agregar un botón y un componente llamado TextoAVoz (vea imagen 4 y 5).</p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/665844944405168128/v2" data-did="a952836b102d070fc13662ea55654d47496baf2e"  ><a href="https://www.tumblr.com/ajgutierr3z/665844944405168128/appinventor-boton">https://www.tumblr.com/ajgutierr3z/665844944405168128/appinventor-boton</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption class="wp-element-caption">Imagen 4. Seleccionando el componente boton. Fuente: tumblr.</figcaption></figure>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/665844925189996544/v2" data-did="e59957d675dbc517a50fee964b3aea1190466c9a"  ><a href="https://www.tumblr.com/ajgutierr3z/665844925189996544/appinventor-textoavoz">https://www.tumblr.com/ajgutierr3z/665844925189996544/appinventor-textoavoz</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption class="wp-element-caption">Imagen 5. Seleccionando el componente TextoAVoz. Fuente: tumblr</figcaption></figure>



<p>En las imágenes 4 y 5, se puede observar que, el componente &#8220;TextoAVoz&#8221; se encuentra en la opción &#8220;Medios&#8221; se accede a ella, en las opciones de la paleta (opciones de componentes de la columna de la izquierda). Se recomienda se realice un pequeño scroll hacia abajo y pulse sobre la opción &#8220;medios&#8221; y dentro de ella encontrara el componente &#8220;TextoAVoz&#8221;. Pulse y arrastre hacia el lienzo. Hasta ahora se debe de tener tres componentes u objetos sobre el lienzo, que son: un campo de texto, un botón y un texto a voz. (vea imagen 6).</p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/665845480394244096/v2" data-did="481961bee2d93a7c752035f467d2537b4befc3a1"  ><a href="https://www.tumblr.com/ajgutierr3z/665845480394244096/appinventor-interfazgr%C3%A1fica">https://www.tumblr.com/ajgutierr3z/665845480394244096/appinventor-interfazgr%C3%A1fica</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption class="wp-element-caption">Imagen 6. Interfaz gráfica de usuario. Fuente: tumblr</figcaption></figure>



<p>Ahora es momento de codificar al estilo scratch (por bloques) para ello hay que realizar un clic en el botón que dice &#8220;bloques&#8221; se encuentra en la parte superior derecha, debajo de la cuenta con la que se autentico dentro de appinventor. Una vez que se haga clic sobre él, se podrá de ver una ventana, similar a la que se muestra en la imagen 7. </p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/665847414756966400/v2" data-did="0860429adc7cf5746f516e94d95732ad3221aeb2"  ><a href="https://www.tumblr.com/ajgutierr3z/665847414756966400/appinventor-bloques-codigo">https://www.tumblr.com/ajgutierr3z/665847414756966400/appinventor-bloques-codigo</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption class="wp-element-caption">Imagen 7. Programar por bloques en appinventor. Fuente: tumblr.</figcaption></figure>



<p>En la sección de bloques, que se encuentra del lado izquierdo (vea la imagen 7) se encontrará todos los tipos de bloques, acciones y eventos que se pueden tener. Se puede observar que también se tiene los componentes que se arrastraron o agregaron (vea imagen 6). Para darle funcionalidad a la interfaz gráfica creada, se debe de hacer lo siguiente: </p>



<ol class="wp-block-list">
<li>Se pulsara sobre el componente &#8220;botón&#8221; Se mostrara una serie de bloques como los que se tiene en la imagen 8, Realice un clic primario sobre la primera opción (la opción que tiene el clic). </li>



<li>Pulse ahora sobre el componente &#8220;campo de texto&#8221;. Se podrá observar unos bloques coo los que se muestra en la imagen 9. Pulse sobre el que dice. &#8220;CampodeTexto  texto&#8221;</li>



<li>Ahora seleccione el componente &#8220;TextoAVoz&#8221;. Se mostrará unos bloques como los que se pueden apreciar en la imagen 10. Pulse sobre el que dice: &#8220;llamar TextoAVoz hablar&#8221;</li>



<li>Ya solo se hará uso de un bloque que permite concatenar (recuerde que esta opción permite unir dos fraces o textos). Esto permitirá poder indicarle al apk que diga: &#8220;hola Amaia&#8221;. Para ser esto hay que ir a los bloques integrados y dirigirse hacia la opción que dice &#8220;Texto&#8221; al pulsar sobre ella debe de mostrarse una ventana como la que se encuentra en la imagen 11. Pulse sobre el bloque que tiene la palabra &#8220;Unir&#8221;.</li>



<li>Después de seleccionar el bloque del punto cuatro, debe de pulsar sobre el bloque que esta vació, regularmente es el primero, si su ventana es similar a la que se muestra en la imagen 11 deberá de pulsar sobre el primer bloque. </li>
</ol>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/665847853442301952/v2" data-did="296cce3d4794d78bbcce0dbe38fc20b64a8a9c76"  ><a href="https://www.tumblr.com/ajgutierr3z/665847853442301952/appinventor-bloques-bot%C3%B3n">https://www.tumblr.com/ajgutierr3z/665847853442301952/appinventor-bloques-bot%C3%B3n</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption class="wp-element-caption">Imagen 8. Bloques de boton. Fuente: Tumblr.</figcaption></figure>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/665848660827963392/v2" data-did="162eabb65e5886521d3d09db060e559d9f4bcc74"  ><a href="https://www.tumblr.com/ajgutierr3z/665848660827963392/cuadrotexto-texto">https://www.tumblr.com/ajgutierr3z/665848660827963392/cuadrotexto-texto</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption class="wp-element-caption">Imagen 9. Bloques Cuadro de Texto. Fuente: tumblr</figcaption></figure>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/665848942760689664/v2" data-did="7355d5323e6fe9fc132fc95187cdea3b07c5da8a"  ><a href="https://www.tumblr.com/ajgutierr3z/665848942760689664/textoavoz-bloques">https://www.tumblr.com/ajgutierr3z/665848942760689664/textoavoz-bloques</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption class="wp-element-caption">Imagen 10. Bloques del componente TextoAVoz. Fuente: tumblr.</figcaption></figure>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/665849413457035264/v2" data-did="e010a62081f0ef4d6c8335f7179127263d3dca27"  ><a href="https://www.tumblr.com/ajgutierr3z/665849413457035264/appinventor-bloquesdetexto">https://www.tumblr.com/ajgutierr3z/665849413457035264/appinventor-bloquesdetexto</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption class="wp-element-caption">Imagen 11. Bloques para el manejo de textos. Fuente: tumblr.</figcaption></figure>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/665849633337163776/v2" data-did="927437a75130e59ac804b416826af9ade54e4339"  ><a href="https://www.tumblr.com/ajgutierr3z/665849633337163776/bloques">https://www.tumblr.com/ajgutierr3z/665849633337163776/bloques</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption class="wp-element-caption">Imagen 12. Bloques Elegidos para esta práctica. Fuente: tumblr.</figcaption></figure>



<p>Si todo va bien se debe de tener la cantidad de bloques que se ven en la imagen 12. Ahora solo sigue ensamblar  los bloques se debería de hacer de la siguiente manera:</p>



<ol class="wp-block-list">
<li>El primer bloque será el del botón que cuando se pulse sobre él se ejecute el resto de las instrucciones. </li>



<li>Después debe de ir el bloque de color morado, el del componente de TextoAVoz, que es el que permitirá que se reproduzca el audio.</li>



<li>Ahora es turno de unir o concatenar, por lo que el bloque que sigue será el que tiene el nombre de &#8220;unir&#8221;.</li>



<li>En el conector de arriba del bloque concatenar, colocará el que tiene el cuadro en blanco y sobre el cuadro escribirá &#8220;Hola&#8221;</li>



<li>Por último coloque el bloque del cuadro de texto o CampoDeTexto debajo del bloque en el que se escribió &#8220;Hola&#8221;.</li>
</ol>



<p>Si todo ha salido bien debe de tener una unión de bloques similar a la que se muestra en la imagen 13.</p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/665850223774597120/v2" data-did="e270ac9967bea68b704cb7f2c7c4cc3e7103ad43"  ><a href="https://www.tumblr.com/ajgutierr3z/665850223774597120/appinventor-bloqueshola-usuario">https://www.tumblr.com/ajgutierr3z/665850223774597120/appinventor-bloqueshola-usuario</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption class="wp-element-caption">Imagen 13. Bloques unidos final para practica de hola usuario. Fuente.tumblr.</figcaption></figure>



<p>Se deja un vídeo de como se creo este &#8220;hola mundo interactivo&#8221;, que disfruten la recreación de la practica y espero sus comentarios.</p>



<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="Hola Usuario, en AppInventor" width="960" height="540" src="https://www.youtube.com/embed/sFKznNicHhU?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. Hola mundo interactivo. Fuente: youtube.com</figcaption></figure>
<p>La entrada <a href="https://www.frexus.dev/articulo/solicitando-datos-al-usuario-con-appinventor/">Hola mundo interactivo en android.</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.frexus.dev/articulo/solicitando-datos-al-usuario-con-appinventor/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">425</post-id>	</item>
		<item>
		<title>Quiero programar un app móvil, pero no tengo compu.</title>
		<link>https://www.frexus.dev/articulo/mi-aplicacion-movil-y-no-se-por-donde-empezar/</link>
					<comments>https://www.frexus.dev/articulo/mi-aplicacion-movil-y-no-se-por-donde-empezar/#respond</comments>
		
		<dc:creator><![CDATA[Alfredo de Jesús Gutiérrez]]></dc:creator>
		<pubDate>Sat, 16 Oct 2021 03:05:31 +0000</pubDate>
				<category><![CDATA[articulo]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[AppInventor]]></category>
		<category><![CDATA[Programación Móvil]]></category>
		<guid isPermaLink="false">https://www.ajgutierrez.me/?p=410</guid>

					<description><![CDATA[<p>Si tienes las ganas de crear tu primera aplicación móvil, y no cuentas con un equipo de cómputo con grandes prestaciones, como para instalar eclipse, y hacer las míticas maravillas para que este sea ejecutado en tu portatil, o no encuentras el SDK de android por ningún lado. O en su caso el android studio sientes que va a &#8220;quemar&#8221; tu equipo. Si es tu caso hay una opción aún mucho mejor se llama appinventor. AppInventor Fue creado en el MIT, y es mantenido por ellos. Lo sorprendente es que no requieres mucho recursos de hardware para crear tu primer app para android, lo mas importante no tienes que instalar nada en la compu. Aparte permite generar un apk para que puedas compartir tus aplicaciones con tus amigos y familiares. Permite enlazar al dispositivo móvil (sea teléfono o tableta) para que en tiempo real vayas viendo como va quedando tu aplicación. Puedes acceder a esta herramienta en el siguiente enlace: http://ai2.appinventor.mit.edu/ Claro que te va a pedir crear una cuenta, preferentemente una de gmail. y una vez que hayas podido crear tu cuenta podrás observar que esta aparece en la parte superior izquierda (el nombre de tu cuenta) vea imagen 1. Para hacer el debug de la aplicación en tiempo real se debe de instalar una aplicación en un dispositivo móvil, la aplicación que se instala es la siguiente: https://play.google.com/store/apps/details?id=edu.mit.appinventor.aicompanion3&#38;pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1 Para crear un proyecto hay que hacer clic en el menú &#8220;Proyectos&#8221; -&#62; &#8220;Comenzar un nuevo proyecto&#8220;. En la imagen 1 se puede observar el despliegue de dicho menú. una vez que se ha realizado clic sobre la opción &#8220;Comenzar un nuevo proyecto&#8221;. Se mostrará un cuadro de dialogo donde deberá de introducir el nombre del proyecto, algo similar a lo que se visualiza en la imagen 2. Una vez que se haya escrito el nombre del proyecto se deberá de pulsar sobre el botón &#8220;Aceptar&#8221;, una vez que se haya realizado la acción se podrá tener una ventana como la que se muestra en la imagen 3. Cómo se puede observar en la imagen tres se tiene un nuevo &#8220;lienzo&#8221; de trabajo, por lo que del lado izquierdo se tiene todos los objetos desde los de control, multimedia, sensores y demás. Para agregar un objeto solo hay que hacer clic sobre el objeto que se quiere colocar en la aplicación y arrastrarlo sobre el lienzo blanco donde esta el dispositivo. (vea imagen 4) Como se puede observar en la imagen 4, unav ez que se solto el objeto que se quiere agrear en el lienzo de trabajo, en la sección de componentes se puede observar cada uno de los objetos que se han agregado. Ahora se debe de ir a la sección de &#8220;multimedia o medios&#8221; es el panel del lado izquierdo y se debe de buscar el objeto &#8220;TextoAVoz&#8220;, una vez que lo haya localizado, lo selecciona, lo arrastra y lo suelta debajo del botón que agrego previamente. Note que la columna de &#8220;componentes&#8221; ha cambiado y ya se muestra como en la imagen 4. Ahora el código Para introducir el código, debe de ir al botón que dice &#8220;bloques&#8221; esta opción se encuentra abajo donde esta su cuenta, (el correo con el que se registro) en la esquina superior derecha. Pulse en ese botón y se podrá visualizar como cambia el lienzo de trabajo, debe de tener una pantalla similar a la que se muestra en la imagen 5 Se puede observar que el &#8220;ambiente de trabajo&#8221; ha cambiado por completo, ahora en el lado derecho se encuentra una columna llamada bloques con diferentes conceptos, pero por el momento se enfocaran en el que dice: &#8220;screan 1&#8221;. Note que debajo de el se tiene los dos componentes que se han creado el &#8220;botón&#8221; y el &#8220;texto a voz&#8221;. Ahora se debe de realizar un clic sobre el bloque que tiene el nombre de &#8220;boton&#8221;. Y debe de aparecer una ventana como la que se ve en la imagen 6. Si todo va bien hasta este punto, se puede notar que se ha desplegado un buen de bloques que responden a eventos propios del botón, como hacer clic sobre él, cuando tiene el foco, entre otras. Para esta actividad se hará clic sobre el evento &#8220;clic&#8221; del botón 1. Se puede hacer un clic sobre el bloque que se quiere utilizar y / o en su caso arrastrarlo hacia donde esta la &#8220;mochila&#8221; pero no llevarlo hacia ella. Ahora se debe de hacer un clic sobre el bloque &#8220;Texto a Voz&#8221; que se encuentra dentro de los bloques propios del screan 1, y esta debajo del boton 1. Al dar clic sobre él debe de aparecer una ventana similar como la que se muestra en la imagen 7. Si tiene en su navegador una ventana como la que se muestra en la imagen 7, sino lo tiene pulse sobre el bloque texto a voz y tendrá algo similar a dicha imagen. Ahora debe de dar clic en el bloque de color morado, o en su caso arrastrarlo y enbonarlo con el bloque del botón que se tiene en la imagen 6. Al final debe de tener algo como lo que se muestra en la imagen 8. Hasta este punto se ha creado como una especie de asociación entre los dos bloques, algo así , al estilo de un puzzle o rompecabezas. ahora solo hay que indicarle al objeto &#8220;textoaVoz&#8221; lo que se quiere que se reprodpuzca cuando se pulse sobre el botón. Para ello hay que hacer clic sobre los bloques que tienen la leyenda &#8220;control&#8221; y dentro de ellos hay uno que se llama &#8220;texto&#8220;. Se pulsa sobre ese bloque y sedebe de tener algo similar a la imagen 9. Al igual como en los demás bloques hay que seleccionar el primero el que tiene texto vacío. lo arrastra y lo une con los otros dos bloques anteriores. Debe de quedarle algo como lo que se muestra en la imagen 10. Ahora solo hay que agregar el texto en el último bloque que se ha creado. para ello haga doble clic sobre el cuadro y escriba lo siguiente: &#8220;hola Mundo Android&#8221; sin las comillas. Si todo va bien hasta este punto y si se ha sincronizado el dispositivo móvil con el AppInventor se podrá observar que si pulsa sobre el botón que tiene la app en el dispositivo podrá reproducir lo que se ha escrito en el bloque de texto. Generando el apk Como toda aplicación para cualquier dispositivo que use android y si se quiere distribuir hay que generar el el archivo apk, para ello se debe de ir al menú &#8220;Generar&#8221; opción &#8220;Android app (.apk)&#8221; al pulsar sobre esa opción se mostrará una ventana donde se esta generando el fichero, y cuando termine, se mostrara las opciones de descarga, es decir, te brindará la opción de que escanear un código QR o de que se descargue a tu equipo de computo. Algo como lo que se muestra en las imágenes del 11 al 13. Por último se deja un vídeo esperando que sea más práctico para la creación de la primera app. Disfruten su práctica. Espero sus comentarios. No olviden que para ejecutar su app, su dispositivo móvil debe de tener habilitada la opción de desarrollo y en ajuste la de incluir / ejecutar desde fuentes de terceros.</p>
<p>La entrada <a href="https://www.frexus.dev/articulo/mi-aplicacion-movil-y-no-se-por-donde-empezar/">Quiero programar un app móvil, pero no tengo compu.</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Si tienes las ganas de crear tu primera aplicación móvil, y no cuentas con un equipo de cómputo con grandes prestaciones, como para instalar eclipse, y hacer las míticas maravillas para que este sea ejecutado en tu portatil, o no encuentras el SDK de android por ningún lado. O en su caso el android studio sientes que va a &#8220;quemar&#8221; tu equipo. Si es tu caso hay una opción aún mucho mejor se llama appinventor.</p>



<h4 class="wp-block-heading">AppInventor </h4>



<p>Fue creado en el MIT, y es mantenido por ellos. Lo sorprendente es que no requieres mucho recursos de hardware para crear tu primer app para android, lo mas importante no tienes que instalar nada en la compu. Aparte permite generar un apk para que puedas compartir tus aplicaciones con tus amigos y familiares. Permite enlazar al dispositivo móvil (sea teléfono o tableta) para que en tiempo real vayas viendo como va quedando tu aplicación. Puedes acceder a esta herramienta en el siguiente enlace: http://ai2.appinventor.mit.edu/</p>



<p>Claro que te va a pedir crear una cuenta, preferentemente una de gmail. y una vez que hayas podido crear tu cuenta podrás observar que esta aparece en la parte superior izquierda (el nombre de tu cuenta) vea imagen 1. Para  hacer el debug de la aplicación en tiempo real se debe de instalar una aplicación en un dispositivo móvil, la aplicación que se instala es la siguiente: https://play.google.com/store/apps/details?id=edu.mit.appinventor.aicompanion3&amp;pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1</p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/665142361928646656/v2" data-did="5a0a9b7141154a726b1df55a7892bc59c9fb6201"  ><a href="https://www.tumblr.com/ajgutierr3z/665142361928646656/appinventor-android-loguin">https://www.tumblr.com/ajgutierr3z/665142361928646656/appinventor-android-loguin</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption>Imagen 1. Pantalla principal del appinventor. Fuente: tumblr.</figcaption></figure>



<p>Para crear un proyecto hay que hacer clic en el menú &#8220;<em>Proyectos</em>&#8221; -&gt; &#8220;<em>Comenzar un nuevo proyecto</em>&#8220;. En la imagen 1 se puede observar el despliegue de dicho menú. una vez que se ha realizado clic sobre la opción &#8220;Comenzar un nuevo proyecto&#8221;. Se mostrará un cuadro de dialogo donde deberá de introducir el nombre del proyecto, algo similar a lo que se visualiza en la imagen 2.</p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/665142715927937024/v2" data-did="cd4dd74fcf97124e615d1d6de547f4c634fb093f"  ><a href="https://www.tumblr.com/ajgutierr3z/665142715927937024/nombre-proyecto-appinventor">https://www.tumblr.com/ajgutierr3z/665142715927937024/nombre-proyecto-appinventor</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption>Imagen 2. Escribiendo el nombre del nuevo proyecto. Fuente: Tumblr.</figcaption></figure>



<p>Una vez que se haya escrito el nombre del proyecto se deberá de pulsar sobre el botón &#8220;Aceptar&#8221;, una vez que se haya realizado la acción se podrá tener una ventana como la que se muestra en la imagen 3.</p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/665142886743031808/v2" data-did="85b8ab279faf495e1a404d78b416c80c9af7ce09"  ><a href="https://www.tumblr.com/ajgutierr3z/665142886743031808/lienzo-nuevo-proyecto">https://www.tumblr.com/ajgutierr3z/665142886743031808/lienzo-nuevo-proyecto</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption>Imagen 3. Nuevo proyecto creado. Fuente: Tumblr.</figcaption></figure>



<p>Cómo se puede observar en la imagen tres se tiene un nuevo &#8220;lienzo&#8221; de trabajo, por lo que del lado izquierdo se tiene todos los objetos desde los de control, multimedia, sensores y demás. Para agregar un objeto solo hay que hacer clic sobre el objeto que se quiere colocar en la aplicación y arrastrarlo sobre el lienzo blanco donde esta el dispositivo. (vea imagen 4)</p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/665143331304734720/v2" data-did="4369761ea5046c312f6b20ba7182ba18ec1336a5"  ><a href="https://www.tumblr.com/ajgutierr3z/665143331304734720/seleccionar-bot%C3%B3n-arrastrar-y-soltar">https://www.tumblr.com/ajgutierr3z/665143331304734720/seleccionar-bot%C3%B3n-arrastrar-y-soltar</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption>Imagen 4. Seleccionar, Arrastrar y Soltar. Fuente: Tumblr.</figcaption></figure>



<p>Como se puede observar en la imagen 4, unav ez que se solto el objeto que se quiere agrear en el lienzo de trabajo, en la sección de componentes se puede observar cada uno de los objetos que se han agregado. Ahora se debe de ir a la sección de &#8220;multimedia o medios&#8221; es el panel del lado izquierdo y se debe de buscar el objeto &#8220;<em>TextoAVoz</em>&#8220;, una vez que lo haya localizado, lo selecciona, lo arrastra y lo suelta debajo del botón que agrego previamente. Note que la columna de &#8220;componentes&#8221; ha cambiado y ya se muestra como en la imagen 4.</p>



<h5 class="wp-block-heading">Ahora el código</h5>



<p>Para introducir el código, debe de ir al botón que dice &#8220;<em>bloques</em>&#8221; esta opción se encuentra abajo donde esta su cuenta, (el correo con el que se registro) en la esquina superior derecha. Pulse en ese botón y se podrá visualizar como cambia el lienzo de trabajo, debe de tener una pantalla similar a la que se muestra en la imagen 5</p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/665143981947174912/v2" data-did="b506714dda855608c9571e8e46c7bd1ba2b068b8"  ><a href="https://www.tumblr.com/ajgutierr3z/665143981947174912/introducir-c%C3%B3digo">https://www.tumblr.com/ajgutierr3z/665143981947174912/introducir-c%C3%B3digo</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption>Imagen 5. Lienzo para introducir el código. Fuente: Tumblr.</figcaption></figure>



<p>Se puede observar que el &#8220;<em>ambiente de trabajo&#8221;</em> ha cambiado por completo, ahora en el lado derecho se encuentra una columna llamada bloques con diferentes conceptos, pero por el momento se enfocaran en el que dice: &#8220;screan 1&#8221;. Note que debajo de el se tiene los dos componentes que se han creado el &#8220;botón&#8221; y el &#8220;texto a voz&#8221;. Ahora se debe de realizar un clic sobre el bloque que tiene el nombre de &#8220;boton&#8221;. Y debe de aparecer una ventana como la que se ve en la imagen 6.</p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/665144365008732160/v2" data-did="9819faa6448a23d0a940922aa44fe3a862d07cd7"  ><a href="https://www.tumblr.com/ajgutierr3z/665144365008732160/bloqueboton">https://www.tumblr.com/ajgutierr3z/665144365008732160/bloqueboton</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption>Imagen 6. Eventos del bloque botón. Fuente: Tumblr.</figcaption></figure>



<p>Si todo va bien hasta este punto, se puede notar que se ha desplegado un buen de bloques que responden a eventos propios del botón, como hacer clic sobre él, cuando tiene el foco, entre otras. Para esta actividad se hará clic sobre el evento &#8220;clic&#8221; del botón 1. Se puede hacer un clic sobre el bloque que se quiere utilizar y / o en su caso arrastrarlo hacia donde esta la &#8220;mochila&#8221; pero no llevarlo hacia ella.</p>



<p>Ahora se debe de hacer un clic sobre el bloque &#8220;Texto a Voz&#8221; que se encuentra dentro de los bloques propios del screan 1, y esta debajo del boton 1. Al dar clic sobre él debe de aparecer una ventana similar como la que se muestra en la imagen 7.</p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/665144741036539904/v2" data-did="ba2d7b3c95bc2855d545712f26d0379ada7b6edc"  ><a href="https://www.tumblr.com/ajgutierr3z/665144741036539904/bloque-textoavoz">https://www.tumblr.com/ajgutierr3z/665144741036539904/bloque-textoavoz</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption>Imagen 7. Opciones del bloque texto a voz. Fuente: tumblr.</figcaption></figure>



<p>Si tiene en su navegador una ventana como la que se muestra en la imagen 7, sino lo tiene pulse sobre el bloque texto a voz y tendrá algo similar a dicha imagen. Ahora debe de dar clic en el bloque de color morado, o en su caso arrastrarlo y enbonarlo con el bloque del botón que se tiene en la imagen 6. Al final debe de tener algo como lo que se muestra en la imagen 8.</p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/665147050491527168/v2" data-did="0a90c355e9cade635bc91d8cfc92e1894a136f06"  ><a href="https://www.tumblr.com/ajgutierr3z/665147050491527168/uni%C3%B3n-bloques">https://www.tumblr.com/ajgutierr3z/665147050491527168/uni%C3%B3n-bloques</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption>Imagen 8. Unió de bloques. Fuente: tumblr.</figcaption></figure>



<p>Hasta este punto se ha creado como una especie de asociación entre los dos bloques, algo así , al estilo de un puzzle o rompecabezas. ahora solo hay que indicarle al objeto &#8220;textoaVoz&#8221; lo que se quiere que se reprodpuzca cuando se pulse sobre el botón. Para ello hay que hacer clic sobre los bloques que tienen la leyenda &#8220;<em>control</em>&#8221; y dentro de ellos hay uno que se llama &#8220;<em>texto</em>&#8220;. Se pulsa sobre ese bloque y sedebe de tener algo similar a la imagen 9.</p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/665147344340271104/v2" data-did="7d9fde4686cd31d7fa4f83871f3b5fc74c00ad4d"  ><a href="https://www.tumblr.com/ajgutierr3z/665147344340271104/bloque-texto">https://www.tumblr.com/ajgutierr3z/665147344340271104/bloque-texto</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption>Imagen 9. Bloque de control de texto. fuente:tumblr</figcaption></figure>



<p>Al igual como en los demás bloques hay que seleccionar el primero el que tiene texto vacío. lo arrastra y lo une con los otros dos bloques anteriores. Debe de quedarle algo como lo que se muestra en la imagen 10. Ahora solo hay que agregar el texto en el último bloque que se ha creado. para ello haga doble clic sobre el cuadro y escriba lo siguiente: &#8220;<em>hola Mundo Android&#8221;</em> sin las comillas. </p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/665147683198124032/v2" data-did="8fa7db47af20450f547dcc7f148df8419718456c"  ><a href="https://www.tumblr.com/ajgutierr3z/665147683198124032/agregando-texto">https://www.tumblr.com/ajgutierr3z/665147683198124032/agregando-texto</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption>Imagen 10. Agregando Texto a reproducir. Fuente: Tumblr.</figcaption></figure>



<p>Si todo va bien hasta este punto y si se ha sincronizado el dispositivo móvil con el AppInventor se podrá observar que si pulsa sobre el botón que tiene la app en el dispositivo podrá reproducir lo que se ha escrito en el bloque de texto.</p>



<h5 class="wp-block-heading">Generando el apk</h5>



<p>Como toda aplicación para cualquier dispositivo que use android y si se quiere distribuir hay que generar el el archivo apk, para ello se debe de ir al menú &#8220;<em>Generar</em>&#8221; opción &#8220;<em>Android app (.apk)</em>&#8221; al pulsar sobre esa opción se mostrará una ventana donde se esta generando el fichero, y cuando termine, se mostrara las opciones de descarga, es decir, te brindará la opción de que escanear un código QR o de que se descargue a tu equipo de computo. Algo como lo que se muestra en las imágenes del 11 al 13.</p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/665148719287746560/v2" data-did="4d6a7c25f8038dc88d2009bbab33b848e17c6a05"  ><a href="https://www.tumblr.com/ajgutierr3z/665148719287746560/generar-apk">https://www.tumblr.com/ajgutierr3z/665148719287746560/generar-apk</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption>Imagne 11. Accediendo al menú Generar, opción Android apk. Fuente: Tumblr.</figcaption></figure>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/665148838871498752/v2" data-did="c63723848fce04e58838fcab10a1573f1cd85695"  ><a href="https://www.tumblr.com/ajgutierr3z/665148838871498752/construcci%C3%B3n-del-apk">https://www.tumblr.com/ajgutierr3z/665148838871498752/construcci%C3%B3n-del-apk</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption>Imagen 12. Construcción del apk. fuente: tumblr</figcaption></figure>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/665148934284541952/v2" data-did="a9e9938d97373d72767c44daf99c246992903307"  ><a href="https://www.tumblr.com/ajgutierr3z/665148934284541952/descarga-dle-apk">https://www.tumblr.com/ajgutierr3z/665148934284541952/descarga-dle-apk</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption>Imagen 13. Descarga del apk. fuente: Tumblr.</figcaption></figure>



<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="Un Hola Mundo en Androide desde el appinventor" width="960" height="540" src="https://www.youtube.com/embed/Arsh5KsvWIY?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
</div><figcaption>Vídeo 1. Creando la primera app para androide. Fuente: Youtube.</figcaption></figure>



<p>Por último se deja un vídeo esperando que sea más práctico para la creación de la primera app. Disfruten su práctica. Espero sus comentarios. No olviden que para ejecutar su app, su dispositivo móvil debe de tener habilitada la opción de desarrollo y en ajuste la de incluir / ejecutar  desde fuentes de terceros.</p>
<p>La entrada <a href="https://www.frexus.dev/articulo/mi-aplicacion-movil-y-no-se-por-donde-empezar/">Quiero programar un app móvil, pero no tengo compu.</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.frexus.dev/articulo/mi-aplicacion-movil-y-no-se-por-donde-empezar/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">410</post-id>	</item>
		<item>
		<title>El comercio, el internet y los dispositivos móviles.</title>
		<link>https://www.frexus.dev/articulo/el-comercio-el-internet-y-los-dispositivos-moviles/</link>
					<comments>https://www.frexus.dev/articulo/el-comercio-el-internet-y-los-dispositivos-moviles/#respond</comments>
		
		<dc:creator><![CDATA[Alfredo de Jesús Gutiérrez]]></dc:creator>
		<pubDate>Thu, 02 Sep 2021 20:03:07 +0000</pubDate>
				<category><![CDATA[articulo]]></category>
		<category><![CDATA[Comercio móvil.]]></category>
		<category><![CDATA[Programación Móvil]]></category>
		<guid isPermaLink="false">https://www.ajgutierrez.me/?p=392</guid>

					<description><![CDATA[<p>Desde tiempos muy ancestrales el ser humano ha sido de cierta forma siempre ha comercializado. Desde el clásico trueque , hasta el uso de sofisticados métodos de venta con pitch muy bien elaborados, con técnicas mercadológicas muy efectivas. El origen El truque, uno de los más antiguos medios de comercialización tan básico, que &#8220;consiste en el intercambio de un objeto por otro que tenga un valor igual al que se quiere cambiar&#8221;. Basados en esa premisa, el comercio como el dinero y los valores que se le da a cada objeto, para ser cambiado por un producto o servicio ha ido variando con el tiempo, creando mejores mecanismos de protección para ambas partes (comprador &#8211; vendedor). generando participación de terceras partes para completar un trato, esto es lo que realiza los bancos, instituciones mercantiles tan antiquísimas como el dinero mismo. Las instancias mercantiles permiten que puedas realizar transacciones con el dinero que tengas en sus bovedas, haciendo uso de sus convenios con entidades bursatiles mas grandes (visa, mastercard, american express) Si bien existen vestigios donde los antepasados usaban monedas brindando un tipo de valor y este dependía del tipo de reyno o de donde era construido tales monedas, llevadas en bolsas de piel por cada ser humano de la edad media donde podía intercambiarlo por comida, tierras u otros artículos. Y conforme se van avanzando en tecnología y ciencia, la manera de en que se realiza el comercio va cambiando actualmente se tiene desde el comercio electrónico, que parte de tiendas digitales donde ya no es necesario tener una local de manera física donde se pueda hacer el B2C, ahora ya desde un sitio web, seleccionas el producto, pagas y en cuestión de días lo tienes en la puerta de tu casa. El despliegue de la miniaturización del harddware ha permitido que los dispositivos móviles sean cada vez mas potentes y capaces de realizar diversas actividades y procesos, al grado que es posible que un 50 % de las tiendas cuenten con una aplicación móvil donde puedan realizar algún tipo de pedido y ser recibido en la puerta de tu hogar. No solo el hardware dió paso al comercio electrónico en dispositivos móviles, actualmente los sitios web deben de ser responsivos, lo que significa que deben de verse igual en cualquier tipo de pantalla, los primeros pasos para que una tienda electrónica pude verse igual que en el computador de sobremesa, en un dispositivo móvil. Y con eso es posible solventar las necesidades de que el consumidor, se le brinde la experiencia de compra desde una terminal portatil.</p>
<p>La entrada <a href="https://www.frexus.dev/articulo/el-comercio-el-internet-y-los-dispositivos-moviles/">El comercio, el internet y los dispositivos móviles.</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Desde tiempos muy ancestrales el ser humano ha sido de cierta forma siempre ha comercializado. Desde el clásico <span style="text-decoration:underline;"><em>trueque </em></span>, hasta el uso de sofisticados métodos de venta con pitch muy bien elaborados, con técnicas mercadológicas muy efectivas.</p>



<h4 class="wp-block-heading">El origen</h4>



<p>El truque, uno de los más antiguos medios de comercialización tan básico, que &#8220;consiste en el intercambio de un objeto por otro que tenga un valor igual al que se quiere cambiar&#8221;. Basados en esa premisa, el comercio como el dinero y los valores que se le da a cada objeto, para ser cambiado por un producto o servicio ha ido variando con el tiempo, creando mejores mecanismos de protección para ambas partes (comprador &#8211;  vendedor). generando participación de terceras partes para completar un trato, esto es lo que realiza los <em>bancos</em>, instituciones mercantiles tan antiquísimas como el dinero mismo.</p>



<p>Las instancias mercantiles permiten que puedas realizar transacciones con el dinero que tengas en sus bovedas, haciendo uso de sus convenios con entidades bursatiles mas grandes (visa, mastercard, american express)</p>



<p>Si bien existen vestigios donde los antepasados usaban monedas brindando un tipo de valor y este dependía del tipo de reyno o de donde era construido tales monedas, llevadas en bolsas de piel por cada ser humano de la edad media donde podía intercambiarlo por comida, tierras u otros artículos. </p>



<p>Y conforme se van avanzando en tecnología y ciencia, la manera de en que se realiza el comercio va cambiando actualmente se tiene desde el comercio electrónico, que parte de tiendas digitales donde ya no es necesario tener una local de manera física donde se pueda hacer el B2C, ahora ya desde un sitio web, seleccionas el producto, pagas y en cuestión de días lo tienes en la puerta de tu casa.</p>



<p>El despliegue de la miniaturización del harddware ha permitido que los dispositivos móviles sean cada vez mas potentes y capaces de realizar diversas actividades y procesos, al grado que es posible que un 50 % de las tiendas cuenten con una aplicación móvil donde puedan realizar algún tipo de pedido y ser recibido en la puerta de tu hogar.</p>



<p>No solo el hardware dió paso al comercio electrónico en dispositivos móviles, actualmente los sitios web deben de ser responsivos, lo que significa que deben de verse igual en cualquier tipo de pantalla, los primeros pasos para que una tienda electrónica pude verse igual que en el computador de sobremesa, en un dispositivo móvil. Y con eso es posible solventar las necesidades de que el consumidor, se le brinde la experiencia de compra desde una terminal portatil.</p>
<p>La entrada <a href="https://www.frexus.dev/articulo/el-comercio-el-internet-y-los-dispositivos-moviles/">El comercio, el internet y los dispositivos móviles.</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.frexus.dev/articulo/el-comercio-el-internet-y-los-dispositivos-moviles/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">392</post-id>	</item>
		<item>
		<title>La computadora y la portabilidad</title>
		<link>https://www.frexus.dev/articulo/la-computadora-y-la-portabilidad/</link>
					<comments>https://www.frexus.dev/articulo/la-computadora-y-la-portabilidad/#respond</comments>
		
		<dc:creator><![CDATA[Alfredo de Jesús Gutiérrez]]></dc:creator>
		<pubDate>Fri, 27 Aug 2021 22:59:50 +0000</pubDate>
				<category><![CDATA[articulo]]></category>
		<category><![CDATA[#Programacion]]></category>
		<category><![CDATA[Básicos]]></category>
		<category><![CDATA[Conceptos]]></category>
		<category><![CDATA[Programación Móvil]]></category>
		<guid isPermaLink="false">https://www.ajgutierrez.me/?p=380</guid>

					<description><![CDATA[<p>El ser humano por su naturaleza siempre busca dejar una manera en que se pueda comunicar con sus semejantes, Ejemplo de ello son todos los vestigios de civilizaciones anteriores, desde las pinturas, dibujos o símbolos encontrados en las cavernas. Pero esa misma necesidad de comunicación ha llevado a la raza humana a crear tecnología que permita cada vez comunicarse con el resto de su igual. Sea para bien o para mal. Ejemplo de ello se tiene todos los avances tecnológicos y científicos que se llevaron acabo durante las distintas guerras mundiales. Haciendo un breve recorrido de la historia. Se puede rescatar la creación del Handie Talkie H12-16, un equipo militar con banda de frecuencias por debajo de los 600 kHz. Eso fue al rededor del año 1940. Desde esa fecha no hubo otro avance tan significativo hasta 1955; cuando Ericsson comercializó el Mobile Telephone System A (MTA) phone, un ‘móvil’ que pesaba 40 kilogramos y que se instalaba como los dispositivos de Bell en automóviles. Como curiosidad, se puede decir que tuvo un total de 125 usuarios hasta 1967. En Abril 1973. Cuando, Motorola, Martin Cooper, desde una calle de Nueva York contactó con su mayor rival en el sector, Joel Engel de los Bell Labs de AT&#38;T, con el ‘zapatófono’. Paso una década, más de quince años de investigación y una inversión de 100 millones de dólares hasta que en 1983, Motorola, culminó el proyecto, lanzando y considerado como el ‘primer teléfono móvil de la historia’: el Motorola Dynatac 8000x (Dynamic Adaptive Total Area Coverage). Su autonomía era de solo una hora en conversación y costaba 4.000 dólares de la época. Aún así fue todo un éxito y en su primer año vendió 300.000 unidades. Motorola, continuó innovando y en 1989 lanzó el Motorola MicroTAC, la versión reducida en tamaño y avanzada en autonomía del primer móvil Dynatac 8000x. Las primeras versiones eran de teléfonos analógicos antes de la llegada de GSM. Una de sus peculiaridades que se usaron en las siguientes décadas fue un nuevo e innovador diseño, donde el portavoz se doblaba sobre el teclado. Después aparece el Apple Newton Message Pad, muy criticado por su reconocimiento de voz. Fue mejorado en modelos posteriores. Descontinuado en 1998. En 1994, desde Finlandia, llegó el Nokia Mobira Talkman, primer teléfono portátil de la compañía. El Talkman era una versión reducida de éste que intentaba aprovechar las limitaciones del Motorola Dynatac 8000x a costa de tener que cargar una mochila que incluía una batería de tamaño gigantesco, muestra de las limitaciones de la época. Costaba 4.500 euros. En 1996 el primer teléfono móvil que hacía honor a su nombre y el primero en forma de concha el Motorola StarTAC (clamshell), ya que se doblaba por la mitad, facilitando su transporte en un formato tan compacto como innovador para la época. No fue el mejor desarrollo finlandés pero se hizo muy popular al aparecer en la película Matrix. Famoso por su peculiar tapa contaba con innovaciones como la capacidad de actualizar su firmware vía OTA (Over The Air). Costaba 1.000 dólares. Tras un año de rumores y después de arrasar en la industria de la música con los iPod, el 9 de enero de 1997 presentó el primer smartphone de Apple iPhone. Un terminal que revolucionó por completo la industria de las telecomunicaciones y también la de la computación abriendo la actual era de la movilidad. Se considera como el primer ‘smartphone’ del mercado.Los usuarios podían abrir el 9000i de forma horizontal para acceder a una amplia pantalla LCD y un teclado QWERTY completo. Con capacidades PDA, podía enviar y recibir faxes, mensajes de texto y correo electrónico, y también un limitado acceso a la Web a través de mensajes SMS de 160 caracteres. Uno de los más avanzado de la época aunque tenía problemas de cobertura en algunas regiones al no incluir antena exterior. Por primera vez un móvil estaba destinado al público juvenil por su precio contenido, la inclusión de juegos como Snake, carcasas intercambiables y tonos de llamada personalizables. Vendió 150 millones de unidades, el más popular de la década. Nace BlackBerry OS, un sistema operativo móvil de código cerrado desarrollado por BlackBerry escrito en Java y C ++. Aunque RIM se había creado en 1999, este fue su primer teléfono inteligente al integrar soporte de datos móvil. Gracias a dicha característica, y su teclado, disponía de funciones de agenda personal, soporte SMS y para correo electrónico push. Pronto, las Blackberry se convirtieron en indispensables para el mercado profesional. AMD anunció los primeros productos de su línea móvil para el 2019, que abarca todos los segmentos de equipos portátiles: los procesadores móviles AMD Ryzen Serie 3000 de 2da generación para equipos portátiles ultradelgados y de gaming Es lanzado Swift, un lenguaje de programación multiparadigma creado por Apple enfocado en el desarrollo de aplicaciones para iOS y Mac OS X.</p>
<p>La entrada <a href="https://www.frexus.dev/articulo/la-computadora-y-la-portabilidad/">La computadora y la portabilidad</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>El ser humano por su naturaleza siempre busca dejar una manera en que se pueda comunicar con sus semejantes, Ejemplo de ello son todos los vestigios de civilizaciones anteriores, desde las pinturas, dibujos o símbolos encontrados en las cavernas.</p>



<p>Pero esa misma necesidad de comunicación ha llevado a la raza humana a crear tecnología que permita cada vez comunicarse con el resto de su igual. Sea para bien o para mal. Ejemplo de ello se tiene todos los avances tecnológicos y científicos que se llevaron acabo durante las distintas guerras mundiales.</p>



<p>Haciendo un breve recorrido de la historia. Se puede rescatar la creación del <em>Handie Talkie H12-16</em>, un equipo militar con banda de frecuencias por debajo de los 600 kHz. Eso fue al rededor del año <em>1940</em>. Desde esa fecha no hubo otro avance tan significativo hasta <em>1955</em>; cuando <em>Ericsson</em> comercializó el <em>Mobile Telephone System</em> A (<em>MTA</em>) <em>phone</em>, un <em>‘móvil’</em> que pesaba 40 kilogramos y que se instalaba como los dispositivos de Bell en automóviles. Como curiosidad, se puede decir que tuvo un total de 125 usuarios hasta 1967. En Abril 1973. Cuando, Motorola, Martin Cooper, desde una calle de Nueva York contactó con su mayor rival en el sector, Joel Engel de los Bell Labs de AT&amp;T, con el ‘zapatófono’. </p>



<p>Paso una década, más de quince años de investigación y una inversión de 100 millones de dólares hasta que en 1983, Motorola, culminó el proyecto, lanzando y considerado como el ‘<em>primer teléfono móvil</em> de la historia’: el Motorola Dynatac 8000x (Dynamic Adaptive Total Area Coverage). Su autonomía era de solo una hora en conversación y costaba 4.000 dólares de la época. Aún así fue todo un éxito y en su primer año vendió 300.000 unidades. Motorola, continuó innovando y en 1989 lanzó el Motorola MicroTAC, la versión reducida en tamaño y avanzada en autonomía del primer móvil Dynatac 8000x. Las primeras versiones eran de teléfonos analógicos antes de la llegada de GSM. Una de sus peculiaridades que se usaron en las siguientes décadas fue un nuevo e innovador diseño, donde el portavoz se doblaba sobre el teclado.</p>



<p>Después aparece el Apple Newton Message Pad, muy criticado por su reconocimiento de voz. Fue mejorado en modelos posteriores. Descontinuado en 1998. </p>



<p>En 1994, desde Finlandia, llegó el Nokia Mobira Talkman, primer teléfono portátil de la compañía. El Talkman era una versión reducida de éste que intentaba aprovechar las limitaciones del Motorola Dynatac 8000x a costa de tener que cargar una mochila que incluía una batería de tamaño gigantesco, muestra de las limitaciones de la época. Costaba 4.500 euros.</p>



<p>En 1996 el primer teléfono móvil que hacía honor a su nombre y el primero en forma de concha el <em>Motorola StarTAC </em> (clamshell), ya que se doblaba por la mitad, facilitando su transporte en un formato tan compacto como innovador para la época.</p>



<p>No fue el mejor desarrollo finlandés pero se hizo muy popular al aparecer en la película <em>Matrix</em>. Famoso por su peculiar tapa contaba con innovaciones como la capacidad de actualizar su firmware vía OTA (Over The Air). Costaba 1.000 dólares.</p>



<p>Tras un año de rumores y después de arrasar en la industria de la música con los iPod, el 9 de enero de 1997 presentó el primer smartphone de Apple iPhone. Un terminal que revolucionó por completo la industria de las telecomunicaciones y también la de la computación abriendo la actual era de la movilidad.</p>



<p>Se considera como el primer ‘smartphone’ del mercado.Los usuarios podían abrir el 9000i de forma horizontal para acceder a una amplia pantalla LCD y un teclado QWERTY completo. Con capacidades PDA, podía enviar y recibir faxes, mensajes de texto y correo electrónico, y también un limitado acceso a la Web a través de mensajes SMS de 160 caracteres.</p>



<p>Uno de los más avanzado de la época aunque tenía problemas de cobertura en algunas regiones al no incluir antena exterior. Por primera vez un móvil estaba destinado al público juvenil por su precio contenido, la inclusión de juegos como Snake, carcasas intercambiables y tonos de llamada personalizables. Vendió 150 millones de unidades, el más popular de la década.</p>



<p>Nace BlackBerry OS, un sistema operativo móvil de código cerrado desarrollado por BlackBerry escrito en Java y C ++.</p>



<p>Aunque RIM se había creado en 1999, este fue su primer teléfono inteligente al integrar soporte de datos móvil. Gracias a dicha característica, y su teclado, disponía de funciones de agenda personal, soporte SMS y para correo electrónico push. Pronto, las Blackberry se convirtieron en indispensables para el mercado profesional.</p>



<p>AMD anunció los primeros productos de su línea móvil para el 2019, que abarca todos los segmentos de equipos portátiles: los procesadores móviles AMD Ryzen Serie 3000 de 2da generación para equipos portátiles ultradelgados y de gaming</p>



<p>Es lanzado Swift, un lenguaje de programación multiparadigma creado por Apple enfocado en el desarrollo de aplicaciones para iOS y Mac OS X.</p>



<p></p>
<p>La entrada <a href="https://www.frexus.dev/articulo/la-computadora-y-la-portabilidad/">La computadora y la portabilidad</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.frexus.dev/articulo/la-computadora-y-la-portabilidad/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">380</post-id>	</item>
		<item>
		<title>Por si quieres programar y solo tienes un smartphone</title>
		<link>https://www.frexus.dev/articulo/por-si-quieres-programar-y-solo-tienes-un-smartphone/</link>
					<comments>https://www.frexus.dev/articulo/por-si-quieres-programar-y-solo-tienes-un-smartphone/#respond</comments>
		
		<dc:creator><![CDATA[Alfredo de Jesús Gutiérrez]]></dc:creator>
		<pubDate>Thu, 27 Aug 2020 10:27:09 +0000</pubDate>
				<category><![CDATA[articulo]]></category>
		<category><![CDATA[Lenguaje de programación]]></category>
		<category><![CDATA[Programación Móvil]]></category>
		<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">http://www.ajgutierrez.me/?p=100</guid>

					<description><![CDATA[<p>Con la nueva modalidad de clases a distancia. Gran parte de los estudiantes solo cuentan con un teléfono inteligente. Y se topan con limitantes de hardware o software (este último porque no se puede ejecutar en el móvil). No pueden ir a ciber café , ya que en algunos casos no deja. Instalar software adicional o tiene que instalarlo cada vez que usa el equipo o tiene un costo adicional. La ventaja de programar con lenguaje de software libre es que algunos pueden correrse en un móvil inteligente. Tal es el caso de Python un lenguaje de programación de alto nivel de tipo script que permite programar desde una terminal móvil. Para lograr esta travesía hay que instalar una aplicación que de llama termux, esta es una consola de linux la descargas se instala y listo dejo a continuación el enlace de descarga de termux https://play.google.com/store/apps/details?id=com.termux Una vez que esté instalado termux teclea la palabra &#8220;Python&#8221; (sin comillas) te mandara un error de que no tiene instalado el paquete y deberás teclear lo siguiente: pkg install python pulsas la tecla enter y esperas a que se dedcsrgue, se instale y listo. Después de que se instala, ¿Que es lo que sigue? Bueno lo que sigue es ejecutar el intérprete de python. ¿Cómo lo ejecutamos? Bien, para ello estando en termux, (después de que se haya instalado Python) se va a teclear la palabra &#8220;Python&#8221; (sin las comillas) y notarás que el promt de la terminal cambio de signo de dólar ($) a tres mayores que (&#62;&#62;&#62;) eso indica que el intérprete de python se está ejecutando. Para darte la bienvenida al intérprete de python desde una terminal móvil escribe lo siguiente print (&#8220;Bienvenido a Python desde el móvil&#8221;) cuando termines de escribirlo pulsa enter y la siguiente línea verás como resultado la impresión de la frase &#8220;Bienvenido a Python desde el móvil&#8221; claro sin las comillas A continuación les dejo un video de la instalación de termux, instalación de Python y su ejecución. Te llevarás menos de seis minutos. Video de instalación y ejecución de termux y python</p>
<p>La entrada <a href="https://www.frexus.dev/articulo/por-si-quieres-programar-y-solo-tienes-un-smartphone/">Por si quieres programar y solo tienes un smartphone</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Con la nueva modalidad de clases a distancia. Gran parte de los estudiantes solo cuentan con un teléfono inteligente. </p>



<p>Y se topan con limitantes de hardware o software (este último porque no se puede ejecutar en el móvil).</p>



<p>No pueden ir a ciber café , ya que en algunos casos no deja. Instalar software adicional o tiene que instalarlo cada vez que usa el equipo o tiene un costo adicional.</p>



<p>La ventaja de programar con lenguaje  de software libre es que algunos pueden correrse en un móvil inteligente. Tal es el caso de Python un lenguaje de programación de alto nivel de tipo script que permite programar desde una terminal móvil.</p>



<p>Para lograr esta travesía hay que instalar una aplicación que de llama termux, esta es una consola de linux la descargas se instala y listo dejo a continuación el enlace de descarga de termux </p>



<p>https://play.google.com/store/apps/details?id=com.termux</p>



<p>Una vez que esté instalado termux teclea la palabra &#8220;Python&#8221; (sin comillas) te mandara un error de que no tiene instalado el paquete y deberás teclear lo siguiente: <em>pkg install python</em> pulsas la tecla enter y esperas a que se dedcsrgue, se instale y listo.</p>



<p>Después de que se instala, ¿Que es lo que sigue? Bueno lo que sigue es ejecutar el intérprete de python. ¿Cómo lo ejecutamos? Bien, para ello estando en termux, (después de que se haya instalado Python) se va a teclear la palabra &#8220;Python&#8221; (sin las comillas) y  notarás que el promt de la terminal cambio de signo de dólar ($) a tres mayores que (&gt;&gt;&gt;) eso indica que el intérprete de python se está ejecutando.</p>



<p>Para darte la bienvenida al intérprete de python desde una terminal móvil escribe lo siguiente <cite>print (&#8220;Bienvenido a Python desde el móvil&#8221;)</cite> cuando termines de escribirlo pulsa enter y la siguiente línea verás como resultado la impresión de la frase &#8220;<em>Bienvenido a Python desde el móvil&#8221; </em>claro sin las comillas </p>



<p>A continuación les dejo un video de la instalación de termux, instalación de Python y su ejecución. Te llevarás menos de seis minutos.</p>



<p><a rel="noreferrer noopener" href="https://youtu.be/pJyCd92vXLQ" target="_blank">Video de instalación y ejecución de termux y python</a></p>
<p>La entrada <a href="https://www.frexus.dev/articulo/por-si-quieres-programar-y-solo-tienes-un-smartphone/">Por si quieres programar y solo tienes un smartphone</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.frexus.dev/articulo/por-si-quieres-programar-y-solo-tienes-un-smartphone/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">100</post-id>	</item>
	</channel>
</rss>
