sin mensajes mientras conduzco - parte 1

Upload: juanrodriguez

Post on 02-Mar-2018

214 views

Category:

Documents


0 download

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