miércoles, julio 06, 2005

Crónica de una migración exitosa, Parte 4

Parte 4. La interfaz con el usuario.

Esta es la parte final de esta serie de artículos dedicados a como logramos migrar una aplicación de 16 a 32 bits, sin morirnos en el intento.

Esto de hacer software es como la construccion de un automovil, puedes tener el motor mas potente, el super equipo electronico, pero si tu carrocería es una porquería, pues apaga y vámonos, Ferrari y Lamborghini venden mas coches por sus espectaculares carrocerías que por sus no menos impresionantes motores.

Llegados a este punto, donde ya habíamos ajustado la base de datos, habíamos refactorizado el código y todo era exitoso y triunfador, llegó el momento de comenzar a trabajar con la carrocería, es decir la parte del programa que le da la cara al usuario.


Iconografía.

Como parte de la nueva cara de los sistemas Sanrom's se decidió cambiar todos los iconos de todos los sistemas por imagenes tipo XP, de tal forma que aún cuando el programa se ejecutara en Windows 98 se "sintiera" como si fuese XP.

Así pues decidimos utilizar la biblioteca de iconos de Icon Experience (www.iconexperience.com), realmente una buena cantidad de iconos por un precio muy accesible.



Parece modo de mentira, pero aunque tengas mas de 1,500 iconos, nunca encuentras todo lo que necesitas, así pues , se utilizaron tambien los famosísimos iconos de FOOOD, (www.foood.net) toda una tradición en cuanto a diseño de iconos buenos, bonitos y baratos.



Aún y con todos estos recursos visuales, hubo algunos iconos que se tuvieron que crear "al vuelo" combinando ambas colecciones y utilizando Photoshop.


Diseño de pantallas y temas XP.

El diseño de pantalla, aunque ustedes no lo crean, no se hace así porque sí, ni como queremos nostoros, hay mucha bibliografía sobre el diseño de interfaces, pero el manual de referencia OBLIGATORIO para desarrollar una buena aplicación Windows es:



DISEñO DE INTERFAZ DE USUARIO PARA APLICACIONES WINDOWS
Traducción de José Ángel Vallejo Pinto
Editorial McGraw-Hill
ISBN: 8448127684.



En este libro se encuentran explicados a detalle las directrices oficiales de Microsoft para que una aplicación pueda ser considerada "Compatible con Microsoft Windows", mucho del software que se vende por ahi, dice esta famosa leyenda, pero en realidad, estoy seguro que mas del 90% del software que pone esto, no lo es, y por una sencilla razón, existen ciertos "criterios" que Microsoft exige para certficiar una aplicación como Windows compatible, una cosa es que el programa diga que es compatible con Windows y otra muy muy muy distinta es que el Microsoft le haya extendido un certificado de compatibilidad.

Bueno, de esto trata este libro, explica lo que Microsoft te pediría en un momento dado, cuando que quisieses obtener un certificado de Compatible con Microsoft Windows.



  • ¿ Sabias por ejemplo que no debes combinar fonts de colores y de distintos tamaños dentro de una misma caja de dialogo ?,
  • ¿ Sabes que distancia en pixeles debe existir entre los botones, los gets y los says ?
  • ¿ Sabes que es un twip ?
  • ¿ Sabes porqué deben de existir siempre el botón de Aceptar y el botón de cancelar en todas las ventanas?
  • ¿ Sabías que todo lo que puedes hacer con el ratón se debe de poder hacer con el teclado unicamente ?
Estos, entre otros temas son los tratados en este libro que te ayudará a crear interfaces bien diseñadas y coherentes, tanto visual como funcionalmente.

Basados en este libro se rediseñaron las pantallas de los sistemas Sanroms, y para mejor apariencia XP, se incluyó el archivo THEMED.MANIFEST en el archivo de recursos para que el programa tomara el tema que tuviera en un momento dado el Windows XP, esta modificación no afecta si el programa se ejecuta en Windows 98:

Esta es una pantalla de la interfaz a 16 bits:



Esta es la misma pantalla a 32 bits, con los temas de Windows XP:



Se implementaron los Folders nativos del sistema (SysTabControl32), los meters, date pickers, etc:

Esta es una pantalla de los meters de 16 bits:


Y ahora así es como se ve a 32 bits:




Por otro lado, para hacernos sentir mas XP, se adquirió una licencia de Canal Five TaskBar, los Taskbar son paneles de exploración tipo explorer de Windows, que son ampliamente utilizados por XP. Como la interfaz de Sanroms está totalmente basada en Catálogos, decidimos que sería buena idea separar la barra de herramientas del sistema en general de la barra de herramientas utilizada por los catálogos, el resultado fue simplemente espectacular:

