Offline Mobile Applications with GeneXus (Part II)

Documentos relacionados
Prototyping the mobile application

Behavior: Caching. Video filmado con GeneXus X Evolution 3

Offline mobile applications

Offline Mobile Applications with GeneXus (Part I)

Demo: empezando a desarrollar la aplicación en su parte móvil

Características de las aplicaciones móviles

Applying And Using GAM

Characteristics. Vamos a ver las características principales de este tipo de aplicaciones.

Transitions between objects

BEHAVIOUR : INVOCATION BETWEEN OBJECTS

Demo: dos formas de obtener y ejecutar el compilado de la aplicación móvil

Online Arquitecture. Page1. Video filmado con GeneXus tm 15

Introducción a GAM. Ahora queremos agregarle Seguridad a la aplicación, tanto a la parte web como a la de Smart Devices. Page1

El modelo conceptual de las aplicaciones móviles

Conceptual Model. Aquí podemos ver los cuatro tipos de pantallas que tenemos disponibles:

Smooth web user experience

Orders, Searches, and Conditions

Behavior Client side events grammar

Events. Video filmado con GeneXus X Evolution 3

Designing: App Navigation Style

Orden y lugar de ejecución de los eventos de Web Panels

Prototipación y ejecución

Deploying the mobile application

Controles: Múltiples layouts por fila de un grid

Controles: tipos de control en el diseño

Arquitectura de aplicaciones para Smart Devices

Demo: Starting to Develop the Mobile Application

Demo: empezando a desarrollar la aplicación en su parte web

Prototipado y ejecución de aplicaciones SD con GeneXus

Invocations Between SD Objects

Introducción GAM. La gran mayoría de las aplicaciones modernas necesitan algún esquema de login, autenticación y autorización.

Ahora veremos qué sucede cuando el objeto B debe devolver un valor a quien lo llama, al finalizar su ejecución.

Eventos en Smart Devices

El Startup object es el objeto de la Knolwledge Base que queremos sea el que se ejecute cuando presionemos F5, en lugar del Developer Menu.

Aplicación del GAM. Una vez autenticado el usuario podrá comenzar a utilizar la aplicación.

Creación de la Knowledge Base

Modalidad Offline. Entonces vamos a comenzar por lo básico, es decir a qué le llamamos aplicaciones offline?

Canvas and Transformations (Part I)

Para eso abrimos el ambiente de desarrollo de Genexus.

Deploying. Veremos a continuación los detalles de la Puesta en Producción y Publicación de aplicaciones para Smart Devices.

Data Provider que carga colección con valores fijos (no extraídos de la base de datos)

Componentes de pantalla (Extended controls)

Inicio de un proceso desde un objeto GeneXus, usando la API de Workflow

PROCEDIMIENTOS ALMACENADOS

Overview GeneXus - Demo: 2.Cómo obtener el ejecutable de la KB y declaración de algunas reglas del negocio.

Campus Virtual UAM. Manual de funcionamiento. Docencia en Red. Universidad Autónoma de Madrid

Modelo conceptual de Smart Devices

Cómo listar información agrupada

Introducción: un paseo por la aplicación móvil en ejecución.

MANUAL DE USUARIO POS TOOLS.

ClinicalKey Educación Médica

Hasta el momento hemos visto ejemplos de aplicación de Data Provider que requieren acceder a la base de datos para recuperar información.

Mi nombre es Silvia Keymetlian y trabajo en el equipo de Soporte de GeneXus.

Prototipado, instancias e historia de un proceso

Overview GeneXus - Demo: 3. Se agregan transacciones para registrar Clientes y Productos al sistema de facturación.

Ahora queremos agregarle Seguridad a la aplicación, tanto a la parte Web como a la de Smart Devices.

UNIVERSIDAD DE BURGOS SERVICIO DE INFORMÁTICA Y COMUNICACIONES CENTRO DE ATENCIÓN A USUARIOS

Integración con otras aplicaciones

Supongamos que queremos definir un botón en la pantalla WWCountry, que invoque un listado pdf (objeto procedimiento) previamente definido.

