Desarrollo de aplicaciones móviles: Un caso de uso
¡Ah, la primavera! Los pájaros cantan, las flores florecen y el sol sale más temprano y se pone más tarde. Esa mayor cantidad de luz solar permite que los sistemas de generación de energía solar funcionen durante más horas, produciendo electricidad. A medida que se acerca el solsticio de verano, los sistemas de generación solar entran en su período más productivo del año.
Los propietarios de sistemas solares en las azoteas a menudo se sienten muy interesados en monitorear su rendimiento. El actor y comediante John Hodgman, por ejemplo, incluso moderó un debate sobre el seguimiento obsesivo de la producción de energía solar. Mi amiga Kasey también es una entusiasta de la energía solar. Cada vez que la veo, me cuenta sus últimas estadísticas de kilovatios-hora. La casa de Kasey está ubicada en un clima cálido y soleado, donde el aire acondicionado es su mayor consumo de electricidad. Ella instaló paneles solares en el techo de su casa a finales del mes pasado, y su sistema ha logrado generar suficiente energía durante los largos días de verano para compensar el consumo de su aire acondicionado.
Después de recibir la factura de la luz de agosto, Kasey llamó a la empresa instaladora de paneles solares para informarle de su éxito: el consumo eléctrico de su casa durante ese mes había sido cero. "Debo confesar que reviso los medidores todos los días para ver cómo está funcionando el sistema", le dijo Kasey al instalador.
"Todo el mundo lo hace", respondió el instalador. "Algunos usuarios incluso me dicen que revisan los medidores tres veces al día."
Kasey me preguntó si una aplicación móvil desarrollada con MobileTogether podría ser una herramienta útil para el seguimiento de su sistema de energía solar. "Podría ingresar las lecturas del medidor en mi teléfono", dijo. "Podría hacerlo todos los días, cuando saco al perro antes del desayuno."
Así es como comenzó nuestra colaboración en el desarrollo de aplicaciones móviles. El resultado es la aplicación MobileTogether, a la que llamamos "Herramienta de Energía Solar".

El sistema solar de Kasey incluye un software para reportar la cantidad de electricidad producida, pero eso es solo una parte de la ecuación. Al igual que muchos sistemas de generación solar residencial, la vivienda de Kasey está conectada a la red eléctrica mediante un sistema de facturación con compensación neta. Los paneles solares suministran energía a la vivienda únicamente mientras brilla el sol. La electricidad proviene de la red eléctrica por la noche o siempre que la demanda supere la producción. Cuando los paneles solares producen más electricidad de la que consume la vivienda, el excedente se devuelve a la red para complementar la capacidad de generación de la compañía eléctrica.
La factura mensual de la compañía eléctrica detalla la cantidad de energía que la vivienda produce y consume cada mes. El titular de la cuenta paga por el consumo adicional, más una pequeña tarifa de conexión. El excedente de producción se acredita en la factura del mes siguiente. Estas viviendas tienen dos medidores: uno registra la electricidad producida y el otro, la electricidad consumida.
Kasey quería una aplicación que monitoreara el consumo de energía durante todo el mes, en lugar de esperar a recibir la factura de la compañía eléctrica. Elaboramos una lista de requisitos para el desarrollo de la aplicación móvil:
- proporcionar un formulario de entrada de datos muy sencillo para registrar las lecturas de los medidores
- calcular automáticamente el saldo de la cuenta a partir de las lecturas
- Mostrar el rendimiento diario y el saldo mensual de forma numérica y gráfica
- Realizar un seguimiento del excedente a lo largo del tiempo para mostrar los cambios de un mes a otro.
MobileTogether tiene todas las funcionalidades que necesitábamos para implementar de manera eficiente los requisitos de la aplicación. Comenzamos definiendo estructuras de datos XML para los registros diarios y mensuales. A continuación, se muestra los datos mensuales en la vista de cuadrícula de XMLSpy:

