Muybuenosdías y bienvenidos a estenuevoencuentroGeneXus.Soy Armin Bachmann y trabajo en el equipo de producción de GeneXus. GeneXus X Evolution 2 es la últimaversión de GeneXus, que se liberó el añopasado y quedesdeentonceshemosidomejorando y evolucionando, cuidando la estabilidad y robustez.En estacharla, en vez de verunalista de funcionalidades, y dado el contexto en el quenosencontramos, nosvamos a hacer 2 preguntasprincipalmente, y a la luz de ellasvercómoayudaGeneXus X Evolution 2.La primer preguntaesquées lo querealmentenecesitamos, y la segundaescuáles son los desafíosqueenfrentamos hoy
Antes de comenzardejenmecontarlesunaanécdota.Resultaque la otrasemana me encontré con un amigo al quetambién le gusta la pesca, y comotal a veceses un pocoexagerado. Pero me dice, “uds los informáticossíqueavanzan, eh?” “Ah si” le digopero me quedo con cara de “qué me quieredecir”. “Claro” me dice. “el software ahoraestá en todoslados!” “Cooomo?” le pregunto y ahorasíteníatoda mi atención. “Esquellenaron la Tierra tanto de software queahora lo metieron hasta en lasnubes!!”Peroaparte del chiste, la realidadesesta. Basta con mirar la grilla de charlas de esteeventoparaverque el software invadió los distintos sectores de Administración Pública, los distintos ámbitos educativos,Y los diferentess sectores industriales.Qué software? Software Extremadamente crítico,que afecta la vida de las personas,sus organizaciones, su salud,sus viajes, sus compras, sus finanzas y demás.Que ejecuta en Servidores, estén acá o en alguna nube, y desde la PC hasta los smartdevices.Y cuando los devices mismos no son suficientes, los combinamos con sensores y entonces hacemos lo que queremos.Vinimos acá porque queremos hacer la diferencia, ahora, qué precisamos para hacerla?
Qué precisamos para crear estas soluciones? Tienencarácterísticas en común? Ciertamente muchas, como veremos. Qué precisamos para crear el software? Y parece una preguna un tanto “de respuesta obvia?” en un evento GeneXus. Pero la sustancia está en los argumentos que nos llevan a la respuesta y no en la respuesta misma que es mera consecuencia.Mi propuesta es que exploremos ese camino.
Lo que les voy a empezar a mostarescomúndenominador de lassoluciones de software que hoy construimos. Eldiagramaque les voy a mostrarva a ayudar a entender la complejidad de lo queconstruimos y nosva a permitirsacarvariasconclusionesLo curiosoesqueaplicatanto a nivelcorporativocomo a nivel particular. Aplica a cuandohacemosunaaplicación tan simple comopuedeserunalista de cajerosmáscercanos, como a unasofisticadasoluciónbancaria.Vamos a tenerpor lo menosuno de estosdbmses, programas en el server en al menosuno de estoslenguajes, estoscomponentes van a estarejecutándose en uno o variosservidores, o en nuestra casa, empresa o en la nube, van a tenerqueestardisponibles 7x24,Van a seraccedidosdesdedistintosdispositivosdonde van a tenerqueestarcorriendoprogramasescritos en alguno de estoslenguajes, van a tenerqueestarejecutándose en un browser, o no.Vean la cantidad de lenguajesinvolucrados, la cantidadcecomponentes de software, de hardware. Un montón de componentesqueprimero hay quearmar, peroquedespuestienenquetrabajar en perfecta armonía. Y como en todo, máscomponentestienenquefuncionar, máscomponentes se pueden romper.Entoncesvuelvo a la pregunta, quéprecisamos?
La primer respuesta que me viene a la mente para armar algo tan complejo, de muliples componentes es: Un equipo! Sin duda que para armar este puzzle se precisa un equipo! Tenemos por supuesto casos e historias de aplicaciones o soluciones que llegaron increíblemente lejos y fueron llevados adelante por solo una persona, pero en algún momento, a todos se nos termina el aliento y precisamos apoyo para avanzar. Los developers, cuando tenemos una buena herramienta nos sentimos incríblemente poderosos para hacerlo todo nosotros mismos, pero cuidado, no nos engañemos. Para llevar un proyecto adelante en serio precisamos trabajar en equipo. Si los proyectos son suficientemente grandes, hay gente especializada o se contrata empresas especializadas que solamente se encargan de eso: de formar equipos que funcionen.Y la buena noticia es que el armar un equipo lo tenemos al alcance de la mano, este Encuentro GeneXus es un claro ejemplo. Aquí nos reunimos diseñadores, expertos en interfaces de usuario, en seguirdad, arquitectos de software, expertos en infraestructura, gerentes de proyectos, consultores, inversores, la comunidad TI entera. Es unirse y avanzar.
El otropuntoclaroes: Pero, no vamos a trabajar a manoparahacertodoeso! Usemosunaherramienta.Y de nuevoquéprecisamos? O quéquisiéramostener?Unaconclusiónqueyaesaceptadaportodosesqueescribir a manotodo, hoy en día, esunalocura. Todos los quehacen software en algunpuntogenerancódigo.Hasta ahíestamostodos de acuerdo.Precisamosunaherramientaquenos de unavisión general del problema de construcción de unasolución con esaarquitecturaquemostré hoy.Un IDE queIntegre lo siguienteDesde un nivel conceptual permitagenerar multi plataformaQuedéfacilidadesparatrabajar en equipoTrazabilidadpara saber quiénhizoquécuándoQueyaque me genera programasque me ayude a testearlosY que sea extensibleEso, me lo da la generación X de GeneXusEnconclusión, siesos son los componentesquetienenquetenerlasqueconstruimospuespodemosarmar los equiposparahacerlas y tenemos la herramientatambién, porqueGeneXus X desde la Evolution 2, que genera tambiénpara Smart Devices.
En resumentenemos People, Ideas, Hardware, y siqueremoshacer la diferencia, debemosavanzarteniendo en mente los 3, y en eseorden.Eso, no esuna idea miasino de John Boyd, un reconocidoestrategamilitar del siglopasado, sobrequieninclusohablóNicolásJodal en un encuentropasado.Habiendoreflexionadosobrecómoavanzarrápidamente, pasemos al siguientepunto,
y esquédesafíosnosvamos a encontrar y superarcuandoconstruimosesassoluciones y queremoshacer la diferencia.Vamos a ver 3 desafíos y cómoGeneXus X Evolution 2 nosapoya.
Y sinosseguimospreguntandoquéprecisamospararealizaresas apps, el primer puntoes sin dudacolocarénfasis en el Usuario, en quienva a usarnuestrasolución.Puescompetimos con todo el mundo y contamos con usuarioslibres. Libres de usarnuestrassoluciones o no.Esporesoimportantequecontemos con unaherramientaquenospermitahacersoluciones de clasemundial. 1st class apps.
Soluciones de clasesmundial,Tantolasque el usuario accede via un browser, comolasque accede via una app nativa.Y digotantounocomo lo otro, porquedebemosdarle ambos. El Web y la app nativa, porquedependiendo en quésituaciónestá, quétareasva a tenerquesolucionar, y porendequédispositivoeligepararealizar la tarea. SI tengoquetomarunafoto, voy a utilizar mi celular, sitengoqueescribirtexto, usoalgo con un tecladomásgeneroso.Precisopodergenerarambas!
Si ahoranosenfocamospor un momento en la soluciónquecorre en web, esdecir en un browser, tambiénahítenemosqueentenderque hay distintos browsers.Sea quenos van a estaraccediendo a la aplicacióndesde browsers hechospordistintosfabricantes, y desdedistintasversiones de esos browsers.Estoentonces da unalindamatriz browsers porversiones, y nuestras apps tienenquefuncionar en todasesas.El problema no terminaahí, porque van a quererlaejecutardesdedistintosdispositivos de distintostamaños y con distintascapacidadesEn alguno van a poderdar tap sobre un número de teléfono y eso les va a iniciarunallamadatelefónica, en otros no. Algnos van a tener un tamaño mayor queotros.Y cuidado, no hay que solo construirunasolución, hay quetestearladespuéstambién. Nuevamenteprecisamosequipos y precisamosherramientasquenosautomatizenesto.Un atenuanteesquedesdehaceunosañostoda la industria se puso de acuerdo en que la base para la evolución en Web es HTML5 + CCS3 + Jscript.Esoesunabuenanoticiaparatodos los quehacemos software, y para la comunidadGeneXus lo buenoesqueGeneXus X Evolution 2 genera esto en forma predeterminada, asíqueseguimosporbuencamino.AdemástenemosGxtestparaautomatizar el testing.
En X Evolution 2 hemosevolucionado mucho en web. Hoy les mencionabaaspectos de seguridad, recién la generaciónpara HTML 5, peroademásmejoramossensiblemente en performance.Pero un puntodondevisiblementeevolucionamoses en Reporting. O sea, en darmejoresherramientaspara el análisis de la información y la toma de decisiones.En eseaspecto el Query Viewer nospermitetenertodotipo de gráficas e inclusopivotear en web.Estovieneyaincluido en GeneXus X Evolution 2. Si lo queremospotenciarmásaúnpermitiendo a nuestrosusuarioscrearconsultasporsímismos, entoncesofrecemosGxqueryquees un productoadicionalque lo permite.
Pero no solamentedesde Artech hemospotenciado el dearrollo web, sinoquetambiénhanvenidoaportesimportantesdesde la comunidad. En el marketplace se ofrecenmuchos user controls quenosayudan a darunamejorexperiencia de usuario.
Ferrovalleesunaempresaferroviaria de México, dehechosunombrecompletoesFerrocarril y Terminal del Valle de Mexico.HechaporFerrovalle, da información de tracking de contenedores a susclientes. La Web ya la teníanhacetiempo con xev2, esteañoagregaron la parte SD y poreso se llevaron un reconocimiento a la innovaciónporunaunidad de la General Electric de USA que se especializa en logística.http://showcase.genexus.com/app.aspx?ferrovalletracking,esHechapor Ferrovalle, da información de tracking de contenedores a susclientes.La Web ya la teníanhacetiempo con xev2, esteañoagregaron la parte SD y poreso se llevaron un reconocimiento a la innovaciónporunaunidad de la General Electric de USA que se especializa en logística.En http://www.ferrovalle.com.mx/sitioweb/iniciointermodal.aspx hay unas fotos de fondo que muestran su terminal de contenedores, etc.
Peroejecutar en un browser no es lo máscómodoparatodo el mundo. Especialmente los queusamosdispositivosiOS, Android sabemosquequeremos apps nativas.Porque se integranmejor, aprovechanmejorlascapacidades de estosdispositivos, se sientenmejor.Dado eso y quedesdeGeneXusqueremosgenerar lo mejorparacadauna de lasplataformas, agregamos en GeneXus X Evolution 2 generadoresparaiOS, Android y BlackBerry.
Nuevamentenospreguntamos: quéprecisamos? Antes que nada queesténcompletamenteintegradas, que se puedaaprovechardesdeGeneXuslascapacidadesque los dispositivosofrecen a nivel de hardware y de otrossoftwaresquecorren.Para eso X Evolution 2 traefuncionalidadesdesdealgocomo los llamadosdominiossemánticosquenospermitenquesobre un campo de dominio Phone yo de Tap y automáticamente se inicie un llamado, hasta un montón de APIs paraintegrarse con APIs paramanejarFotos o integrarse con Facebook.
Otroqueprecisamosesmuchoscontroles,paraque en cadauno de los miles de usosposiblesque le demos al dispositivo, el usuariopuedarealizarsutarea en forma simple e intuitiva.Loscontroles, resuelven el uso a nivel de unapantalla, perodespuésprecisamos resolver cuestiones de navegabilidad entre pantallas.TambiénaquíGeneXus da variasopciones, y hemosagregado la navegación Slide hacepoco.De hechoes la queobtienen en el iphone o teléfono android en la app del #gx23.Estamos en la era Touch. Todo se resuelve con Gestos.Si en win y web teníamosClic y Doble Click, ahoratenemos lo mismo, y un pocomás.Tenemostodosestos: Tap, Long Tap, Swipe Left, Swipe Right.Y además: Drag & DropPerotodoeso no seríaunmodelorealmentecompleo, no se sentiríabien, no funcionaríaarmónicamente, si no tuvieramoslas…Animaciones. Esdecirquecuandohago swipe left y hay unapantallaquedesaparecehacia la izquierda, esperoque la accióncontraria sea swipe right porqueintuitivamentees lo análogo a irla a buscardesde la izquierda, desdedondedesapareció.Porquéuds se dancuentaquevoyparaatrás y paraadelante, y no estoydando next next next ?Dadaesanecesidad y claraventaja, ayuda visual de lasanimaciones, esque en GeneXustambiénlassoportamos. Y configurarlo en GeneXuses tan facilcomo en powerpoint o más, porque a nivel de Theme esquepuedendefinir el efecto de entrada y el efecto de salida de laspantallas.
Si hablamos deaplicacionesnativas y de un generadorparaellas, ciertamenteprecisamossoporteparatodaslasfuncionalidadesque los mismosfabricantesdan a nivel de plataforma:Soporte de Notificaciones, y soporte de publicación de apps tanto free, pagas o con in app purchases. In App purchases fueagregado en un upgrade, suimportanciaes considerable yaque 70% de los ingresosgenerados se dan a través de estamodalidad.
Porotroladoesimportanteconocer el usoque los usuarios le dan a lasaplicaciones y podermejorarlas, poresotenemossoporte de Google Analytics, de hecho antes de comenzarestacharlasaquéeste screenshot queindicaque la estabanusando XXX cantidad de usuarios en forma online en esemomento.
Para poderadoptarrapidamentelasventajasqueofrece, desarrollamosunos samples, específicamente de Smart Devices queudspuedenbajar.De hecho, el másfamosoesEventDay, esuna KB a partir de la cualpuedengenerarrapidamente la app del próximoevento de lo que sea, quehaya en suregión.
En cuanto a UX, la recomendaciónes: préstenleatención, si la UX especialmente de una app SD es mala, los usuarios no perdonan y dancomentariosnegativos en público.En GeneXustienentodoparalograruna UX superior y de clasemundial. Más de eso les va a contar Franklin en la próximacharla.
Ahora, la historia no terminaaquí. Veamosnuevamente el diagrama.Este diagramamuestradistintoscomponentes, queinteractúan y porendecomunican.Quienespiensan en seguridad, sabenquemáscomponentes se tiene, más vulnerable se es.Estoquevenaquíescomo un gran barrio con callesquecomunican y casas quetienenpuertas y ventanas, hermosoparaquienesquierenjugar al gato y al ratón, ladrón y policía.Veamosentoncesquécuidados hay quetenerparaqueestassoluciones, muchasvecespúblicas,puedanserseguras, a la luz de la arquitecturaquetienen.Segurasparaquienlasusa y paraquienlasproveeNuevamentenoshacemos la pregunta, quéprecisamos?QuéprecisamosPrimero ,siendoquetenemosunaherramientaquenospermitetenerunavisión general de la solución, lo quequiero y precisoesunavisiónholísticaparadarunasoluciónsegura. Y en segundolugarpreciso un método a aplicar.
El GAM les permiteasegurarsusolución, o parte de ella. Si porejemplodeclaranquequierenqueunaaplicación u objeto sea seguro y requieraautenticaciónparaserejecutada, entonces el GAM va a cerrar o abrirlaspuertasnecesarias de cadauno de los componentesqueintervienen en la ejecución de eseobjeto.El GAM es un móduloquevieneintegrado en GeneXus X Evolution 2, gratis, y queresuelve la autenticación y la autorización de susolución. Da seguridadbasada en roles y permisos.Permiteautenticación local, externa, con facebook, twitter, google, estodo un motor completoqueayuda a asegurarsusolución
Lo otro que les sugiero es ser metódicos, que alguien en el equipo se ocupe de leer y cuidar del tema durante todo el ciclo de vida del software. Si no, contratar alguien que les ayude, en la comunidad hay quienes brindan esos servicios.GeneXus se preocupa por la seguridad, habilita el modulo de GAM y además genera código que estamos haciendo cada vez más seguro, intentando que lo generado ya automáticamente los proteja. Estamos por ejemplo contratando expertos que van probando aplicaciones reales que les generamos y detectando vulnerabilidades. A partir de eso documentamos guías que les ayuden a uds y vamos mejorando los generadores. Así que aún cuando tengamos GAM, deben seguir ciertas reglas, deben seguir esas guías. En este encuentro va a haber charlas que profundizan en ello.
http://showcase.genexus.com/app.aspx?infonetcobranzas,esFuehechaporDvelop y Bancard (Paraguay), es la versión SD del sitio Infonet (no hecho con GX).Permitepagarcuentasmediantedebitoautomático de los bancos o tarjetas.BancardescomosifueranuestroAbitab, Redpagos, Sistarbank, todojunto (los principalesbancos son accionistas de estaentidadfinanciera). Procesan 80% de lastransacciones con tarjeta de PY.Características de GX queusa:1) Versión X Evolution 2 Upgrade 32) Seguridadbancaria! GAM, con Autenticaciónexterna (Custom )(De hechocontrataronunatercerempresa , argentina, quehizo los security tests correspondientes y pasaron los tests OK )3) Escompletamentebasada en Servicios4) Extensibilidad: fuehecha con SD Plus quees un pattern para SD queproveeDvelop
Hemoshablado de todo lo queprecisamospara la aplicación, pero y québrindamospara los desarrolladores de estas apps? Algoyahablamos, énfasis en poderdesdeunamismaherramientadesarrrarpara multiples plataformas, facilidadespara team development, para testing, paramodelado de procesos.Desde un lugartenerunavisiónholística de la Seguridad de lo queconstruimos.Hemostrabajado mucho en todoesto en estaversión, en la integración con lasdistintasextensionesque les permitenacelerar la creación de sussoluciones.
Y con esto de acelerar,tenemos hoy un GeneXus en el quehemosbajadoenormememente los tiempos de build, especialmente en el Upgrade 4 queestamosliberando.Un aceleradores la funcionalidad de deploy to Cloud. Hemoscontratadoservidores en Amazon y X Evolution 2 permiterealizar los ciclos de prototipacióndirectamente contra esosservidores en la nube.Eso les permite a udsrápidamenteirmostrandosusavances a susclientes y obtener feedback temprano de lassolucionesque van construyendo. Facilita y acelera el ciclo de desarrollo y test.Estafuncionalidad ha sidomuybienvenida , de hecho hay XXXXXX prototipos en estamodalidad.
El desfío ha sido y es nuestro, brindarles una herramienta robusta con la que puedan crear fácilmente y rápidamente soluciones internamente tan complejas como les mostré y a la misma vez externamente tan simples y funcionales como las que mostró Gustavo hoy
Desde Julio quesegunnuestrosnumerosyamás de la mitad de los usuarios de la X están con X Evolution 2, de hecho un tercio de ellosestá con el Upgrade 3 liberado en Junio.El Upgrade 4 de GeneXus X Evolution 2 está en proceso de liberación, hemosliberadohaceunosdías el preview 2 del mismo.Y a propósito del Upgrade 4, traesoporte de generaciónparaiOS 7.Y eso me hizoacordar de lo siguiente.
En el 2002hubo un eventoqueuna parte del mundo, en la que me incluyoesperamos en forma ansiosa. Microsoft iba a liberar el .NET framework 1.0.Se podíanhaceraplicaciones Web super escalables, con el últimolenguaje, llamado C#.Fue un gran cambio, enormementedisruptivoparaquiendesarrollaba a manoparaplataformas Microsoft. Todocambiaba.
Cuando Microsoftliberaba .NET, GeneXusgenerabayapara .NET, esogeneróimpacto, sorpresa.
Perodesdeentoncesvivimosmáscambios.Vivimos un constantecambio. iPhone, iOS, Todo Touch, Android.Disrupciónconstante
Y el últimoeventodisruptivo lo acabamos de tener la semanapasada.
Hubo un evento enestosdíasquetambiénatrapó a parte del mundo, en el que me incluyo. Se liberóiOS 7 y muchos de uds y de los quetienendispositivo Apple ya se lo actualizaron, ya lo tienen en susdispositivos.Tim Cook lo expresóasí: Es el mayor cambiodesde iPhone.Es solo unaversiónnueva de iOS, peroesmuydiferente.Traegrandescambios en experiencia de usuario y funcionalidad. Esecambiotrae mucho trabajoparadiseñadores, y muchísimotrabajoparaquienesdesarrollan a manoparaiOS. Porque no solamentehubocambiosdisruptivos de UI, hubocambiosdisruptivos en las APIs.