Usos de los Devices. (Gráfica que muestra que en el top 5 de los usos que le damos a nuestros Smart Devices)En Mayo del 2011 salió un estudio realizado por la empresa CloudTak. En este estudio le preguntaban a la gente que uso le da a sus teléfonos celulares, preguntaban a las personas para que áreas usaba su teléfono e hicieron un ranking de los usos más frecuentes.El Top 5 se ponía de los siguientes: Navegar en Internet, Hacer llamadas, Redes Sociales, Emails y el mas usado es Mandar SMS .Muchos de nosotros, tenemos y usamos Smart Devices. ¿Qué uso le damos? ¿Es solo nuestro Teléfono?. . Ustedes que usos le dan?, estoy seguro que si le pregunto uno por uno sacamos una lista enorme de cosas que hacen habitualmente con su teléfono.Ya no estamos utilizando nuestro teléfono para hacer llamadas, esto se da gracias a todas las cosas que los dispositivos nos ofrecen.Par que utilizamos nuestros telefonos, smartphones, smartdevices. Si hacemos una encuesta sobre cuales que cosas hacen cada uno de ustedes en el día a día podremos tener una lista de funciones enorme. Dentro de ellas pueden estar….… bueno estas son las top 5 funciones mas usadas según cloudtalk y su estudio que realizaron en mayo del 2011.
No hay duda de que cada vez más gente utiliza teléfonos y tabletas inteligentes, que cada vez hay más aplicaciones para estos dispositivos, y esto representa una verdadera revolución.A diferencia de las aplicaciones web, las aplicaciones que corren nativamente en estos dispositivos, nos permiten acceder e interactuar directamente a todas sus características (cámara, gps, giróscopo, etc.). Las aplicaciones más utilizadas, las que están haciendo la revolución, son aplicaciones nativas.Con GeneXus estamos encaminados en ese punto… Estamos yendo en esa dirección..…Con GeneXus se desarrollaron varias aplicaciones…
(mostrar printscreens de cada una)Con GeneXuses posible hacer estas aplicaciones y hoy quiero mostrarles la potencia que pueden lograr y lo fácil que es hacerlo.Ejemplos de Aplicaciones SD hechas con GX:…Por nosotros:: PesoBook, Aplicación del Evento …por la comunidad…: GXBus..por gente que nunca había visto GX (en su mayoría)XintonizerTenemos que tener claro….
Hagan Aplicaciones SD….Tenemos que tener claro que hay cosas que no dependen de nosotros. Hagamos lo que hagamos, lo cierto es que las personas utilizan cada vez más estos dispositivos. Todas las personas y no solo los empleados de tal empresa o los vendedores de tal otra. Y cada persona elige su propio aparato, unos eligen un iPhone, otros preferirán un BlackBerry, otros un Samsung con Android, etc. Lo que sí depende de nosotros es si aprovechamos esta gran oportunidad o no. Con GeneXus podemos hacer ya aplicaciones para cada uno de estos dispositivos, y en esta charla vamos a repasar las tecnologías que permiten esto y qué fácil es utilizarlas. Yo estoy convencido de que tenemos que hacer aplicaciones nativas para smartdevices. Muchos de ustedes ya estuvieron trabajando con la beta de la Evo2 y tuvieron oportunidad de probarlo. Sigan, hagan sus ideas, realícenlas; cuentan con el apoyo de nosotros y de la comunidad. Si no lo hicieron todavía, metanse con la evo2, toquen/prueben aprovéchenla para poder entender los Smart devices y poder realizar sus ideas.
Breve introducción¿Entonces que vamos a ver hoy? lo que quiero contarles hoy es como en GeneXus adoptamos el nuevo enfoque de los Smart Devices. Esto nos da un nuevo hardware el cual explotar. Nosotros estamos familiarizados con muchas de las funcionalidades que nos proveen pero ¿nuestras aplicaciones? Con GX podemos crear muy fácilmente aplicaciones que interactúen con el device. Con solo unos clicks podemos lograr que nuestras aplicaciones envíen emails, naveguen en internet, usen la cámara, hagan llamadas y mucho mas. Usemos esta facilidad, saquemos provecho del device.
Elementos de un Smart DeviceEn esta etapa voy a mostrar los distintos elementos que hay en un Smart Device y para cada uno: Beneficio, Ejemplo de distintas realidades cada vez.
CámaraCámara: La mayoría de nosotros la utilizamos para sacar fotos y grabar videos. Podemos agregar información multimedia a nuestra aplicación con nuestro dispositivo.Cámara como Scanner. Relativamente nuevo, es una forma de utilizar la cámara como entrada de información de otro tipo. No estamos acostumbrados a este uso pero nuestras aplicaciones pueden sacar provecho de esto.Beneficio: Utilizar la cámara como entrada de información más alla del uso convencional de entrada de multimedia.Ejemplos: Una aplicación para Smart Devices que pueda escanear un código de un producto y tener la info del prod, stock, etcSonido (Audios ):Utilizamos la música constantemente, alarmas, canciones etc.Nuestras aplicaciones pueden tener que hacer uso de esto. Agrega flexibilidad a la hora de ofrecer una aplicación el poder agregrle contenido de audio.Beneficio: Acceder a archivos de sonidos, darle contenido multimedia a nuestras aplicaciones. Es mas en una de las aplicaciones que mostre de ejemplo desarrollada con GX, tuvieron una gran idea, y llevaron esta feature a otro nivel, haciendo que un SD se convierta en radio.Ejemplo: Xyntonizer: Una aplicación que utiliza esa capacidad de los devices y lo llevan a otro nivel, hacen streaming de distintas radios. Teléfono, Mails, SMSMe imagino que estas tres funcionalidades las sabemos, aunque no usemos nuestros teléfonos para hacer llamadas, sabemos cómo funciona cada uno de ellos. Como usuarios es trivial, pero nuestras aplicaciones tienen que poder hacerlo. Muchas de las ideas que ustedes pueden tener, contienen información de este tipo. Necesitamos que los usuarios de nuestras aplicaciones desde nuestra aplicación puedan realizar alguna llamada, enviar un texto o email.Beneficios: en cualquier realidad de negocios o de aplicaciones tener una forma de hacer una llamada desde la aplicación nos da flexibilidad.Puedo usar el ejemplo de los eventos.En si el en quenos beneficiamos con esto es el poder ofrecer al usario de nuestra aplicación las formas de comunicación básicas.GPS Mapas: donde estoy yo y donde están las cosas de interésComo usuarios estamos acostumbrados a utilizar los mapas de los Smart devices. La tecnología de GPS es cada vez mas usada y nosotros somos quienes las usamos. Las aplicaciones que hagamos en algún momento pueden tener /van a tener elementos que tengan algún tipo de información georeferenciada. Interactuar con los mapas es algo obligatorio. Utilizar los mapas como fuente de ingreso o visualización de información.Beneficio: Poder utilizar el GPS como una forma de hacer la aplicación con elementos georeferenciados. Utilizar los mapas para el ingreso y visualización de información con contenido geográfico. Ejemplos: Poder ver elegir dependiendo de la ubicación geográfica alguna sucursal de un comercio.Redes SocialesLas redes sociales ya no son un boom, son una realidad. Nosotros en nuestros dispositivos tenemos 1, 2 o mas aplicaciones de las mismas. Todos tenemos cuenta de FBK, Twitter, nuestra empresa tiene cuenta, hay hasta mascotas que tienen twitter. Beneficios: Yo en lo personal mi celular es mi distribuidor de contenido social, y si tengo una aplicación puedo querer postear las mismas que yo uso. Permitir que nuestra aplicación postee. Hasta por un tema de promoción.Ejemplos: La aplicación del evento permita postear en twitter comentarios sobre la misma.ContactosLa información de todos nuestros contactos, familia, empresa, amigos están en nuestro addressbook.. Beneficio: Poder traer, agregar borrar los contactos.Lista de oradores agregarlos a mi calendario, (CHISTE: poder llamar a algún orador, vos me prometiste que podía hacer…)CalendarioAgendar eventos en mi calendario. Yo por ejemplo, soy muy olvidadizo, lo que no está en mi calendario no lo hago… Beneficio: Podemos utilizar esta feature, por un tema de seguimos presente en el device del usuario aunque no ese en nuestra aplicación. Además de interactuar con una aplicación muy útil. Le hacemos fácil al usuario acordarse de algo de nuestra empresa, aplicación, etc.Ejemplo: Agendar esta charla. Hacer acuerdo al usuario de la charla.Navegar por internet:Uno de los top 3 mas usados, como les presente al principio de nuestra charla. Permitir que nuestra aplicación sea capaz que navegar por la web desde un browser, poder tener links o paginas embebidas directo en nuestro SDBeneficio: tener contenido web emebebido en nuestra aplicación. Podemos mostrar paginas web desde nuestra aplicación.Ejemplo: Notifications:Concepto nuevo: Notificaciones que son enviadas al dispositivo desde el server. Es una comunicación con el usuario que no es iniciada por el mismo. Poder nosotros, iniciar la comunicación, nosotros despertarlo.lBeneficio: No tengo que esperar que el usuario de la aplicación haga algo con la aplicación, mi aplicación le manda algo al usuario. Yo incentivo al usuario.Ejemplos: Tengo nuevos descuentos en mi comercio, los mando. Web reactivo y aplicaciones nativas proactivas…
Ahora vamos a ver el marco que GeneXus nos provee para utilizar todos estos recursos.
Estas son las tecnologias que Genexus nos brinda y con las cuales nosotros podemos utilizar para interactuar con los smartdevices.
¿Qué es ? Si buscamos una definición podemos estar un buen rato tratande de mapearla para sacar cuales conceptos aplican a nosotros los tecnológicos y cuales no. Cosas que tenemos que tener en cuenta:Dominio semántico se le aplican a objetos o variables (campos) de GenexusPara el alance de nuestra charla un dominio semántico es un tipo de dato + un comportamiento para ese tipo de dato. Tipo de dato: por que define como se va a almacenar, que restricciones debe cumplir, tipo de dato nativo etcétera.Comportamiento: Dependiendo de algunos factores como si está editando o viendo el campo con este dominio tendrá determinada apariencia y funciones.El comportamiento de los campos que tienen un dominio semantica cambian obviamente si estamos viendo el registro o editandolo.Lo que siempre trata es de brindarle un comportamiento que ayude al usuario tanto en el ingreso de la informacion (reduciendo el input) o tambien al ver la informacion, realmente ver lo que la informacion dice.
Date & TimeSon tipos de datos conocidos por nosotros.Las restricciones las conocemos de como es el formato de la fecha y de la horaEn GeneXus el decirle a un campo que es de este tipo ya le estamos diciendo que es lo que queremos ingresar.
Image & Video & AudioSu tipo de dato nativo. Vamos a ver un ejemplo en GenXus de como utilizamos el tipo de dato video.Estamos en una TRN en la cual tengo un atributo lo único que hago es decirle a GX, que el tipo de este atributo es Video. Y Listo. Si estoy En edición miren el iPAd. Me levanta el siguiente pickerker. Y aquí lo grabamos… 3.. 2… 1…. Listo miren lo salvamos. Ahora si queremos ver el registro, tenemos en modo preview y lo podemos ver desde el iPad. (Salieron muy bien!!!)Lo mismo aplica para Image o audio, un picker que te da la posibilidad de usar uno almacenado o poder grabar, o capturar enseguida.Nota: Aquí me gustaria recalcarles una cosa, nosotros damos por sentado que teniendo un registro de tipo image me va a permitir usar la camara, pero si tengo dispositivos sin camara? Obviamente no voy a poder, bueno, nuestras aplicaciones, nativas saben donde estan ejecutando, somos platformaware… entonces en el ipad 1 nunca me daria la opcion de ssacar una foto…
Feed & HTML & URL & ComponentFeed: En edicio cualquiera de los tres acepta una URL, lo que cambia es el comportamiento cuadno lo estamos viendo. HTMLEn el ingreso acepta html y lo despliega luego en modo de visualización. Estos dominios nos permiten interactuar con paginas web. Este es un punto que nos permite que nuestra aplicación tenga contenido web pero siempre en base de una aplicación nativa. Por ejemplo el dominio url nos permite hacer links mediante un tap a una pagina web. Y el dominio component permite embeber una pagina web en mi aplicación.Con el dominio url…
… con el dominiourl… el usuario sale de mi aplicación y va al navegador a esa pagina, mientras que en con el component podemos naegar por internet desde mi aplicación sin nunca salir.Esto nos permite a todas las ventajas y potencia que nos da las aplicaciones nativas agregarle contenido web…. Contenido que nuestras empresas ya tienen y esta ahí para ser accedido…VB: Nosotros tenemos una infraestructura…
Email & Address & PhoneSon dominios usados para información personal. Cada uno tiene sus restricciones de tipo conocidas, un teléfono son números, un mail tiene que tener @ y . . Y un address es texto con números, ciudad y país.La parte divertida de estos dominios es a la hora de la visualización. Cada campo que tenga uno de estos dominios al hacer tap sobre ellos ejecuta algún comportamiento. Por ejemplo mail te lleva tu mail default o pregunta cual para mandarle un mail a esa dirección, lo mismo teléfono, etc…Ojo, como es todo código nativo sabemos que hay devices que no apiica, un campo de tipo teléfono, no te va a hacer llamadas desde un iPAd. Esto es algo trivial pero GX lo resuleve automáticamente por que sabe donde esta ejecutando.
Geolocation:Para ustedes que significa el -36.12, -57.231 en realidad nada, números para el 5 de oro, en realidad son las coordenadas del radissonvisctoria plaza. Este debe ser uno de los dominios con comportamiento mas sofisticado. Tanto para ingresar como visaulizar podemos hacerlo a través de un mapa. Picker, y la info se puede mostrar también sobre un mapa.Para ustedes que significa el -36.12, -57.231 en realidad nada, numeros para el 5 de oro, en realidad son las coordenadas del radissonvisctoria plaza
ANDROIDIOS
¿Qué es? Son objetos que GeneXus nos ofrece para interactuar con las APIs del device. Esto es: Contactos, Calendario, GPS, PushNotifications, ScanBarCode, SendMEssageEsta forma que GeneXus nos provee es de realizar un evento y a partir de este evento es que se hace alguna de estas cosas. Puede ser un botón por ejemplo que desencadene estas cosas.Con estos objetos externos podemos invocar mediante seteo de propiedades y programación declarativa cualquiera de las funcionalidades que ofrecen estas aplicaciones al device. Como estas aplicaciones las podemos usar nosotros como usuarios del device, también las pueden usar nuestras aplicaciones.Como estamos generando condigo nativo cada una de estas acciones sabe donde esta corriendo y que otras aplicaciones están corriendo. Como en los dominios vimos que en un iPad, o tableta de android el dominio Phone no levanta para llamar en estos casos es lo mismo.Es mas, hasta mas interesante. Para mostrarles elegi un la API para poder mandar mensajes. Lo que hacemos es tan simple como crear una acción, para ahorrar tiempo la tengo creada y Listo, lo que hago es dcirle, bueno aquí mediante esta acción quiero llamara a tal Objeto de SDApi y madna un mensaje. Internamente cuando la ejecutemos nos dara todas las pisbilidades que tenemos de enviar mensajes dependiendo del dispositvio en el que estamos.Vamos a ver….DEMO: (Interop.SenMessage : Twitter)
No solo le muestra información también le permito agendar y una vez agendado ya tiene vida propia….. No le tengo que hacer acordar sino que el smartdevice se encarga de hacerle acordar a mi usaurio.
Los controles son “” distintas dormas de ver la misma información. Por ejemplo una lista de registros podemos querer verla como lista o como un mapa. EL ejemplo claro esta en nuestra aplicación del evento, la cual esta mostrada como lista, con el nombre de los restaurantes o como mapa. Los controles ayudan para cambiar la forma de presentar la información que ya tengo en mi aplicación.. Los controles ya son conocidos para usuarios GX. Agregan comportamiento para cierta funcionalidad que necesitamos. Para SmarDevices no son la excepción. Hay controles que permiten interactuar con el dispositivo o que interactúan con el dispositivo y GX ofrece estos.ImageGallery: Es una función típica donde muestra una galería de fotos. Solo aplica para los tipos de datos Image.SDMaps: una forma de mostrar muchos puntos sobre un mapa. Aplica para registros que contienen algún campo de tipo Geolocation. A nivel de campo:Scanner: Permite a un campo decirle que su valor va a venir desde la cámara.Rating y los mas comunes como Wheel, combo box, check box, etc. Cuáles son los más usados y explicar que solamente son mezclar algunos dominios semánticos con un poco más de sofisticación. Mencionar acá que se pueden hacer controles personales per esa es la charla de Marcos Crispino.