La lectura de los datos anteriores a la fecha y los valores del medidor, en las columnas 4 a 7, que corresponden a los kilovatios generados y consumidos, el excedente mensual y el saldo total, son todos cálculos numéricos sencillos. Por ejemplo, en la fila 5, los kilovatios generados (kWhGen) son simplemente la lectura del medidor solar de septiembre menos la lectura de agosto. El medidor solar solo avanza, pero el medidor de consumo puede avanzar o retroceder, dependiendo de la luz solar y del consumo de energía de una hora a otra.
Para el siguiente paso en el desarrollo de la aplicación móvil, diseñamos la estructura general de la aplicación. Decidimos crear dos páginas principales: una para el rendimiento diario y otra para el historial mensual. Los formularios de entrada de datos serían páginas secundarias a las que se accedería desde cada una de las páginas principales. Aquí se muestra la ventana de ayuda de MobileTogether Pages, que ilustra la estructura de las páginas:

Los botones en cada página permiten ejecutar acciones de MobileTogether para navegar entre las diferentes vistas.
Luego, pensamos en cómo representar gráficamente los datos en diagramas. MobileTogether permite a los desarrolladores crear diagramas en múltiples capas, e incluso combinar diferentes tipos de diagramas. Decidimos combinar diagramas de área y diagramas de barras. Elegimos un diagrama de área en el fondo para representar el consumo de electricidad, por día y por mes, y un diagrama de barras superpuesto para mostrar la producción solar. Nuestra lógica es que el hogar consume electricidad de forma continua, incluso durante la noche para el refrigerador, los relojes eléctricos, los cargadores de teléfonos, etc. La producción solar es intermitente, comenzando al amanecer y terminando al atardecer.
El Simulador es una función del programa MobileTogether Designer que permite ejecutar la solución de forma instantánea durante el desarrollo de aplicaciones móviles, para probar la lógica, visualizar la interfaz de usuario tal como aparecerá en una variedad de dispositivos iOS, Android o Windows, y analizar los cambios en los datos del flujo de trabajo. A continuación, se muestra una vista de la página principal del informe diario, tal como se ve en el Simulador:

Esta página muestra los datos de producción durante 14 días, a partir del 18 de abril. La producción solar varía considerablemente de un día a otro, dependiendo de la cobertura de nubes, como se puede observar en el gráfico superior. El gráfico inferior muestra el saldo positivo o negativo de cada día. El 18 de abril, se consumió un kilovatio más del que se produjo, y el 29 de abril, el saldo fue de cero.
El botón "Mostrar" que se encuentra debajo del primer gráfico abre una tabla numérica con los datos:

El botón "Mostrar" modifica la propiedad de visibilidad "MobileTogether" de la tabla de datos. La tabla en sí es desplazable dentro de la página y contiene datos del mes anterior completo. El botón "Añadir nueva lectura" abre la subpágina de entrada de datos para un nuevo conjunto de lecturas:

La definición de la acción de control para el botón nos permite abrir la página como un cuadro de diálogo modal, lo que significa que la página original sigue siendo visible en segundo plano.

MobileTogether nos permite añadir texto de ayuda a los controles de campo de entrada para las lecturas del medidor. También utilizamos la propiedad de teclado de MobileTogether. Cuando Kasey toca el campo de edición para introducir un nuevo valor, solo se muestran caracteres numéricos.

Después de ingresar las lecturas de ambos medidores, el siguiente paso de Kasey es hacer clic en "Calcular producción"

Esta función realiza cálculos XQuery para generar los datos de producción diarios que se mostrarán en la vista previa. Posteriormente, Kasey podrá añadir los nuevos datos o cancelar la operación. La adición de un nuevo registro diario también actualiza automáticamente los gráficos en la página del informe diario

La página del informe mensual está configurada de manera similar a la página del informe diario. A continuación, se muestran dos vistas de la página mensual en un teléfono Android, en [mobile-apps-that-automatically-support-dark-theme|modo oscuro y [modo claro]]:

