Aprenderás consejos para depurar el código y corregir errores en MIT App Inventor
Estas son las actividades para esta lección:
¿QUÉ ES LA DEPURACIÓN?
La depuración es el proceso que utilizan los programadores para averiguar por qué su código no funciona, y luego arreglarlo para que funcione.
El término depuración procede de la almirante Grace Hopper, pionera de la informática. Estaba trabajando en el ordenador Mark II de la Universidad de Harvard en los años 40 y una polilla se quedó atascada en el ordenador e impidió que funcionara.
Al deshacerse de la polilla, dijo que estaban "depurando" el sistema. Los programadores utilizan ahora este término para referirse a "corregir errores en mi código".
CONSEJOS DE PROGRAMACIÓN
La depuración puede ser a menudo la parte más frustrante y lenta de programación, por lo que es muy importante dejar tiempo suficiente para ello.
¡Y también tener paciencia!
TROZOS PEQUEÑOS
A veces, los programadores tienen la tentación de programar toda la aplicación de una sola vez y luego probarla.
¡¡¡No caigas en esa tentación!!!
Si algo no funciona correctamente, lo cual es probable, es difícil saber por dónde empezar siquiera para intentar solucionar el error.
Divida tu código de programación en pequeños fragmentos.
Haz que una cosa funcione antes de empezar con la siguiente.
Codifica un poco, prueba un poco, confirma que funciona, luego codifica un poco más, prueba un poco más, etc.
Por ejemplo, si tu aplicación tiene 5 botones que hacen cosas diferentes,
- Codifica la acción para el primer botón
- A continuación, prueba para asegurarte de que funciona.
- Pasa al segundo botón
- Repite.
Es mejor arreglar el código en un sitio que volver atrás y arreglarlo en 5 sitios si hay un error en tu código.
CONTROL DE VERSIONES
Digamos que sigues la regla de los "trozos pequeños" y tienes una parte de tu aplicación construida y funcionando.
Añades un código nuevo y, de repente, todo deja de funcionar.
¡OH, NO!
Intentas borrar el nuevo código, pero tu aplicación sigue sin funcionar. No estás seguro de qué ha ido mal y desearías tener un botón de "deshacer".
Para evitar situaciones como ésta, puedes guardar versiones de tu aplicación a medida que consigas que las partes funcionen.
Así, si cometes un error y no sabes cómo arreglarlo, puedes volver a la última versión funcional que guardaste.
También puedes utilizar el control de versiones para experimentar con nuevas funciones sin preocuparte de romper tu aplicación en funcionamiento.
Hay dos formas de guardar diferentes versiones en App Inventor, utilizando "guardar como" y "punto de control".
El "Punto de control"guardará una copia con el nombre que le des, pero seguirás trabajando en la original. La idea es "checkpoint" esa versión que funciona y continuar tu desarrollo en la versión principal del proyecto.
La función "Guardar proyecto como" creará una copia del código en el que estás trabajando y lo guardará con un nuevo nombre. Cualquier edición que realices aparecerá en la nueva copia.
BLOQUES COLAPSABLES
Colapsar bloques es una forma de mantener tu código organizado, ya que tu espacio de trabajo de código empieza a llenarse de bloques.
Si haces clic con el botón derecho en un bloque, verás una opción para contraerlo.
Para volver a expandir tus bloques, haz clic con el botón derecho del ratón sobre ellos y selecciona en expandir bloque.
Los bloques colapsados comprimirán todo su código hasta una barra en tu pantalla.
Siguen funcionando igual que los bloques normales, sólo que ocupan menos espacio. Esto puede ser útil si tienes bloques que ya no necesitas editar y quieres limpiar tu pantalla.
DESACTIVAR BLOQUES
También puedes desactivar los bloques.
Permanecen en tu pantalla pero no se ejecutan en la aplicación.
Con los bloques desactivados, puedes probar tu aplicación sin determinados bloques de código. Puedes habilitarlos más tarde y se ejecutarán.
También puedes desactivar bloques que hayas utilizado sólo para pruebas, como las notificadores.
Hay dos formas de desactivar los bloques en App Inventor
Simplemente arrastrando bloques fuera de un bloque manejador de eventos los deshabilitará y evitará que se ejecuten. Como no forman parte de ningún evento, no hay forma de que se ejecuten. Siempre puedes volver a insertarlos para utilizarlos.
También puede hacer clic con el botón derecho en un bloque o grupo de bloques y elegir "Desactivar bloque". Los bloques aparecerán en gris para indicar que no se ejecutarán. De esta forma puedes desactivar un conjunto completo de bloques.
Para volver a habilitar los bloques, basta con hacer clic con el botón derecho del ratón y elegir "Habilitar bloque".
COMENTARIOS
Los programadores suelen dejar comentarios en su código para explicar lo que hace.
Los comentarios pueden ser útiles cuando otras personas están mirando tu código, como compañeros de equipo, mentoras y mentores, y jueces.
Los comentarios también pueden ser útiles si vuelves al código más tarde y has olvidado lo que hacen algunas partes.
Para añadir un comentario, haz clic con el botón derecho en los bloques y seleccione "Añadir comentario".
Después, aparecerá un signo de interrogación en la esquina del bloque y podrás añadir texto. Puedes ver el comentario haciendo clic en el signo de interrogación.
Consejo de los mentores
Buenas prácticas: Los comentarios son lo más útil en programación.
Ha habido muchas ocasiones en las que un programador ha codificado algo y luego se ha ido a dormir y ha vuelto a la mañana siguiente sin tener ni idea de lo que estaba haciendo la noche anterior. ¡Añade siempre comentarios!
It’s also a great way to check your knowledge, because if your coding blocks are easy to comment on then you must understand them really well! Another thing to be aware of is that <, >, =, ≤, ≥ are hard for students for the first time (and for programmers who are years into their careers). When we set a math statement to < when it should be ≤ this is called an “off by one” error and this is a problem that happens to developers with 20 years of experience 😛 It is a very popular problem so be on the lookout for that.
El mejor tipo de depuración es la depuración del patito de goma. Es cuando estás realmente atascada en tu código y no tiene sentido. Quieres tomarte un tiempo para hablarlo con otra persona y ver si puede detectar el problema, pero por desgracia no hay nadie cerca. Así que tienes un patito de goma en tu escritorio y le explicas el problema en voz alta a tu amigo pato. Pero tienes que hacerlo en términos muy sencillos para que lo entienda y, después, ¡tú misma encontrarás el problema! Todos mis compañeros de trabajo tenemos patos de goma en nuestras mesas y hacemos esto muy a menudo.
Preguntas orientativas para estudiantes: ¿Cuánto tiempo crees que tardan los programadores experimentados en depurar errores? Se podría pensar que lo hacen muy rápido, pero todos los grandes sitios web tienen páginas dedicadas a ver cuánto tiempo duran los errores(Facebook, por ejemplo) y también muestran si alguna de sus páginas está caída/rota y si la están depurando en ese momento(ejemplo de Facebook).
¿Cómo se encuentran los errores? (¡muchas, muchas pruebas!) ¿Cuántas pruebas crees que deberías hacer? ¿Cuántas pruebas deberías encargar a otras personas?
¿Cómo saber si has encontrado un error? A veces te pasas una eternidad haciendo clic en una imagen sólo para darte cuenta de que el botón en el que se supone que tienes que hacer clic está debajo de la imagen. ¿Es eso un error? Es una decisión de diseño del fabricante de la aplicación y ellos no creen que sea un error, pero tú sí.
Los consejos de los mentores se proporcionan gracias al apoyo de AmeriCorps.
CONSEJOS DE DEPURACIÓN
NOTIFICADORES Y ETIQUETAS
El componente notificador puede ayudarte a averiguar por qué tu código no funciona.
Para colocar un notificador en tu aplicación de App Inventor, arrástralo desde la paleta de la interfaz de usuario.
La forma más sencilla de utilizar el notificador es añadir bloques ShowAlert con información para que veas que ciertos bloques se han ejecutado (o no).
Además de los mensajes, puedes mostrar información como el valor de una variable o la posición de un ImageSprite.
También puedes añadir Etiquetas para mostrar información actual en tu aplicación.
Por ejemplo, es posible que desees conocer el valor de una variable cuando se producen determinados eventos durante la ejecución de la aplicación.
Puedes poner en Label.Text lo que quieras saber y se mostrará en tu aplicación.
Una vez que hayas depurado el error, puedes hacer que la etiqueta sea invisible o eliminarla por completo de tu aplicación.
HAZLO
La característica "Hazlo" es otra gran herramienta para la depuración.
Mientras pruebas en vivo tu aplicación, ya sea con un teléfono y la aplicación AI Companion, o con el emulador, tienes acceso a un nuevo comando, "Hazlo".
El comando aparece en gris hasta que te conectas a un teléfono o al emulador a través del menú conectar.
Do it te permite ejecutar un bloque sin tener que interactuar con la propia aplicación, para que puedas ver el valor actual de una variable o elemento.
Sólo tienes que arrastrar un bloque de variables "get global" y hacer clic con el botón derecho. Selecciona "Hazlo" en el menú desplegable y ese bloque de código se ejecutará.
Aparecerá un recuadro amarillo de hazlo encima del recuadro con el resultado. Esto también puede funcionar para cualquier propiedad del componente.
También puede utilizar Hazlo para cambiar algo en tu aplicación. Por ejemplo, puedes cambiar un elemento de una lista. Arrastra el bloque para hacerlo y selecciona Hazlo. No verás el resultado, pero la lista se actualizará en tu aplicación.
También puedes ejecutar un bloque de código existente en tu aplicación.
Por ejemplo, aquí los elementos ListView serán actualizados usando Hazlo. Esto se reflejará en la aplicación. El ListView mostrará los nuevos elementos establecidos con el comando Hazlo.
UTILIZAR LOS DATOS DE PRUEBA
Si tienes mucha información que utilizar en tu aplicación, puede ser útil utilizar datos de prueba. Los datos de prueba son un conjunto más sencillo y reducido de datos que puedes utilizar para asegurarte de que tu app funciona correctamente.
Supongamos que estás creando una aplicación que muestra los restaurantes cercanos. Utilizas Google Sheets para almacenar la información de los restaurantes.
Puedes empezar con uno o dos restaurantes de prueba y probar tu aplicación para asegurarte de que funciona.
Una vez que esté probado y funcione, puedes añadir el conjunto completo de datos del restaurante a tu hoja de Google.
CAMBIAR PROPIEDADES
Si estás probando en vivo tu aplicación, puedes cambiar el valor de una propiedad en el diseñador mientras ejecutas la aplicación y ver sus efectos.
A veces esto puede ayudar a descubrir un problema.
Por ejemplo, puedes estar programación un juego. La posición de un sprite no te parece correcta en tu teléfono cuando se está ejecutando.
Durante las pruebas en vivo, puedes
- Ir al diseñador
- cambiar los valores X e Y del sprite
- La posición del sprite en la pantalla de la aplicación en ejecución cambiará.
Utilízalo para comprobar y comprender las coordenadas de tu pantalla.
ACTIVIDAD 1: ARREGLA EL FALLO (BUG)
Corrección de errores en la aplicación del temporizador
- Carga la aplicación en App Inventor.
- Conéctate al emulador o al dispositivo para probar la aplicación.
- Try pressing Start without typing anything into the textbox. What happens?
- Prueba a introducir 0 o un número negativo para el número de segundos. ¿Qué ocurre?
- Corrige los errores mediante bloques condicionales
ACTIVIDAD 2: AÑADE UN COMENTARIO
Añada un comentario a su proyecto App Inventor
Añade al menos un comentario a tu aplicación explicando qué hace un grupo de bloques. Escoge un grupo de bloques que creas que es el más difícil de entender porque esos bloques probablemente serían los más difíciles de entender para otra persona, como un miembro del equipo.
REFLEXIÓN
Estos consejos pueden ayudarte a codificar tu aplicación móvil para tu proyecto de Technovation.
Pero recuerda...
REVISIÓN DE TÉRMINOS CLAVE
- Depuración - proceso que utilizan los programadores para averiguar por qué su código no funciona y solucionarlo.
- Control de versiones - guardar versiones de trabajo de tu aplicación a medida que avanzas
- Datos de prueba - un conjunto de datos más sencillo que puede utilizar para asegurarse de que tu aplicación funciona correctamente.
- Comentarios - texto que se incluye en el código para explicar lo que hace
RECURSOS ADICIONALES
Aquí tienes más recursos de depuración en App Inventor.