Hace algún tiempo que vengo trabajando con el generador para Smart Devices (iPhone, iPad, iPod touch, Android, BlackBerry) que es una de las principales nuevas funcionalidades de
Genexus X Evolution 2.
Creo que no es necesario ahondar en lo importante de esta “ola” de los “Smart Devices”. No solo se trata de una “ola tecnológica” sino de modificaciones sustanciales en el comportamiento de los usuarios, sus expectativas respecto a las soluciones, accesibilidad de la información y operativas, etc. Pero en fin, dije que no iba a ahondar así que pueden buscar en internet o directamente ver
algunas de las conferencias al respecto en el XX Encuentro GeneXus de Set/2010.
Volviendo al tema, si bien había hecho alguna aplicación de “ejemplo”, recién esta semana dejé una aplicación realmente en producción, se trata de la aplicación que maneja la agenda (Oradores, Conferencias, Salas) del
VIII Encontro Genexus Brasil.
Es una aplicación bastante sencilla, el objetivo es facilitar el acceso a la agenda del Encuentro a través de estos dispositivos así como la posibilidad de agendar conferencias en el propio “device”.
Quienes quieran la pueden instalar desde
aquí de acuerdo al dispositivo/SO que estén usando (Android, iPad, iPhone, iPod touch o BlackBerry, no disponible para WP7 aun) ¡es gratis!
Mi primera impresión
Con el “Smart Devices Generator” tuve un “deja vu”.
Hace aproximadamente 20 años empecé a trabajar con GeneXus, primero haciendo una aplicación para el manejo de flotas de vehículos y talleres en PC/DBase III Plus con DBFs (ambiente que dominaba) y luego haciendo una Solución Financiera para el AS/400 (iSeries) en Cobol (ambiente que desconocía totalmente).
Si bien para el sistema de flotas me sirvió mucho, lo diferente se produjo cuando desarrollé mi primera aplicación para Cobol/iSeries. Este ambiente solo lo conocía como usuario de una “terminal tonta” cuyo cable se perdía misteriosamente en un ducto y vaya uno a saber dónde terminaba. La habitación donde estaba aquella máquina misteriosa estaba vedada para todos los mortales y solo los cables y los semidioses llamados “Operadores” podían entrar a ella.
Sin tener más conocimiento que ese, mucha fe y ganas, logré poner mi sistema en producción. Ahí sospeché que había algo grande, importante, diferente. ¿Cómo yo un “pichón” de veinte y pico iba a hacer algo tan grande y atrevido? ¡Qué insolencia! ¡¿Qué magia era esa?!
Con el tiempo descubrí que no se trataba de magia sino de visión, ciencia y trabajo. En cualquier caso con el tiempo ratifiqué mi sospecha: realmente estaba ante algo importante.
Claro que hubo problemas, utilizaba la 1.2 de Genexus y luego pasé a la 1.4, para dar una idea: ¡No existían los “procedures”! No había modo de actualizar los datos de modo “batch”, lo cual en ese momento era “pecaminoso”. Escollos hubo, pero ninguno hizo que dejara de ver el valor de lo que tenía entre manos.
Hoy con el “Smart Devices Generator” tengo la misma sensación: estoy desarrollando aplicaciones para no una, sino, por lo menos, tres plataformas (iOS, Android y RIM, proximamente WP7), todas diferentes pero con algo en común para mí: casi totalmente desconocidas y digo “casi” porque las conozco como el AS/400: simplemente como usuario.
Seguro que hay y habrá escollos, como dice
Gastón en su blog “Because our way to develop software is different, we focus on the model first and after we generate code.”, pero la “magia” (como resultado de la visión y el trabajo) está nuevamente presente.
Por eso lo del “deja vu”, esa magia que me permite llegar con soluciones a mundos que no conozco, no domino y tal vez nunca llegue a conocer del todo antes de que, eventualmente, desaparezcan bajo otra ola.
Sobre la aplicación
Dejando la parte “mágica” y yendo a los resultados, como decía al principio, la aplicación maneja la agenda de un evento, donde existen Oradores que dan Conferencias en diferentes Salas y esas son las tres entidades.
Si lo quieren ver como un diagrama de tablas:
Su desarrollo se trató básicamente de la definición de esas entidades y el ajuste de los patterns a aplicar sobre ellas, para lograr algo como:
*imágenes del emulador de Android
Igual es un poco tarde para profundizar sobre el tema, pido disculpas a quienes dejé con “sabor a poco” pero créanme que lo importante es lo que digo acá, el “cómo” prometo profundizarlo en futuros posts.
*Publicado originalmente en el Blog de Gustavo Carriquiry