Ejecutando la aplicación por primera vez

José Luis López Delgado* Gestión comercial con Velneo V7.1. Capitulo I. Instalación de las aplicaciones El entorno de trabajo

Cómo enviar un mail automático y ejecución del acceso a la API programado previamente

Cuando el web panel tiene un grid, entonces para determinar tabla base GeneXus observa lo que se indica arriba.

Administrando las bases de conocimiento (GXserver)

Creación de la KB. Page1. Video filmado con GeneXus X Evolution 3. Vamos a ejecutar a GeneXus

SERVICIO NEXTWEB 1.0. NEXT Administrativo. Software Administrativo Empresarial MANUAL DE INSTALACION Y USO DE NEXTWEB 1.0

Agregando funcionalidad con patrones

Guía de Usuario elife Backup

CONFIGURACIÓN ACTIVESYNC PARA acensexchange.

Designing: Transitions between objects

Uso de la API del GAM

Reglas en transacciones - Más conocimientos

PROCESO DE SINCRONIZACIÓN

Demo: Starting to Develop the Web Application

Introducción a Smart Devices

Administrando las bases de conocimiento

Introducción a Smart Devices

Cómo utilizar Conference Manager para Microsoft Outlook

Integridad Transaccional

1 Objetivo 3 2 Estructura de seguridad 3 3 Uso K2BTools Fast Start 4. 4 Customización: 15

PROCESO PARA CAMBIO DE SERVIDOR

Base Tables and Navigation

Poblar de datos las tablas desde la propia transacción

Conoce Movistar Cloud

Tabla de contenido App de Publicaciones actualizables... 2 Introducción... 2 Autenticación Por dirección IP Por usuario/clave...

Uso de la API del GAM

El editor de formularios web es el Abstract Layout, en el cual entraremos en detalle en unos momentos.

Orders Searchs Conditions

Fórmulas Locales. Page1. Video filmado con GeneXus X Evolution 2. Veremos ahora qué es una fórmula local.

Innovate Mayorista Tecnológico, S.L. C/ Camilo José Cela, 27 2º Fernan-Nuñez (Córdoba)

Cómo implementar un menú de entrada para la aplicación móvil

Manual SesMobile para Alumnos y Padres (iphone) Revisión 1.3

Introducción a procedimientos, listados y comando For each

1. Para enviar reportes de asistencia al padre de familia o al mismo estudiante: - Ir a informe de ausencias en el menú del app

Usando las Apis del GAM

A continuación, escribe su nombre de usuario y contraseña, y hace clic en Sign in en la parte inferior.

Manual para configurar un servidor AppServ En una computadora. Y operar el sistema SICAM en intranet. Nucúncu Tecnología

CAMARA IP WIFI I1500W

Manual de configuración de wifilocal Windows XP Antena externa Ubiquiti Nanostation 2 9 de Septiembre de 2010

Manual De uso de la consola de Google Maps Engine

Transcripción:

Offline Mobile Applications with GeneXus (Part II) Hasta ahora vimos qué son las aplicaciones conectadas, parcialmente conectadas y Offline. Pero cómo hacemos en GeneXus para construir una aplicación Offline? Si queremos que una aplicación se ejecute en forma Offline, debemos asignar la propiedad Connectivity Support de su objeto main, en el valor Offline. Este valor habilita la generación de la aplicación en forma Offline y se generá el código nativo necesario para que la aplicación pueda ser ejecutada sin invocar a los servicios REST del servidor web. A partir de que a un objeto main se le asigna la propiedad Connectivity Support en Offline, se instala la aplicación en el device, se crea la base de datos local y se crean ahí esas tablas. Así, como el dashboard EventDay de nuestra aplicación es nuestro objeto main, modificamos su propiedad Connectivity support pasándola a Offline. La propiedad Connectivity Support está también a nivel de objetos que no son main. Su valor puede ser Online, Offline o Inherit. Page1

