Ir al contenido principal

Inspiración + Trabajo = Magia

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 +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 20 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 mi: 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:

primer-app-diagrama-tablas.PNG

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:

emu1.PNG

emu2.PNG

emu3.PNG

emu4.PNG

(perdón por las imagenes, son del emulador del Android)

Igual es un poco tarde para profundizar sobre el tema, pido disculpas a quienes dejé con "sabor a poco" pero creanme que lo importante es lo que digo acá, el "cómo" prometo profundizarlo en futuros posts.

Comentarios

  1. No solo magico, sino tambien adictivo como el dulce de leche

    todo bien con los que siguen laburando a manopla, pero bue los picapiedras eran felices con la traccion a pata .)

    ResponderBorrar

Publicar un comentario

Entradas más populares de este blog

Liberar una versión: el fin del principio

Quienes desarrollamos software buscamos afectar positivamente la vida de las personas a través de nuestras aplicaciones. Ese es nuestro objetivo final, ese es nuestro éxito. Quienes desarrollamos , que ayuda a nuestros colegas en esa misión, solo tenemos éxito cuando ellos tienen éxito, por eso solemos decir que cuando liberamos una versión es "el fin del principio". Es un escalón fundamental, pero solo el primero. Tuve el privilegio de formar parte del equipo de y de su pero a su vez no he podido dedicarle tanto tiempo   como quisiera, casi no he podido  , ni  he podido leer. El mundo siguió girando, hay  , hay que me perdí y . Casi de casualidad me enteré del encuentro del a partir del 16/marzo en Montevideo. En cualquier caso: ¡el esfuerzo valió la pena!. Ahora que está siendo liberada en el   , hay que celebrar porque aplica aquello de "release is a feature". Podría tirarme en mi casa y estrenar mi  con una buena peli o sino aprovechar ir al un poco má...

Abrir links con aplicaciones nativas y no el browser (deeplinking)

El problema que tengo con algunas aplicaciones Android/iOS es que cuando recibo un link por algún medio (mail, tweet, etc) al abrirlo me lo abre con el browser, en lugar de abrirlo con una aplicación nativa asociada a ese “contenido”. Por ejemplo, si recibo un link a un tweet espero que lo abra con alguna aplicación de twitter que tenga instalada y no con el browser. De modo análogo si recibo un mail con una nota de prensa de un medio X y tengo la aplicación de ese medio X instalada, espero que el link lo abra con la aplicación nativa y no con el browser. Lo mismo quisiera con mi aplicación de "banking" o cualquiera que tenga instalada y sepa manejar ese "contenido" (link). Los motivos son bastante obvios pero los resumo en: la experiencia de usuario es mucho mejor en la aplicación nativa que en el navegador. Parte importante del tema es que el mismo link sea válido tanto para ver el contenido en el browser como para verlo en la aplicación, porque como prove...

Mi primer chatbot con whatsapp

No voy a hacer "apología de whatsapp" pues es claro para todos que es una herramienta de comunicación que todo el mundo (al menos occidental) tiene y usa a diario. Siendo así ¿que tal si mi aplicación pudiera responder por ese medio? ¿Qué skills necesitaría? ¿Qué otros recursos? Revisé algunos contenidos al respecto, por cierto los recomiendo, especialmente los producidos en el GX29:  https://meetings.genexus.com/2019/sessions/chatbots Es tremendo lo que se puede hacer alrededor del tema. Sin embargo lo que yo quería era algo bien sencillo, no quería tanto la parte de NLP (PLN), IA, etc que es un camino muy interesante pero que implicaba más trabajo y lo mio era explorar, divertirme, hacer algo útil y aprender en el camino (algunos le llaman "procastinar":)). Quería probar la utilidad de "dialogar" con mi aplicación vía Whatsapp, generar otras ideas a partir de ver y sentir algo funcionando, resolviendo un problema real, un prototipo de bajo costo....