10. MOBILE | UXQ 10
• Users expect a UX that matches their device
• Platform Providers define those standards
• Those standards are the same for every Consumer,
B2C or IntraCompany App
We provide a set of functionalities to
improve the generated UX
17. WEB| UX 17w
The Smooth User Experience Principles:
• Everything happens in a Single Page
• Transitions between data and views are now more
subtle, smooth
• The Server notifies the app if there are changes
• Less data traffic and processing needs make apps
perform better
42. GeneXus X Evolution 3
Overview
Gustavo Carriquiry
COO – GeneXus International
Genexus Day 2014 - Spring
Tokyo – May/2014
THANK YOU!
Notas do Editor
Buenas tardes a todos, soy Gustavo Carriquiry, Gerente de Operaciones de Genexus International.
Muchas gracias a todos por dedicarnos este tiempo y por su presencia aquí hoy.
Agradezco especialmente a Owaki San por su invitación y a todo el staff de Genexus Japan que me ha dado la bienvenida y recibido con enorme generosidad.
Es un honor para mi poder estar hoy acá con uds compartiendo estos minutos para contarles sobre la última versión de Genexus (X Evolution 3).
Genexus X Evolution 3 ha sido una versión sobre la cual hemos estado trabajando en los últimos dos años de Investigacion y desarrollo
Involucró a más de 1.000 personas 500 empresas de más de 25 paises durante más de un año en el proceso de beta test.
Esta versión ha sido desarrollada para cumplir con los requerimientos técnicos y funcionales que hoy tienen las empresas y que tendrán en el futuro cercano
Su liberacion final será el 29/Mayo en el 10 Encuentro Genexus de Mexico, de acá a dos días.
¿Cuáles son los pilares sobre los cuales construimos esta versión?
Mobile
Hemos madurado el generador por más de 4 años, lo que aprendimos de esa experiencia lo volcamos en el mismo. Es una evolución importante con respecto a la versión anterior en varios sentidos que veremos más adelante.
Web
El web como tecnología ha ido evolucionando también, fundamentalmente de la mano de los grandes jugadores que marcan tendencia y Genexus acompaña esa evolución posibilitando el desarrollo de este tipo de aplicaciones.
Enterprise
Con Genexus, tanto para Web como para Mobile, se desarrollan hoy en el mundo soluciones de gran porte y de misión crítica.
Tomando en cuenta el tamaño de las KBs que desarrollan nuestros clientes, hablamos de KBs de miles de objetos, hemos incluído funcionalidades en el IDE que permiten el mejor manejo de las mismas.
Por el lado de aplicaciones de misión crítica hemos avanzado en mejoras a BPM, Testing, Seguridad y Reporting.
Recursos:
Presentacion de armin: https://docs.google.com/a/genexus.com/file/d/0B6d1aMBsp6PdZllNR1ZKZ2w4U0U/edit
Presentacion offline – torrado: https://docs.google.com/a/genexus.com/file/d/0B16WMQ4Ab6W3ZG9tdkxSLW1nOEU/edit
Outliner: https://docs.google.com/a/genexus.com/spreadsheets/d/1bV4fJiJL95mCQxyez7VKCQsTzd71YkQlJmzEdxkzN0w/edit#gid=0
La solución de Ev2 y el contexto desconectado
Utilizando Genexus se pueden generar aplicaciones que ejecuten en ambiente Web (desktop) y a partir de la versión Evolution 2, también se generan aplicaciones nativas que ejecutan en dispositivos móviles.
Estas aplicaciones requieren conectividad con el servidor, son las que llamamos “aplicaciones online”.
Sin embargo hay escenarios donde la conectividad es nula o limitada, por lo cual se precisan aplicaciones que funcionen tanto cuando hay conexión como cuando no la hay.
El gran desafío entonces es entregar una aplicación que sea capaz de funcionar tanto cuando hay conexión como cuando no la hay y que mantenga la centralización e integridad de los datos del negocio. Estas son las que llamamos “aplicaciones offline”. Lo cual está disponible a partir de la Evolution 3.
Creación de la DB en el device y app que maneja información en la misma.
La clave está en dos aspectos.
Primero: la creación de la base de datos local en el dispositivo y que la aplicación almacene la información en la misma.
De este modo el usuario tendrá una aplicación plenamente funcional en su dispositivo aunque no haya conexión disponible.
¿Cómo? A partir de los objetos que se generan para Smart Devices somos capaces de inferir la mínima base de datos necesaria para almacenar la información en los dispositivos y que la aplicación siga ejecutando a pesar de no haber conexión.
Sincronizar la información cuando hay conexión disponible
Segundo: en el momento que haya conexión al servidor, los datos almacenados localmente serán automaticamente sincronizados con la base de datos central.
Pero lo realmente más sofisticado es que no solo somos capaces de inferir y generar cada componente en el lenguaje/arquitectura necesaria, sino que toda la sincronización de los datos entre ambas bases de datos se hace de forma automática.
Es decir, los datos serán almacenados en el dispositivo y cuando haya conexión disponible o cuando el usuario lo desee podrá sincronizar dichos datos con el servidor enviando la información actualizada y recibiendo del servidor la nueva información.
De algún modo hacemos trasparente para el usuario que en un momento dato tenga o no tenga conexión, la aplicación siempre funcionará del mismo modo y hacemos trasparente para el desarrollador las diferentes capas que se generan y el problema de la sincronización de la sincronización de datos.
(xxx candidata a eliminar)
How:
En Genexus simplemente se configura una propiedad que determina en qué arquitectura se generará la aplicación y luego algunas propiedades que gobiernan en qué momento y de qué modo se hará la sincronización de la información.
Los usuarios esperarán que la User Experience de la aplicación que usen sea consistente con el resto de las aplicaciones del dispositivo, sigan determinados patrones, sean claras y refinadas.
A su vez los fabricantes de las plataformas dictan estándares acerca de cómo debe ser dicha UX y, particularmente Apple, es muy exigente al respecto.
En este sentido, independientemente de si son Consumer Applications, Company to Consumer Apps o Intra-Company Apps, la calidad de la UX debe ser optima.
Genexus Evolution 3 entonces lo que provee es un conjunto de funcionalidades que permiten generar aplicaciones con esa calidad de UX y siguiendo los estándares necesarios.
(xxxx ver si consigo video y lo pongo como el de smooth)
De este modo se pueden desarrollar aplicación como esta.
Esta aplicación la desarrolló la gente de TVAzteca que es un grupo dueño de varios Canales de TV en México y la aplicación lo que hace es mostrar la grilla de programación de dichos canales.
Si se fijan es toda la grilla de programación donde muestra los canales en la parte superior.
Para el canal elegido se muestran los dias y horas con los programas de TV disponibles.
Si bien la información estructuralmente es similar para todos los días, se requería mostrar de algún modo resaltado la programación para el día actual (el día de hoy) por lo cual la fila donde se muestra el día actual es diferente a las otras filas. Tiene otro diseño y muestra otra información.
A su vez para ir a una fecha determinada se precisaba poder elegir de un calendario que se abriera sobre la propia aplicación.
De este modo toda esa aplicación, entre otras, utilizar recursos disponibles en la Evolution 3 para lograr esa user experience refinada y consistente con el dispositivo.
Del mismo modo se han creado decenas de aplicaciones siguiendo estos lineamientos
Nuestro compromiso con los clientes siempre fue soportar las plataformas que el mercado considerara lideres, en este sentido agregamos el generador para W8 en calidad de beta, el cual seguirá un ciclo evolutivo para alcanzar los niveles de madurez requeridos por nuestros clientes corporativos y altamente exigentes.
Del mismo modo que en el device hay estándares de UX dictados por los fabricantes y grandes jugadores, hay estándares de UX en el Web. Así los usuarios esperan que las aplicaciones tengan la UX de google apps, facebook, etc
(mkt: traducir y organizar texto)
Cuales son algunos de los principios que rigen esa User Experience Smooth.
Todo ocurre dentro de la misma pantalla. Los clicks se resuelven en la misma página (SPA)
Transiciones – el cambio de una vista a otra es mucho más sutil
Notificaciones web – el servidor avisa si hay novedades
Performance – menos tráfico y menos procesamiento porque no se procesa toda la página
(xxxx poner bien los efectos)
Quisiera mostrarles este ejemplo de una página desarrollada con Evolution 3 para un cliente que es un corredor de bolsa.
Esta es la pantalla principal de la aplicación donde muestra los principales indices del mercado, cómo han ido evoluciando los precios.
En esta sección verán que la información varía y no es como resultado de que el usuario haya tomado alguna acción sino que el server notificó de esos cambios a la página. De modo similar a Gmail cuando nos avisa cuando llega un nuevo mail o Facebook una notificación. Eso es lo que llamamos “notifications”.
Ahora verán que cada componente tiene una navegación independiente.
Se ocultan componentes y toda la página se adapta al cambio. Incluso durante todos esos cambios se hace con efectos visuales de transiciones.
En definitiva una user experience muy sofistica que es lo que el usuario de las aplicaciones Web esperan.
En Evolution 3 hemos implementado un conjunto de funcionalidades que permiten hacer “responsive web applications”
¿De qué se trata el Responsive Web?
Basicamente lo que permite la utilización de esta tecnología es que la información que se muestra y cómo se muestra se adapte al tamaño de la pantalla.
En este ejemplo tenemos una aplicación de muestra que se llama LightCRM que permite registrar Empresas, Personas y reuniones.
Veo esas opciones del menu en la pantalla principal de la aplicación de determinado modo, en este caso horizontal
Why
El acceso vía devices (no PCs) a internet está en constante crecimiento. La multipliciad de dispositivos (pantallas) que soportan un browser es enorme. Para que los usuarios puedan usar nuestras aplicaciones las mismas deben poder adaptarse al dispositivo donde ejecutan.
What
Implementar tecnologías y nuevas funcionalidades que posibiliten generar este tipo de apps (Responsivas)
How
Nuevo editor, themes con reglas en las clases, bootstrap
POC: LCRM
Sin embargo si modifico el tamaño de la ventana del navegador, si bien la información es la misma, la distribución de la misma dentro de la página cambia.
Incluso comparándolas lado a lado se puede apreciar que no solo pasan de horizontal a vertical, sino que incluso cómo se distribuye toda la información cambia.
A la izquierda tengo el “icono” de la opción y abajo del mismo el texto, sin embargo en la imagen de la derecha tengo el ícono de la aplicación y a su derecha el texto.
De modo similar si muestro, por ejemplo, una grilla, la información que aparece depende del tamaño de la pantalla.
En este ejemplo en ambos tamaños veo la columna con el CompanyName y también veo las acciones sobre las lineas de la grilla en ambos casos.
Sin embargo la información de la dirección, teléfono, etc no se muestra cuando la pantalla se achicó. En la medida que la agrande dicha información aparecerá visible.
(mkt se le pueden poner el marco de los devices)
Esto puede no parecer importante, sin embargo si pensamos en la multiplicidad de dispositivos y tamaños de pantalla que existen hoy en el mercado, que la aplicación se vea correctamente en esa gama de posibilidades es determinante para su éxito.
Así por ejemplo en un celular Android se vería así
(mkt se le pueden poner el marco de los devices)
En un iphone así
(mkt se le pueden poner el marco de los devices)
Y en un ipad así
La seguridad es un tema crítico y complejo porque cada vez más gente desde más lugares (dispositivos) accede a las apps. Esto aumenta la superficie de exposición y por ende los riesgos. Hay muchas cosas que pueden hacer los developers y los encargados de la infraestructura. Nosotros, como fabricantes de Genexus, la tomamos muy en serio.
Por el lado del código en si estamos en permantes evolución, tenemos especialistas en el tema y adherimos a la OWASP.
Por otro lado implementamos la Security Scanner que es una funcionalidad que permite explorar el código desarrollado en búsqueda de debilidades referidas a seguridad.
Por el lado de herramientas: Implementamos el GAM en la ev2 como un modulo para manejar centralizada la seguridad (web, Sd, etc) e integrable (con LDAP, etc).
En la ev3 agregamos la posibilidad del SSO y ser identity providers. Esto significa que puedo tener N aplicaciones que autentiquen contra un solo repositorio de usuarios.
Tengo N aplicaciones pero una funciona como “identity provider” de modo que mantengo los usuarios centralizados en esa y todas autentican contra la misma (ser un iprovider) pero a su vez una vez autenticado contra una de ellas, el resto no piden login.
De modo similar a como lo hace google con el mail, drive, etc o fbook con las apps que ejecutan dentro del portal.
(xxxxx print screen de aplicaciones contenidas en un repositorio, la lista)
A nivel de desarrollo simplemente se prende el GAM para las KBs que se quieran usar y luego se configura en la que será la iProvider la lista de apps que auntenticarán contra ella.
Why
(xxxx poner algo abstracto que muestre el negocio fisico (camiones, barcos, fabricas) y cómo medirlo (lupa, grafica, planilla)
El dinamismo de los negocios implica dinamismo también en la medición de los mismos. El "data analysis" precisa herramientas potentes y fáciles de usar que den "Empowering" a los usuarios finales.
(xxxx imagen de multiplicidad de dispositivos. Capaz se puede usar la de RWD).
A su vez los usuarios accederán a la información desde diferentes puntos geográficos y sobre todo desde diferentes dispositivos.
What
(xxxx logo de Gxquery 4.0)
Desarrollamos el objeto Query y GXquery 4.0 como una herramienta especializada en "reporting" GXquery 4.0.
How
(xxxx imagen de definición de consulta y ejecucion de la misma)
Utilizando Gxquery 4.0 los usuarios finales pueden desarrollar sus propias consultas sobre la base de datos operaciones, utilizando una interfaz amigable y entendible.
(xxxx imagen ejecutando en excel y en web)
Desde un browser o desde excel.
(xxxx la misma consulta en varios dispositivos)
Desde el dispositivo que prefieran o estén utilizando en ese momento.
(xxxx excel u otras exportaciones)
Consultas que pueden ser luego exportadas a excel, XML, PDF u otros.
(ejemplo ejecutando: http://apps3.genexusx.com/CarDealerU5JPC/Home.aspx)
Desarrollamos el objeto Query y GXquery 4.0 como una herramienta especializada en "reporting" GXquery 4.0.
Utilizando Gxquery 4.0 los usuarios finales pueden desarrollar sus propias consultas sobre la base de datos operaciones, utilizando una interfaz amigable y entendible.
Las principales caracteristicas son usabilidad, potencia e integración con la solución (aplicación) total.
Además las consultas se pueden ejecutar desde cualquier device, lo cual considerando la movilidad de las personas, es muy importante.
Consultas que pueden ser luego exportadas a excel, XML, PDF u otros.
Why
(xxxx imagen con un proceso de negocios y actores involucrados distribuidos fisicamente y con diferentes dispositivos)
La movilidad está a todos los niveles de la organización. Los procesos de negocio implican todos los niveles de la organización. Esto implica que un usuario participará de un proceso de negocios desde cualquier punto, device y momento que requiera.
Sin embargo el proceso de negocios es el mismo, solo cambia el modo por el cual el usuario accede al mismo.
What
Incluir los devices como "clientes" donde se puedan seguir procesos de negocio
(xxxx procesar: http://wiki.genexus.com/commwiki/servlet/hwikibypageid?25422)
How
(xxxx print screen de definición de proceso y una tarea con SD y web)
El flujo es el mismo, a cada actividad de le puede asociar un objeto web y/o un objeto SDPOCcreo que no hay.
Dentro de una Base de conocimientos se pueden definir procesos de Worfklow que involucren diferentes tareas
Para cada tarea se define un objeto Web que resolvía dicha tarea, por ejemplo, el ingreso de una reserva de un vuelo o una PO (orden de compra).
A partir de la Evolution 3 es posible asignarle a dicha tarea, además del objeto Web, un objeto Smart Device.
Con lo cual el usuario puede acceder a las mismas tareas del proceso de negocios desde su Desktop o su Celular con una aplicación nativa
Se mantiene entonces la definición del proceso de negocios y no importa con qué dispositivo acceda el usuario, se seguirá el proceso definido
(xxxx ver qué meter)
(mkt: queda el recuadro gris de la imagen)
Estamos liberando en este encuentro GXtest que es LA herramienta para test de aplicaciones Genexus.
Del mismo modo que Genexus es la herramienta para el desarrollo, las tareas de testing y automatización del mismo es GXtest.
Esta herramienta tiene muchos años en el mercado, sin embargo en los últimos meses hemos desarrollado un proyecto de homologación para el mercado japonés que incluye la capacitacion de personal local, la localización de la aplicación entre otras actividades.
No voy a profundizar sobre la misma porque Sebastian la estará presentando en la tarde.
(xxx poner algo de lo que se puede hoy?)
(XXX lem me manda info)
Estamos en el proceso de “BOR API Certification” el cual insume 9 meses por lo cual aun no están liberadas las funcionalidades que permiten este tipo de integración pero es algo que estaremos liberando en cuanto completemos dicho proceso de certificación.
Tenemos un explorar de las BAPIs que lee las mismas y permite seleccionar las que se quieran integrar.
Una vez seleccionadas las mismas se pueden importar en una KB genexus y quedan definidos como objetos de la propia KB sobre los cuales se puede desarrollar.
Una vez desarrollado la aplicación generada accede al SAP vía WebServices o vía RFC (Remote Function Call)
En resumidas cuentas todo esto es Evolution 3. La mejor versión para generar apps de Misión critica tanto para Moviles como Web
En definitiva Genexus Evolution 3 es el producto de 4 años de R&D y maduración de la generación para plataformas móviles
17 Años de experiencia en el desarrollo de aplicaciones web
Y más de 25 de desarrollo orientado al conocimiento para crear aplicaciones de misión crítica.