Documentos de Académico
Documentos de Profesional
Documentos de Cultura
IV
APLICACIONES
Antes de querer desarrollar grandiosas aplicaciones es realmente importante
entender ciertos conceptos de funcionamiento, conceptos respecto al diseño de la
calculadora que aclararán la idea de cómo debe ser el desarrollo de una App y
cómo es que el usuario espera que funcione.
Conocimientos requeridos
La creación de Apps en la calculadora es el paso casi inmediato tras entender
conceptos básicos para el desarrollo de programas, puesto que son exactamente
lo mismo con la diferencia que se adiciona características de manipulación que
mejoran enormemente la experiencia del usuario. Se necesita comprender lo
siguiente para seguir adecuadamente el hilo de este artículo.
• Anidación de funciones
• Ámbito de variables
• Estructura principal de un programa
• Pautas para crear una Interfaz gráfica (opcional)
Creando una App
Una aplicación puede ser desarrollada solo agregando algunas funciones a una
App integrada, o reemplazando su contenido con interfaces integradas/propias,
cual sea la forma el punto es el mismo, crear tu propia App. Modificar una App
equivale a modificar el programa de aplicación que se encarga de redefinir teclas
específicas y también el comportamiento al entrar por primera vez a la App, este
código se almacena automáticamente en un archivo con extensión .hpappprgm.
Comandos dedicados
Definiendo una función llamada Info se logra el mismo efecto mostrado, por
ejemplo mostrando una caja de texto con MSGBOX con el nombre, versión y fecha
de nuestra App.
En la versión FW 11226 y posiblemente en otras versiones, esta redefinición no
surge efecto.
El toque final para redefinir el flujo de nuestra App es definir la función START
quien se ejecutará cada vez que se ingrese a la App mediante la Biblioteca de
aplicaciones o el comando STARTAPP.
Funciones exportadas
Al duplicarse una App, solo se copia una especie de identificador, los datos de
configuración y los datos que contenga, es recomendable restaurar una App
antes de copiarla como base para evitar datos inútiles. No se esta duplicando
toda la App como su codificación, eso es algo que se encuentra integrado en el
firmware, se podría decir que solo se logra copiar una cáscara que reutiliza el
código interno de la App integrada. De acuerdo a lo descrito, el nuevo ícono no se
esta duplicando, solo esta usando el mismo ícono de la App base, los únicos
íconos duplicados son los íconos nuevos (icon.png).
App vacía
Si se elige a la App vacía (Ninguno) como App base, el programador obtendrá una
App limpia para trabajarla desde 0, se asegura de poseer la App base más ligera
respecto al resto, y obviamente no arrastrará variables/funciones residuales que sí
poseen sus compañeras y que posiblemente no nos sean útiles. La App vacía fue
implementada a partir del firmware 2018 01 24 (13333).
Los elementos que conserva este tipo de App para asegurar su correcto
funcionamiento son la vista de Configuración simbólica que toda App requiere
poseer para que el usuario realice sus configuraciones personales, y las variables
de aplicación que permiten al programador manipular la aplicación como AAngle,
AFormat, ADigits, AComplex, AFiles, AFilesB, DelAFiles, ANote, AProgram, AVars
y DelAVars.
La elección
Por último no olvidarnos del menú Vista, redefinirlo por lo menos una vez porque
usualmente la App base trae consigo su propio menú Vista que puede acceder a
las vistas nativas, opción que no sería adecuada. Esto no será necesario si se
eligió una App base adecuada (que originalmente no tiene esta opción).
Depuración
Como una aplicación no se ejecuta igual que los programas, no tenemos forma de
identificar el tipo de error por compilación o ejecución de forma simple, para ello es
recomendable usar funciones externas (un programa aparte), de esa manera se
trabaja tranquilamente sobre el programa externo que al finalizar puede ser
fusionado con la App (permitiendo usar PrimeMom).
Codificar la App no directamente sobre las funciones de las vistas nos facilita crear
el enlace que debe existir entre las vistas, ya que no termineramos la ejecucción
del anidado de funciones pero sí se eliminará toda variable local que ya no
utilizaremos (problema de funciones recursivas), permitiéndonos ejecutar
nuevamente las funciones de forma limpia.
Ícono
Esta funcionalidad resulta ser la más atractiva para los usuarios y programadores
principiantes, de todas formas no debemos subestimar la creación de esta
característica, puesto que muchas veces se requiere de conocimientos muy
cercanos al diseño gráfico para obtener un resultado deseado.
• Mejora el acceso
• Agregar un ícono representativo (su diseño es un trabajo adicional)
• Tiene un flujo continuo de ejecución (como en las Apps integradas)
• Una app no retorna valor a través de sus vistas o al iniciarse, las funciones
principales usualmente son locales, por lo que no se puede acceder a ellas sino es
con las teclas Symb, Plot y Num; por eso se aconseja programar la App primero
desde un programa externo para poder detectar los errores de ejecución, al final se
podrá acoplar el código dentro de la App.
Observación
Los beneficios de una App sobre un programa convencional es notorio, sin
embargo crear todo programa como una App es contradictorio a nivel de
optimización; es de acuerdo a la estimación del nivel de importancia y frecuencia
de uso de un programa, que decidimos si es realmente necesario amontonarlo o
sobrecargar la Biblioteca de aplicaciones; debemos evitar la idea de abandonar o
dejar de lado el uso del catálogo de programas.
Las variables como Xmin pueden ser manipulados desde un programa, por lo que
es posible usar coordenadas cartesianas en programas si se realiza un
adecuado respaldo y restaurado de sus valores. La desventaja de intentar usar el
sistema cartesiano desde un programa recae sobre la inexistencia de estas
variables en muchas Apps, el efecto es el error al intentar compilar el programa.
No es recomendable intentar usar el sistema cartesiano incorporado al desarrollar
programas, la alternativa es tratar los datos dando la escala y posicionamiento
deseado.
En las aplicaciones donde no existen estas variables, sí es posible usar
coordenadas cartesianas pero no manipularlas, la relación es 1 unidad = 10
píxeles, la intersección de los ejes se aproxima al centroide de la pantalla
obviando la zona de menú.
Aclarando otro punto respecto a gráficos, es que las vistas redefinidas no traen
consigo la asignación de títulos (barra superior con hora y batería) como Vista
simbólica NuevaApp o cualquier variación diferente a lo ya conocido sobre
interfaces integradas y el concepto de la variable de gráfico G0 como gráfico
estático.
Las variables de aplicación son públicas, las podemos encontrar desde el cuadro
de herramientas/Aplicaciones/NuevaApp. Se eliminan con DelAVars.
Archivos en HP Prime: AFiles, AFilesB
La gestión de archivos fue implementado a partir del firmware 2015 04 27 (7820)
mediante la adición de las variables de aplicación AFiles, AFilesB y DelAFiles que
como se puede revisar en la ayuda de la calculadora, pueden crear archivos si no
existen, modificarlos, consultar sus bytes y eliminar el archivo especificado.
Gracias a esa implementación se permite crear con facilidad archivos, los cuales
se llenan con datos que provienen de cualquier variable que escojamos, luego
estos archivos pueden ser reutilizados en cualquier momento. Debemos entender
como principio de programación que los programas siempre se ejecutan con los
datos alojados en la memoria RAM (32MB), y los archivos se encuentra en la
unidad de almacenamiento (memoria flash 256MB), por esa razón debemos cargar
su contenido a variables y usar esos datos con normalidad.
La variable AFilesB permite manipular los bytes del archivo, si solo usamos el
nombre del archivo retornará la cantidad de bytes que contiene el archivo (Tamaño
de archivo en bytes). Usando la variable AFilesB podemos inspeccionar los Tipos
de datos: Bytes de estrutura que nos ayudaría a exportar nuestros archivos a otros
sistemas.
La posibilidad de trabajar con archivos, llega a ser confuso si no se comprende el
flujo de uso, volver a recordar que un archivo pertenece a la unidad de
almacenamiento (flash memory) y la ejecución de programas se realiza siempre
desde la memoria RAM.
En este ejemplo se uso el logo de Facebook, que tenía transparencias y había sido
previamente comprimiendo en Photoshop, el tamaño se reduce
considerablemente, cuya causa puede ser la reducción de colores y bytes por
canal. El logo aún puede ser comprimido a un punto cómodamente visible con
programas externos como Riot.
Las aplicaciones deben prestar un flujo contínuo y confiable, por esa razón
debemos realizar los preparativos para no tener pérdida de datos tras la
recompilación del código de la aplicación; el código es recompilado al enviar la App
a una calculadora nueva, al dar guardar desde el Kit de conectividad si tenemos
abierta la App, por último cuando se visualiza el código desde el catálogo de
programas.
*Los datos de aplicación son todo dato modificable que posee una app integrada
como: la expresión F1 de App Función, definición de un círculo de App Geometría,
las celdas existentes de App Hoja de cálculo, Result de App Inferencia, las listas
C1 y C2 de App Var 2 estadística, incluso los datos que aparentan estar vacíos
poseen un valor que los identifica en esa condición. En cuanto a datos de
configuración de vistas tenemos el formato de número, sistema angular, mostrar
ejes, rango de ejes o el nombre del archivo que será usado como fondo en la Vista
de gráfico, etc.