3. Tecnologías involucradas en el ciclo de desarrollo para SD Desarrollo Comunitychallenge (ww) 50 proyectos presentados 20 proyectos finalistas Universitychallenge (uy) 50 proyectos presentados 10 proyectos finalistas
4. Tecnologías involucradas en el ciclo de desarrollo para SD Clientes Experiencia PesoBook Downloads en una semana aprox. 1200 Dispersión geográfica 284 231 122 80 79 … 71
21. Tecnologías involucradas en el ciclo de desarrollo para SD Instalación en device => Aplicación firmada Apk firmado por Artech Jad firmado por developper Ipa firmado por developper
27. Tecnologías involucradas en el ciclo de desarrollo para SD apps.genexus.com apps2.genexus.com Clicktocloud F5
28. Tecnologías involucradas en el ciclo de desarrollo para SD Desarrolladores y clientes con la necesidad Instalar requerimientos de software Setear algunas properties en la KB F5 & Run
Como mencionábamos entonces, para preparar el ambiente para generar para Android, debemos instalar el Android SDK que lo bajamos del sitio de developers para Android.Con esto nos queda instalado en la máquina de desarrollo, no solo el SDK sino también el emulador, a efectos de poder prototipar en este.
Luego instalamos el JDK ya que lo que lo que se va a generar para el dispositivo es Java. Si ya veníamos utilizando el generador GX Java tradicional esto ya lo tenemos instalado.De todos modos el JDK se puede bajar p.e. del sitio de Oracle.
Y esto es todo, lo único que resta hacer es crear la KB e indicarle a Genexus a través de properties a nivel de generador para SD donde quedaron instaladas estas cosas.Observen que tenemos tres properties para indicar para que plataforma queremos generar, al poner en true cada una de ellas, se habilitan las propiedades especificas para cada plataforma. Si ponemos las 3 en true, mas allá que va a generar la aplicación para las 3, al momento de dar F5 ejecutara en el emulador aquella que coloquemos como MainPlatform.
En este punto ya estamos listos para poder desarrollar nuestra aplicacion y al dar F5, si tenemos conectado un dispositivo Android a nuestro PC, se instalara automaticamente, pero en cualquier caso, el F5 levantara el emulador de Android y ya podemos estar ejecutando nuestra aplicacion como si estuvieramos en el dispositivo.
Pero si nos limitáramos a generar para Android nos perderíamos gran parte del mercado.Por lo tanto en GX generamos para las 3 plataformas, por lo tanto también preparemos nuestro ambiente para generar para BlackBerry. Es básicamente lo mismo, primero que nada instalamos el SDK de BB, el cual también podemos bajar de la pagina de BB. Y aquí también esto nos instala el SDK y el emulador (luego podremos bajar mas emuladores de diferentes modelos de BB si quisiéramos).
Lo mismo con JDK, el cual seguramente ya instalamos para Android.
Y nuevamente crear la KB y setear las properties que indican a GX donde dejamos instalado esto.
Al igual que para Android, si estamos generando para BB, al oprimir F5 si tenemos el Device conectado instala la aplicacion y en cualquier caso ejecuta en el emulador.
Y por ultimo iOS, es quien presenta algún detalle mas pero tampoco nos asustemos.Como primer punto, para lograr tener la aplicación compilada necesitamos una mac (veremos mas adelante que para prototipar no es tan así).Ahí vemos una mac mini, que como ejemplo es lo que nosotros utilizamos en Artech, debido a que el costo de una mac es un poco mas elevado que el de un pc tradicional, nosotros tenemos una mac mini, las cuales utilizamos en forma remota conectándonos via VNC varios usuarios.E PC donde ejecutamos Genexus, debe estar en la misma red que dicha mac. Pero a dicha mac que es donde en definitiva GX estará compilando las aplicaciones que genere para iOS, también debemos instalarle los componentes básicos para poder hacerlo.Lo que debemos instalar es el iOS SDK, el cual bajamos de sitio de Apple para developers.Esto nos instala el sdk incluyendo Xcode y el emulador.
La complejidad adicional viene dada por el hecho que la compilación y la emulación se hará directamente en la Mac, por lo tanto el PC donde desarrollo con GX debe poder ver (estar dentro de la misma red) a la mac.Para esto debemos habilitarle el acceso SSH.
Ahora sí, tenemos el ambiente listo para generar para iOS, lo único que resta es en las properties especificas para iOS, setear la forma de ejecución que vamos a elegir, p.e. el simulador de la Mac e indicarle el nombre de la Mac donde pretendemos compilar y eventualmente emular, y las credenciales para conectarse a la misma (usr/pswrd).
Una vez mas ya estamos en condiciones de desarrollar la aplicacion y al dar F5 ademas de generar la aplicacion, la envia a la Mac conectada en red que le indicamos, compila ahi dicha aplicacion y la ejecuta en el emulador en la mac.
Entonces, resumiendo hasta aqui. Ya tenemos el ambiente pronto para desarrollar y probar, de alguna manera, para cualquiera de las 3 plataformas.Android ambiente pronto, ejcucion via emulador e instalación en el dispositivo listo para ejecutar.Igual para BB.Pero vean que en Apple, solamente llegamos a la ejecucion en el emulador, esto es basicamente porque la instalación en el dispositivo es un poco mas restrictiva.
Veamos entonces a que se debe. Para poder instalar aplicaciones en los devices, las mismas deben estar “firmadas”.Este proceso es mas o menos sencillo dependiendo de la plataforma.En Android, el apk siempre se genera firmado por Artech, lo cual es legal en el mundo Android, no necesitamos nada para instalar la aplicacion en un device Android. Esto admeas habilita otro mecanismo de instalacion en el device, ademas de poder instalarlo con F5 teniendo conectado el device a la maquina de desarrollo. Adicionalmente el apk firmado se sube a la misma URL del backend web, por lo tanto GeneXus genera un QRcode con dicha URL, si desde el dispositivo leemos dicho QRcode, automaticamente hace que el Device baje la aplicacion desde ahi y la instale.Independiente de esto un developer puede pedir una firma propia para firmar con la suya en lugar de con la de Artech, esto se indica en las properties a tales efectos.En BlackBerry, podriamos decir que estamos en un punto medio, la aplicaion no la podemos firmar con la firma de Artech, pero el proceso para pedir una firma es sencillo y gratis, adicionalmente si no tuviera la aplicacion firmada el F5 igual es capaz de instalarla en el device, ya que el control de firma se realiza en tiempo de ejecución.Por tal motivo con F5 si hay un device conectado la instalamos, lo que no se hace es la generacion de QRcode, si bien igual subimos la app. para SD (Jad) junto con el back office, no generamos el QRcode.Tambien contamos aqui con properties a nivel de generador para BB donde indicamos los datos de la firma.El que presenta algun paso administrativo más es Apple, la aplicacion debe estar firmada, dicha firma tiene costo (diferentes costos de acuerdo a las necesidades). Desde mi maquina windows nunca podre instalar directamente la app con F5 ya que siempre debo pasar por iTunes, en cualquier caso veamos todas las posibilidades para instalar la app. en un device con iOS, de acuerdo a las diferentes properties que tenemos en GeneXus.
Las dos primeras opciones, es lo que habiamos visto antes teniendo una mac visible desde el equipo de desarrollo, al dar F5, genexus compila en la mac y ejecuta en el emulador.Las otras dos opciones que tengo, para lo cual necesito las firmas correctamente instaladas en la mac, son Build IPA (Local) y iTunes Sync (Local). Esto hace que el F5 compile en la mac, y luego transfiere el ipa al PC de desarrollo,la opcion Build IPA solamente lo transfiere a la maquina de desarrollo, la opcion iTunes Sync, lo transfiere y levana iTunes, pero no lo instala, manualmente desde iTunes, debemos sincronizar la maquina de desarrollo con el device conectado a ella.La otra opcion es iOS Device (Mac), esta si tenemos el dispositivo conectado a la mac donde GX compila, adicionalmente si contamos con las firmas correspondientes y el device esta autorizado lo instala.Finalmente podemos seleccionar la opcion de ejecutar a travez de KBN. Veamos entonces que es KBN.
En aras de simplificar este procedimiento para prototipar y testear directamente en los devices, desarrollamos una aplicación llamada GeneXus Knowledge Base Navigator. La misma se encuentra en los diferentes Marketplace y desde alli la podemos instalar en cualquier device.Esta lo que nos permite es, una vez que genero una aplicacion para SD con GX, catalogarla en el GX KBN y ejecutarla desde alli (se podria decir que es un emulador del comportamiento de la app.para SD generada por GX). GX KBN sera alimentado desde el back end no solo con los datos de la app., sino tambien con metadatos, KBN tiene la inteligencia para interpretar estos metadatos los cuales le brindan informacion para saber como mostrar los datos. La aplicacion ejecutada a travez de KBN tiene casi el mimso comportamiento que ejecutada nativa desde el device.
Finalmente ejecución. Una vez que tenemos la aplicacion instalada en el device, lo que nos resta es tener el back end disponible en algún servidor accesible via Wifi.Tenemos para esto tres alternativas, que algunas aplicaran más en tiempo de desarrollo/test y otras en tiempo de producción.El equipo donde esta instalado el Backend se encuentra en una red privada con acceso WiFi o un servidor disponible vía Internet, por lo tanto la aplicacion GX en el dispositivo se conectara a dicha red o a la web via wifi y así podra acceder a los servicios rest de mi aplicación.
Otra alternativa, es configurar una red Computer to Computer, tambien conocidas como red ad hoc. Esta nos permite establecer una coneccion WiFi, directamente entre dos computadoras o una computadora y un dispositivo con conección WiFi, en esta caso nuestro equipo de desarrollo servira como web server.
Por ultimo, la mejor forma para testear la aplicacion la tenemos gracias a una nueva feature que incluimos en GX X ev2, conocida como click to cloud.Resumiendolo en una línea, es una forma trivial para subir una aplicación al cloud automáticamente al hacer F5 en GeneXus. Por lo tanto, al generar la aplicación, o sea el Backend y la parte SD, GX al oprimir F5 como ya vimos como es capaz de instalar la aplicacion nativa en el dispositivo, sino que adicionalmente tambien sube el Backend a la nube. Por lo tanto, luego del F5, ya estamos en condiciones de ejecutar la app. desde el dispositivo consumiendo los servicios REST directamente desde la aplicación en la nube.
Desde el punto de vista de GX lo único que tenemos que hacer es setear la property Deploy to cloud a nivel de Environment en Yes e indicar la URL del server de la nube donde queremos que GX nos haga el deploy. Como ven, por defecto GX ya trae uno seteado debido a que Artech esta disponibilizando dos servers en la nube de Amazon a efectos de prototipar. No son para produtivo (pero solamente por temas administrativos).Cada uno podría contratar el suyo propio e indicarlo aquí.Una vez seteado esto, lo único que debemos hacer es F5, esto como ya vimos generara y si quisieramos instala en el dispositivo la aplicación, pero al mismo tiempo, genera el backend y lo sube a la nube dejandolo instalado ahí pronto para ser ejecutado o para permitir consumir los servicios desde la aplicación recien instalada en el device.
Resumiendo entonces, los desarrolladores estamos con ganas de atacar este mercado y vemos esa oportunidad.Y los clientes estan reclamando este tipo de aplicaciones.Trabajando con GeneXus lo único que debemos hacer para lograrlo es instalar unos pocos requerimientos.Setear unas pocas propiedades en la KB, ya se KB existente a la cual le vamos a agregar una parte móvil o porque se nos ocurrio una idea para smart devices.Y por ultimo F5 y Run.