Una sucursal del supermercado en su bolsillo

28
#GX23 Una sucursal del supermercado en su bolsillo Ignacio Roqueta @iroqueta

Transcript of Una sucursal del supermercado en su bolsillo

Slide 1

Una sucursal del supermercado en su bolsilloIgnacio Roqueta@iroqueta

#GX23Buenos das, mi nombre es Ignacio Roqueta, pertenezco al equipo de desarrollo de GeneXus. Hoy les voy a contar sobre una experiencia que tuvimos realizando una aplicacin mvil para iOS y Android para la principal cadena de supermercados de Uruguay, Tienda Inglesa.Para variar un poco voy a empezar la charla por el final de la historia. 1

#GX23Esta es la pieza publicitaria que realizo Tienda Inglesa para promocionar la aplicacin. Sali por primera vez en Marzo de este ao, un mes despus de haber subido la aplicacin a los markets.La misma se emiti en los principales canales del Uruguay en horario central. Cada vez que se emita los usuarios se bajaban y entraban a la aplicacin en rfaga, haciendo sacar humo a los servidores. Tambin se realiz publicidad en facebook y google pero ninguna tuvo tanta repercusin como la que se realiz en la televisin.2

Comienzo

#GX23Bueno, ahora si entonces vayamos al comienzo. Cmo fue que empez todo esto?A fines de Octubre del ao pasado nos contactaron de la empresa que le realiza la pagina web y el e-commerce a la gente de Tienda Inglesa porque queran realizar una aplicacin mvil de e-commerce similar al que ya tenan en web.Se arregl con ellos entregar la primera versin de la aplicacin a comienzos de ao, con lo cual tenamos algo menos de dos meses para realizarla.

3

GX Evo 2GAMSQL ServerGenerador JavaGX Server

#GX23Con respecto al desarrollo en GeneXus se trabaj con GeneXus Evolution 2. Generador Java y SQL Server como DBMS.Se us GAM para resolver la parte de autenticacin y seguridad y con GeneXus Server para manejar el trabajo en equipo y sus respectivos cambios.4

Diseador grficoProgramador GeneXus juniorDos analistas GeneXus seniorProgramador PHP SQL ServerRecursos

#GX23En cuanto a los recursos se cont con:Dos analistas GeneXus senior que realizaron el trabajo de arquitectura y desarrolloUn programador GeneXus junior.Un diseador grfico encargado de realizar los diseos de pantalla, imgenes navegacinUna programador PHP provisto por la empresa contratante encargado de facilitar la integracin5

BuscadorCarritoRegistracin y autenticacinCompra con entregaFeaturesGeo localizacin de sucursalesNavegacin por categoriasHistrico de comprasBarcode scanner

#GX23En la primera versin la aplicacin iba a contar con las siguientes features:Registracin y autenticacin de usuarios.Navegacin por categoras.BuscadorBarcode scannerGeo localizacin de sucursalesHistrico de comprasCarritoCompra6

Base prpiaData ViewsServicios WEB - SOAPIntegracin

#GX23Tenamos que integraron a un sistema ya desarrollado que no estaba implementado usando GeneXus.Las opciones que se manejaron para implementar la integracin fueron 3:Servicios WEB SOAP: Este caso implica que el sistema externo tenga que implementar servicios para cada una de las funcionalidades que la aplicacin mvil necesite.Data Views: Por medio de una herramienta de ingeniera inversa mapear las tablas del sistema existente con transacciones en la base de conocimientos.Base propia: Usar una base propia de la aplicacin mvil y que la misma se mantenga replicada con la base del sistema externo.

La opcin que se tom en este caso fue la de usar una base propia, ya que los tiempos con el que contbamos no era mucho y era inviable ponerse a implementar servicios por parte del sistema externo y el uso de data views podra presentar problemas adicionales que no se quera tener. De esta forma el desarrollo GeneXus se poda realizar de la forma tradicional y mientras se desarrollaba el sistema en paralelo la gente del sistema externo se iba a encargar de realizar los procesos de replicacin entre las bases de datos.7

Cmo desarrollar un mdulo para Smart Devices sobre una aplicacin existente?

#GX23Link a charla de Bonilla8

REST / sslApp-ServerSQL-ServerJDBC

Load Balancer

Amazon

BackendData-ReplicationSOAPServicios:- Autenticacin- Checkout de la orden- Notificaciones

#GX23Teniendo en cuenta lo anterior esta fue la arquitectura con la cual se trabaj.

9

Forma de trabajo

#GX23La forma de trabajo que utilizamos no quiere decir que sea la forma de trabajo que hay que usar, es solamente una forma de trabajo que nos dio resultados.Dividimos los mdulos entre los dos desarrolladores seor y cada uno trabajaba local en sus mdulos y peridicamente todo era integrado usando GeneXus server.Primero se program prototipando exclusivamente en iphone para luego de tener el modulo terminado realizar layouts especficos para Android en los casos que fuera necesario. Mucho de los layouts sirvieron para ambos plataformas. Por ultimo se realizaba el mismo mecanismo para el diseo para tabletas.En cuanto a la interaccin con el diseador, el mismo nos enviaba los diseos en una imagen detallando tamaos colores e imgenes en caso de ser necesarios y eso lo simulabamos en el diseo de los layouts. 10