Todas las tablas que tengan la propiedad Connectivity support = Inherit, utilizadas en objetos SD invocados desde el Main (directa o indirectamente), se van a crear en la base de datos local del dispositivo. A no ser que se les configure que sean Online, en cuyo caso no se creará la tabla en la base de datos local porque se accederá a la tabla del servidor a través de los servicios REST. El valor Inherit solamente aparece en objetos que no son main. También es posible asignar a un objeto la propiedad Connectivity Support en Offline, en cuyo caso se crearán tablas en la base de datos local y el objeto trabajará sin conexión, aún en el caso de que el objeto main trabaje Online. Ahora bien, qué tablas efectivamente se llevan cuando una aplicación pasa a ser Offline? Si tenemos este árbol de invocaciones, entonces las tablas que se van a llevar al dispositivo son todas las de los objetos Offline y los que heredan la conectividad Offline del que los invocó. Pero también se va a contemplar la integridad referencial y los atributos mencionados (tanto en paneles como en prompts). Para cada objeto main que tenga la propiedad Connectivity Support en el valor Offline, se crea un objeto llamado Offline Database. Éste se crea la primera vez que se hace un build sobre el dicho objeto main luego de cambiar la propiedad Connectivity Support al valor Offline. Page2

Al crearse, se crean también en el lenguaje nativo del dispositivo, los programas para crear la base de datos local. Este objeto es el encargado de determinar cuándo se produce la sincronización, cuáles son las tablas que se crearán en la base de datos local y también cuáles son los datos que se llevan a las mismas cuando se sincronizan con las tablas del server. El objeto Offline Database dispone de eventos, condiciones y propiedades que permiten determinar su comportamiento. El único evento que se puede programar es el Start Event. Se ejecuta en el Server, antes de que cada envío de datos al cliente suceda, para una sincronización, es decir únicamente en el Receive. Este evento está pensado para inicialización de variables y algún otro procesamiento que se debe hacer antes de la sincronización de tablas. El uso de las Conditions es, al igual que en cualquier otro objeto GeneXus, para definir filtros sobre los datos y solamente se utilizan para el Receive. Los filtros se aplican a las tablas del server, para saber qué datos se llevan al dispositivo. Esto implica que los datos en la base de datos local pueden ser un subconjunto de los datos de la Page3

base de datos del server y como caso particular, que no hayan registros de una tabla específica en el dispositivo. Son independientes y se aplican a la tabla extendida, por lo que GeneXus tiene la inteligencia de determinar sobre qué tablas se aplican. En el listado de navegación se pueden ver las condiciones que se aplican a cada tabla. Para las expresiones de las condiciones se pueden utilizar variables predefinidas o definidas por el desarrollador, en cuyo caso deben asignarse en el evento Start. En el objeto OfflineDatabase es donde se configuran las propiedades que vimos para el Send y el Receive. Para finalizar algunas puntualizaciones. Si se tiene una aplicación Offline que usa GAM, hay que tener en cuenta que las credenciales siempre estarán en el server, por lo tanto el login sólo se puede hacer estando Online. Una vez que se loguea, sí se puede trabajar en forma Offline. En aplicaciones móviles no está implementada la autorización, sino solamente la autenticación. Page4

A continuación, veremos una breve demo de cómo construir una aplicación Offline en GeneXus. Lo que voy a hacer ahora es ejecutar la aplicación. En definitiva, qué es lo que voy a mostrar? Que como tengo la aplicación todavía online, cuando hago un por la interface web voy a ver el cambio en el dispositivo, y si cambio algo en el dispositivo lo voy a ver actualizado en la interface web; porque la aplicación está online, o sea que el dispositivo está sincronizado con los servicios REST, o sea que está viendo la base de datos de la aplicación. Después lo que voy a hacer es convertirla a una aplicación online. Bueno, me estoy logueando en la aplicación web Page5

Vamos a ver algún dato Acá por ejemplo Alejandro Cimas y vamos a cambiarle Alejandro; vamos a suponer que su segundo nombre empieza con A Y salvamos. Ahora vamos a la aplicación Android que estoy ejecutando con el KBN Page6