La tabla de datos en esta página muestra estadísticas mensuales. Las primeras 12 filas se basan en las lecturas del medidor que figuran en las facturas de servicios públicos de Kasey, y los valores de las columnas 4 a 7 son calculados por la aplicación. La fila 13 se basa en la última lectura diaria registrada. Cada vez que Kasey añade una nueva lectura diaria, la aplicación actualiza la tabla de datos diarios y los gráficos diarios, y también calcula automáticamente los totales mensuales, reemplaza la fila 13 en la tabla mensual y actualiza los gráficos mensuales.
Esto resuelve el requisito principal para el desarrollo de esta aplicación móvil: monitorizar el excedente acumulado desde la última factura de servicios. El excedente acumulado se muestra en la fila 13 de la tabla de datos mensuales, en el título debajo del primer gráfico mensual, y en las celdas del extremo derecho de ambos gráficos mensuales.
El icono de engranaje que se encuentra en la esquina superior derecha de cada página es un botón creado utilizando la imagen de botón "Ajustes" integrada en MobileTogether. Al hacer clic en él, se abre una página de configuración, que se muestra aquí en un iPhone:

Los primeros cuatro botones en la página de configuración nos permitían manipular e intercambiar conjuntos de datos durante el desarrollo o para análisis. La última opción es un menú desplegable que permitía a Kasey restablecer los gráficos en la página de informes diarios para mostrar datos correspondientes a 7, 14, 21 o 30 días.

Después del desarrollo inicial de la aplicación móvil, Kasey estaba encantada con los resultados. Todos los días, sacaba a su perro a pasear por la mañana y registraba las lecturas del contador. Cuando recibía las facturas de los servicios públicos, actualizaba la tabla mensual con los valores registrados por el técnico de medición.
Un día, ella me llamó. "Sabes que he estado encerrada en casa durante casi un año, y ahora estoy lista para viajar de nuevo", dijo. "Qué ocurrirá con la aplicación si me salto unos días de actualizaciones?"
Tuve que pensarlo y creé un conjunto de datos de prueba para averiguarlo. El resultado fue que el informe mensual sería correcto. Ya sea que el usuario olvidara ingresar las lecturas del medidor durante un día o una semana, la aplicación siempre calcula el excedente acumulado a partir de la última factura y la última lectura diaria.
El informe diario presentaba algunos problemas menores. El campo de la fecha para las lecturas diarias era un control de selección de fecha que se cargaba automáticamente con la fecha actual, pero el usuario podía seleccionar otra fecha si existían valores de lectura disponibles.
Sin embargo, si se omitieron algunas lecturas durante unos días, los datos de producción diarios y los valores del gráfico del último día serían inexactos: toda la producción y todo el consumo se atribuirían al último día.
La solución fue sencilla. Decidimos añadir un poco de lógica al cálculo de las estadísticas diarias, utilizando una estructura condicional "si-entonces" y un bucle:
- Si la fecha de la nueva lectura se encontraba a más de un día de distancia de la última lectura, entonces se deben contar los días faltantes
- Divida la producción total y el consumo total entre el número total de días transcurridos entre las mediciones.
- Utilice un bucle para asignar el promedio de producción y el promedio de consumo a cada día en el que no se haya registrado una lectura.
Implementé esta lógica en un Grupo de Acciones de MobileTogether y añadí el nuevo grupo de acciones a los pasos que se ejecutan cuando Kasey hace clic en el botón "Añadir lectura diaria".
El 2 de mayo, Kasey se marchó contenta para una excursión de 3 días de camping y senderismo. El 6 de mayo, a la mañana siguiente de su regreso, ingresó las lecturas diarias del medidor como de costumbre. A continuación, se muestran fragmentos de su informe diario y su informe mensual, con valores promedio para las lecturas diarias faltantes, tal como se visualizan en un iPhone:

Los valores cero registrados en las lecturas diarias del medidor los días 3, 4 y 5 indican valores promedio.
Si está desarrollando aplicaciones móviles multiplataforma, necesita una herramienta con programación visual completa y depuración integrada. Eche un vistazo a nuestro MobileTogether demostraciones en video, más aplicaciones de ejemplo, o incluso el/la manual en línea para obtener información detallada. Cuando esté listo para empezar y desarrollar sus propias aplicaciones móviles multiplataforma en el menor tiempo posible, Descargue el programa MobileTogether Designer para empezar.