Este es el catálogo de alumnos en la interfaz de 16 bits, nota como existen 2 barras de botones, una para el sistema en general y otra para manipular directamente las funciones del catálogo:



Y ahora, la espectaular interfaz de 32 bits, esta aplicación tiene ahora iconografía de Windows XP, y la segunda barra de botones se ha sustituido por un VTaskBar de Canal Five, con paneles que se extienden y se comprimen según las opciones que se van necesitando, al gusto del usuario.


El sistema de gráficas estadísticas del sistema también cambió, anteriormente se trabajaba con la librería ChartFX en su modalidad control VBX, y esto funcionaba bien a 16 bits:


Sin embargo a 32 bits no funcionan los controles VBX de 26 por lo que se decidimos contactar con Vikthor Tomás (http://www.listoelpollo.blogspot.com) adquirir una copia de su clase ChartFX32 y obviamente también tuvimos que utilizar la versión completa de ChartFX de 32 bits (www.softwarefx.com), que es un control OCX, con ayuda de Vikthor, fue cuestión de días tener todas las gráficas funcionando de una buena vez ahora a 32 bits:



Integrando con Office:

No es necesario saber que todos los programas deben de tener un modulo de exportación a los productos de la suite Office de Microsoft.

Los productos de Sanroms exportan los datos a archivos XLS, directamente utilizando la clase FileXLS de Ramón Avendaño, pero también se necesitaban las capacidades de "combinar correspondencia", mediante la cual los usuarios pueden crear "plantillas" de documentos en Word, para despuués crear documentos personalizados.

Nuevamente con la ayuda de Vikthor se creó un módulo que, utilizando el OLE nativo de xHarbour, crea estos documentos personalizados a partir de una plantila e imprimiendolos dirctamente desde Word.


Integración con Internet:

En las versiones de 16 bits, la integración para internet solo consistía en poder enviar correos electrónicos utilizando la clase TSMPT de Luis Krause:



Para la versión de 32 bits, se decidió dejar que Funcky se hiciera cargo de esta tarea, porque además de ceñirse estrictamente al protocolo SMTP, permite también verificar que una cuenta de correo exista en un dominio, maneja servidores con autenticación y además puede enviar archivos anexos de cualquier tamaño y tipo, esta es la nueva pantalla del módulo de correo electrónico:



Finalmente... se modificó el modulo web para que fuera compatible con todos los cambios que se realizaron en el software:

http://www.sanroms.com/productos_modulo_web_calificaciones.html

http://www.sanroms.com/productos_modulo_web_edocta.html


            Al dia de hoy, todos los cambios están hechos, las primeras versiones ya se han comenzado a distribuir, y ahora solo esperamos que comiencen los reportes bugs para comenzar de nuevo el ciclo y claro, prepararnos para lo que venga.

            4 comentarios:

            Jaime Irurzun dijo...

            Impresionante. Solo de pensar en tener que hacer todo el trabajo que habéis hecho en la migración me da una pereza terrible. Yo me habría puesto de los nervios a mitad del proceso (casi me ocurre con una aplicación mil veces más pequeña). Pero ya veo que con calma y pensando las cosas lo habéis llevado a cabo con mucho éxito. Enhorabuena, y gracias por compartirlo con todos. Geniales los posts.

            Rene Flores dijo...

            Jaime:

            En realidad fue un verdadero trabajo de equipo y de confianza mutua.

            Para empezar, la confianza de Carolina e Israel que son excelentes programadores, y que dejaro en mis manos la "logistica" de proyecto, que siempre trabajamos bajo la filosofia de "pienso, luego programo", y no con la filosofia de "programo, pruebo y si no funciona entonces si pienso".

            La inestimable ayuda del buen Vikthor nos saco mas de una vez el .... del agua y claro los consejos de Walter Negro fuero indispensables para optimizar todo el codigo.

            Y vamos, hechamos mano de todo lo habido y por haber, tu clase TZoomImage, la FreeImage, FileXLS, los controles de C5, algunas veces tuvimos que reescribir pedazos de codigo otras veces ibamos tan rapido que nos aburriamos y otras veces definitivamente ya no veiamos el fin del circo.

            La siguiente version vera la luz en un añito o poco mas, de momento vamos a disfrutar esta version con todo lo que le hemos puesto... el reto del año entrante será interesante, la version 7.0 muy sguramente estara escrita en Xailer.... ya te contare....

            Anónimo dijo...

            Rene,
            Muy interesante el tema de ADS,
            existe la posibilidad de que me
            des tu correo para despejar algunas dudas mas particulares.

            Mi correo es:
            robertoiturriaga@yahoo.com.ar

            Salu2,
            Roberto.

            regimages dijo...

            windows xp icons
            http://www.regimages.com