Pero ven que acá apareció Alejandro A. Cimas, o sea que el cambio fue automático: Si yo voy aquí, y edito el valor Y luego vamos aquí, al web, vemos que automáticamente quedó hecho el cambio: Page7

Lo que voy a hacer ahora es convertir esta aplicación en una aplicación Offline. Para eso, vamos a GeneXus, y en mi objeto Main, que en este caso es este menú EventDay, voy a cambiar la propiedad Connectivity Support al valor Offline. Y después voy a hacer un Run. Vemos que se creó, bajo el EventDay, bajo mi Dashboard, el objeto EventDayOfflineDatabase., que es el objeto en el cual yo puedo cambiar todos los criterios para hacer la recepción o hacer el envío de datos hacia IDEs del server. Page8

Además, también veo en el Análisis de Impacto que todas estas tablas se van a crear en forma local en el dispositivo. Ya que yo no modifiqué ninguno de estos Work Withs, por lo tanto todos tienen la propiedad Inherit, y por lo tanto se van a crear estas tablas en el dispositivo. Lo que sí voy a hacer es cambiar estos valores: en lugar de que el criterio de actualización sea cuando la aplicación inicia, le voy a poner cada cierto tiempo, y que la actualización, o sea la sincronización, sea cada 10 segundos. Perfecto. Ahora lo que voy a hacer es correr la aplicación nuevamente. Ahora ya tenemos las tablas generadas en el dispositivo, y toda la lógica necesaria de sincronización, y yo lo que quiero es que esa sincronización sea cada 10 segundos; por eso puse en la propiedad Minimum Time Between Receives que el tiempo máximo entre recepciones sean 10 segundos. Page9

Aunque tenemos aquí nuestra aplicación, que es Offline, todavía está conectada, así que lo que vamos a hacer es desconectarla de Internet. Para eso, voy a prender el modo avión Ahora sí, la aplicación está totalmente deconectada. Vamos por la interface web, y vamos a hacer algún cambio. Nos logueamos Page10

Bueno, vamos a suponer que ahora a Alejandro Cimas le decimos que no es de Uruguay, sino que es de Estados Unidos. Y salvamos. Vamos ahora al emulador, y vemos que Alejandro Cimas sigue diciendo Uruguay Por qué? Porque esto no se ha sincronizado todavía. Vamos a aprovechar y vamos a cambiar a otro de los oradores Page11

Y por ejemplo, vamos a suponer que Alejandro se llama Eduardo también. Y vamos a salvar. Aquí tenemos el cambio Vamos a actualizar el navegador obviamente no están los cambios porque no está sincronizado, o sea Alejandro Cimas es de USA y Alejandro Blengio no se llama Eduardo. Page12

Así que lo que voy a hacer ahora es sincronizar los cambios del dispositivo. O sea que voy a volver a poner el dispositivo online para que se produzca la sincronización. Muy bien. Ahora ya está conectado nuevamente. Volvemos al navegador vamos a actualizarlo Y vemos que ahora aparece Alejandro Eduardo Blengio, es decir que lo que se había cambiado en el dispositivo se actualizó en la base de datos del server. Y vamos a ver ahora si los cambios estos fueron para el dispositivo. Efectivamente Alejandro Cimas dice que ahora es de Estados Unidos, o sea que también se sincronizaron los datos del dispositivo. Page13

O sea que mientras estuvo sin conexión, yo pude estar trabajando con el dispositivo como si hubiera tenido conexión, y en el momento que se reestableció la conexión por WiFi, ahí se produjo la sincronización. O sea que puedo perfectamente trabajar en una aplicación Offline, y después en el momento que logro la conexión nuevamente, se sincroniza. Terminamos aquí esta Demo básica, era simplemente para dar una idea de qué tan fácil es poder crear una aplicación Offline en GeneXus. En este video hemos visto como con GeneXus podemos implementar aplicaciones móviles conectadas, parcialmente conectadas, o totalmente desconectadas, así como también el proceso de sincronización de los datos entre el dispositivo trabajando en forma Offline o parcialmente conectado, y el servidor web. Si desea más información sobre este tema, visite el link que se muestra en pantalla. Page14