sin mensajes mientras conduzco - parte 1
TRANSCRIPT
-
7/26/2019 Sin Mensajes Mientras Conduzco - Parte 1
1/5
Este tutorial demuestra como una aplicacin puede responder automticamente a los mensajes de
texto. Crears una aplicacin que devuelve una respuesta cuando se recibe un mensaje de texto. La
idea para la aplicacin procede del estudiante Daniel Finnegan de la Universidad de San Francisco.
Para realizar este tutorial se supone que ya estas familiarizado con los conceptos bsicos de App
Inventor -- el uso del Diseador de componentes para construir una interfaz de usuario, y el uso del
Editor de bloques para especificar controladores de evento. Intenta realizar alguno de los tutoriales
basicosantes de continuar.
Conctate al sitio web de App Inventor y comienza un nuevo proyecto. Nmbralo
NoTextWhileDriving, y tambin el Title(ttulo) de la pantalla a NoTextWhileDriving. Abre el editor de
bloques y conctalo al telfono.
Disears la aplicacin para que enve una respuesta para cualquier mensaje recibido. Tambin
permitirs al usuario personalizar la respuesta enviada.
Este tutorial introduce los siguientes conceptos de App Inventor:
El componente Textingpara enviar textos y procesar los textos recibidos.
El componente base de datos TinyDBpara guardar el mensaje personalizado incluso cuandose cierra la aplicacin.
La interfaz de usuario para NoTextWhileDriving es simple: tiene una caja de texto para el mensaje de respuesta y un botn para enviar los cambios en el mensaje.
Tambin necesitars un componente Textingy un componente TinyDB, los cuales aparecern en el rea de componentes "no visuales". Mas abajo hay una tabla
con instrucciones detalladas para el diseo de los componentes, pero puedes tambin construirla a partir la la siguiente imagen de como deberan quedar:
Los componentes que se muestran a continuacin son los usados para crear la pantalla del diseador mostrada mas arriba. Arrastra cada componente desde la
Paletadentro del Viewery nmbralos como se especifica a continuacin:
Tipo de componente Grupo de la paleta Como lo llamars Propsito del componente
Label Basic PromptLabel Informa al usuario sobre el funcionamiento de la aplicacin
1 de 5
-
7/26/2019 Sin Mensajes Mientras Conduzco - Parte 1
2/5
TextBox Basic MessageTextbox El usuario introducir su respuesta personalizada aqu
Button Basic SubmitResponseButton El usuario hace clic aqu para enviar la respuesta a la base de datos
Texting Social Texting1 El componente que procesar los textos
TinyDB Basic TinyDB1 El componente que almacenar la respuesta en la base de datos
Ajusta las propiedades de los componentes del siguiente modo:
Cambia la propiedad Textde PromptLabela "The text below will be sent in response to all texts while this app is running." (El texto a continuacin se enviar
como respuesta a todos los mensajes mientras la aplicacin est funcionando)
Cambia la propiedad Textde MessageTextboxa "I'm driving right now, I'll contact you shortly". (Estoy conduciendo, te llamar en breve)
Cambia la propiedad Textde SubmitResponseButton a "Modify Response". (Modificar la respuesta)
NoTextWhileDriving tiene los siguientes comportamientos:
1. Cuando se recibe un mensaje, el texto introducido en MessageTextboxse enva como mensaje de texto en respuesta al remitente.
2. Cuando el usuario modifica el mensaje personalizado en MessageTextboxy hace clic en SubmitResponseButton , el nuevo mensaje se guarda de forma
persistente en la base de datos del telfono.
3. Cuando se inicia la aplicacin, el mensaje personalizado se carga desde la base de datos a MessageTextbox.
Cuando se recibe un mensaje en el telfono, el evento Texting.MessageReceivedes iniciado. Tu aplicacin debe manejar este evento ajustando las propiedades
PhoneNumbery Messagedel componente Textingapropiadamente y enviar texto de respuesta.
Necesitars los siguientes bloques:
Tipo de bloque Cajn Propsito
Texting1.MessageReceived Texting1 el controlador de evento que se activa cuando se recibe un mensaje de texto
set Texting1.PhoneNumber to Texting1 Ajusta la propiedad PhoneNumberantes de enviar.
value number My Definitions este es el nmero de telfono de la persona que envi el mensaje
set Texting1.Message to Texting1 ajusta la propiedad Messageantes de enviar
MessageText.Text MessageText Es el mensaje que el usuario ha introducido.
Texting1.SendMessage Texting Enva el mensaje.
Los bloques deben quedar as:
Cuando el telfono recibe cualquier mensaje, el evento Texting1.MessageReceivedes activado. El nmero de telfono del remitente est en el argumento number,
y el mensaje del remitente en el argumento messageText.
En respuesta, la aplicacin enva un mensaje de texto al remitente. Para enviar un mensaje, la aplicacin ajusta las dos propiedades clave del componente Texting:
la propiedad PhoneNumbery la propiedad Message. Texting.PhoneNumberse ajusta al nmero del remitente, y Texting.Messagese ajusta al mensaje de
MessagetextBox-- este puede ser, "I'm driving right now, I'll contact you shortly.", (Estoy conduciendo, te llamar en breve) por defecto, o el usuario tambin podr
modificarlo. Una vez que estas propiedades estn ajustadas, se llama a Texting1.SendMessagepara enviar el mensaje de respuesta.
Prueba el comportamiento.Necesitaras un segundo telfono para probar este comportamiento. Desde el segundo telfono, enva
un mensaje de texto al telfono que est ejecutando la aplicacin. Recibe el segundo telfono el mensaje de respuesta? Si esto
funciona, prueba a modificar el mensaje de respuesta y enviar otro mensaje desde el segundo telfono. Se ha enviado la nueva
respuesta?
Hasta ahora la aplicacin funciona, pero si la cierras y la vuelves a abrir el mensaje que has personalizado se habr perdido. Para hacer las cosas de un modo mas
conveniente, almacena la respuesta personalizada que el usuario ha introducido en una base de datos usando el componente TinyDB.
TinyDBte proporciona dos bloque: StoreValuey GetValue. De esta forma te permite almacenar y etiquetar una pieza de informacin, que mas tarde podrs
recuperar.
2 de 5
-
7/26/2019 Sin Mensajes Mientras Conduzco - Parte 1
3/5
Necesitars los siguientes bloques para almacenar la respuesta almacenada:
Tipo de bloque Cajn Propsito
SubmitResponseButton.Click SubmitResponseButton El usuario hace clic en este botn para guardar el mensaje de respuesta
TinyDB1.StoreValue TinyDB1 almacena el mensaje de respuesta en la base de datos del telfono
text ("responseMessage") Text es usado como etiqueta para los datos
MessageTextbox.Text MessageTextbox el mensaje de respuesta introducido por el usuario est aqu
Los bloques deben quedar as:
Cuando el usuario hace clic en SubmitResponseButton , la aplicacin almacena la respuesta introducida en la base de datos. El texto "responseMessage" es usado
como etiqueta para identificar especficamente la informacin -- mas tarde usars esa etiqueta para recuperar el mensaje desde la base de datos.
Programa el controlador de evento Screen1.Initializepara que la respuesta personalizada que se ha almacenado sea recuperada desde la base de datos y
colocada en MessageTextbox. Comprueba los datos recuperados para asegurarte que contienen "algo" -- despus de todo, la primera vez que se use la aplicacin,
la base de datos no tendr ningn mensaje guardado. Si hay un mensaje guardado, colcalo en MessageTextboxpara que el usuario pueda verlo y que pueda ser
usado para responder a los mensajes entrantes.
Necesitars los siguientes bloques:
Tipo de bloque Cajn Propsito
def variable("response") Definit ions Una variable temporal para almacenar los datos recuperados
text (vacio) Text E l valor inicial de la variable puede ser cualquier cosa
Screen1.Initialize Screen1 Este es activado cuando se inicia la aplicacin
set response to My Definitions cambiaras la variable al valor recuperado de la base de datos
TinyDB1.GetValue TinyDB1 toma la respuesta de texto almacenada en la base de datostext("responseMessage") Text colcalo en la ranura tag de GetValue, asegurate de que el texto es el mismo que se us en StoreValue above
if test Control para preguntar si el valor recuperado contiene algn texto
>block Math comprueba si la longitud del valor recuperado es > (mayor que) 0
length text Text comprueba si la longitud del valor recuperado es mayor que 0
global response My Definitions esta variable mantiene el valor devuelto desde GetValue
number(0) Math para comparar con la longitud de la respuesta
set MessageTextbox.Text to MessageTextbox si recuperamos algo, lo coloca en MessageTextbox
global response My Definitions esta variable mantiene el valor devuelto desde GetValue
Los bloques deben quedar as:
Cuando se inicia la aplicacin, el evento Screen1.Initialize es activado. La aplicacin llama a la base de datos TinyDB1.GetValuecon la etiqueta (tag)
"responseMessage"-- la misma etiqueta usada cuando almacenaste la entrada del usuario anteriormente. El valor resultante se coloca en la variable de respuesta
(response).
La variable de respuesta se usa para que el valor devuelto por la base de datos pueda ser comprobado. Si tiene una longitud de 0, entonces no hay una entrada en
3 de 5
-
7/26/2019 Sin Mensajes Mientras Conduzco - Parte 1
4/5
la base de datos con la etiqueta "responseMessage"-- algo que ocurrir la primera vez que se use esta aplicacin. Pero si el mensaje es mayor que 0, la aplicacin
sabe que una respuesta ha sido almacenada anteriormente, y el valor devuelto puede ser colocado en MessageTextBoxlo cual podr ver el usuario y ser usado
como respuesta en los mensajes enviados.
Prueba la aplicacin.Introduce una nueva respuesta en MessageTextboxy haz clic en SubmitResponseButton . Entonces
reinicia la aplicacin haciendo clic en el botn Restart Appen el Editor de bloques. Esto har que la aplicacin se reinicie tal como
lo hara cuando el usuario cierra y vuelve a abrir la aplicacin mas tarde. Aparece el mensaje personalizado que has introducido?
Una vez que tengas la aplicacin No Text While Driving funcionando, puede que quieras explorar algunas variaciones. Por ejemplo.
Crea una versin que lea en voz alta los mensajes recibidos. Necesitar usar el componente TextToSpeech.
Crea una versin que permita al usuario crear mensajes personalizados para nmeros en particular.
Crea una versin que enve respuestas personalizadas basndose en la localizacin del usuario (por ejemplo, Estoy en unan iglesia...)
Estas son algunas de las ideas examinadas en este tutorial:
El componente Textingpuede ser usado tanto para enviar mensajes como para procesar los que se reciben.
El componente TinyDBse usa para almacenar informacin de modo persistente, en la base de datos del telfono, para que est disponible cada vez que se
inicie la aplicacin.
Escanea el siguiente cdigo Qr con tu telfono para instalar y ejecutar la aplicacin de ejemplo.
Si te ha gustado trabajar con este ejemplo en App Inventor, descarga el cdigo fuentea tu computadora, despues abre App Inventor, ve a la pgina My Projects, y
elige More Actions | Upload Source.
Google agradece al Profesor David Wolber, Profesor de Ciencias de la Computacin en la Universidad de San Francisco, el desarrollo de
este tutorial.
4 de 5
-
7/26/2019 Sin Mensajes Mientras Conduzco - Parte 1
5/5
Este trabajo est bajo una licencia Creative Commons Attribution-NonCommercial 3.0 Unported License.
El trabajo original de Google se ha modificado
El trabajo modificado se ha traducido del ingles al espaol por Pepe Corcn
Acerca de | Privacidad | Condiciones