Diseo para desarrolladores

#GX23Base de conocimientos

#GX23Informacin de la base de conocimientos.Procedimientos 143External Object 7SD Panels 79Transacciones 65SDTs 35

12

#GX23A principios de Enero la aplicacin estaba terminada y fue entregada para su teseto funcional. La misma fue testeada por dos meses y a fines de Febrero la aplicacin fue publicada en los stores.A continuacin algunos print screen de la aplicacin sobre iPad.13

#GX23

#GX23

#GX23

#GX23

#GX23

#GX23

Smart Devices Apps: Make it nice, make it with GeneXus

#GX23Link a charla de Frankling20

Recursos a utilizar en UX de aplicaciones para Smart Devices

#GX23JMXStress TestGoogle AnalyticsTestear fragmentacinProduccin

#GX23En cuanto a la puesta en produccin de la aplicacin algunos puntos a mencionar:Es muy simple agregarle Google Analytics a la app. Es solo registrar la misma y luego poner en una propiedad de GeneXus el id que nos da Analytics. Con Analytics tenemos mucha informacin muy til para ver como va nuestra aplicacin. Adems de poder saber en tiempo real cuantos usuarios hay en el momento en la aplicacin y que estn haciendo, podemos obtener cantidad de uso por da, que pantallas son las mas usadas y como es que navega la gente en la aplicacin, esto nos puede ser muy til a la hora de disear nuevas funcionalidades.Stress Test: Siempre antes de poner en produccin una aplicacin que suponemos que pueda tener muchos usuarios concurrentes es recomendable realizar algn stress test con alguna herramienta. En este caso lo que tenemos que estresar son los servicios REST que van a atender los requerimientos de la aplicacin.JMX: Jmx, es una tecnologa que brinda Java para poder monitorear el comportamiento de la aplicacin en tiempo real. Es muy fcil configurar su uso en una aplicacin GeneXus y nos va a brindar informacin muy valiosa del comportamiento de la aplicacin en produccin. Como ser el uso del pool, objetos mas usados, sentencias que demoran mas, etc. En nuestro caso el uso de JMX en produccin nos permiti encontrar un memory leak y arreglarlo rpidamente.Testear fragmentacin: sobre todo en el caso de Android la fragmentacin es muy fuerte, hay muchos dispositivos con distintas capacidades de calculo, distinto tamao de pantalla y versiones del sistema operativo. En este caso la recomendacin es tratar de probar siempre en la mayor cantidad de dispositivos posibles la aplicacin.

22

#GX23Ac hay una foto testimonial del momento en que estbamos probando la aplicacin en varios dispositivos antes de poner en produccin.23

Ranking y comentarios

#GX23ComentariosEs importante estar siempre al tanto de los comentarios. La implementacin de prximas features muchas veces se realizan a travs de pedidos de usuarios en comentarios. En nuestro caso recibimos algunos reviews de una estrella de gente que no le gustaba que la aplicacin pidiera autenticacin para entrar. Eso nos impuls a implementar el usuario annimo en la ltima versin.En Android ahora se pueden responder los comentarios, hacerlo siempre que sea conveniente. Hubo un caso de un usuario que puso una estrella y despus que se le contest pas el review a 4 estrellas.24

#GX23En cuanto a la posicin en el store, estar en los primeros puesto siempre genera mas sinergia y por lo tanto mas downloads y uso. La aplicacin de Tienda Inglesa estuvo por varios das en la primera posicin del store de Apple. Incluso ocurri una peculiaridad, que en determinado momento 3 de las primeras 4 aplicaciones del store de Uruguay fueron desarrolladas usando GeneXus.25

Nuevas versiones y futuro

#GX23Es importante en una aplicacin ir subiendo nuevas versiones en forma peridica para mantener enganchados a los usuarios. En el caso de Tienda Inglesa actualmente se encuentra en la versin 3.0 y en cada versin se fueron agregando nuevas funcionalidades como las notificaciones, el usuario annimo, GiftCard y suscripcin a e-news para nombrar algunas. Adems se fue cambiando el look and feel de la aplicacin.En cuanto al futuro lo mas inmediato es convertir la aplicacin para que sea iOS 7 compatible, algo que ya nos permite realizar GeneXus Evo2 U4. Tambin esta en el radar incluir un scanner multiple, y hacer la aplicacin mas integrada al da a da de los usuarios, por ejemplo agregando recetas que permitan incluir sus ingredientes en forma transparente en el carrito.26

Resumiendo

#GX23Utilizando GeneXus Evolution 2 se pudo realizar una aplicacin para iOS y Android en 2 meses con dos desarrolladores. Una aplicacin para una empresa lder y que es usada por miles de usuarios. Una aplicacin robusta que maneja la entrega de pedidos y el manejo de dinero. Una aplicacin que esta a la altura de las aplicaciones de los principales sitios de e-commerce como por ejemplo Amazon o e-bay.GeneXus brinda todas las herramientas para poder hacer aplicaciones mviles de clase mundial, solo esta en nosotros el explotar su potencial.27

www.genexus.com/encuentro@genexus#GX23