SlideShare a Scribd company logo
#GX3175
Smart Device Offline Apps
Overview
Pablo Mazzilli
@PabloMazzilli
pmazzili@genexus.com
#GX3175
OFFLINE = ¿NOT CONNECTED?
#GX23
#GX3175
Centralized Data
• Cross-Device Apps
• Security
• Real Time Information
• Value Added Info
• Full Integrated Systems
#GX3175
#GX3175
#GX3175
#GX3175
Connectivity
#GX3175
OFFLINE = NOT CONNECTED+
SYNCHRONIZED
#GX3175
The Model
#GX3175
Offline App
Customers
Products
Orders
Master Data
Events
#GX3175
• Centralized Data Base
• REST Services Sync Programs
(.net, java , ruby)
• Local Data Base
• Load Master Data
• Events Records without connection (Android, Objetive-c)
• Events Sync when connected
• Events status
Offline App - Requirements
Solution
#GX3175
Main Object SD
Property Connectivity Support:
- Online (default)
- Offline
#GX3175
Online  Offline
BLBL
Business
Level
Business
Level
Services
Level
Services
LevelApp UIApp UI
SyncSync
Business
Level
Business
Level
App UIApp UI
#GX3175
OfflineDatabase Object
#GX3175
Receive
Data Synchronization Criteria
- Automatic
- Manual
Data Synchronization Granularity
- By Row
- By Table
#GX3175
Send
Local Changes Processing
- When connected
-User defined (Send Method)
Events are Business Components!
#GX3175
Offline App Definition
An autonomous application (not connection aware), with
automatically generated Sync programas, and executed
unattended.
Tilo Offline Status
#GX3175
Offline Status - Tilo
• Beta 1
• Offline DB and SD Programs
• Master Data sync (one way)
• Beta 2
• Events sync (iOs and Android)
• Security – GAM
• API Events Status
Cases
#GX3175
From .NET Mobile to Android
Sales Force App
160 users
2000 orders p/day
11.500 customers
BackEnd : Xev2 .Net / Oracle 11g + GAM
#GX3175
Metro DF
#GX3175
¡ GRACIAS !
THANKS!
o Next - Mobile sales force using Android tablets and integration
with SAP
o 10:30 – Offline: Architecture and development with GeneXus
o 11:00 –Advanced Concepts in Offline Applications
pmazzilli@genexus.com @PabloMazzilli
#GX3175
www.genexus.com/encuentro

More Related Content

PDF
Sincronización en aplicaciones offline
PPTX
Aplicaciones offline para Smart Devices
PPTX
The Missing Feature: Blockchain contracts
PDF
Sprint 84
PPT
Crystal Accounts overview by Datatronics Nig Ltd
PPTX
SplunkLive! Salt Lake City June 2013 - Ancestry.com
PPTX
[MongoDB.local Bengaluru 2018] Using Change Streams to Keep Up With Your Data
PPTX
Modern problems in backend engineering, Siim Kaspar Uustalu
Sincronización en aplicaciones offline
Aplicaciones offline para Smart Devices
The Missing Feature: Blockchain contracts
Sprint 84
Crystal Accounts overview by Datatronics Nig Ltd
SplunkLive! Salt Lake City June 2013 - Ancestry.com
[MongoDB.local Bengaluru 2018] Using Change Streams to Keep Up With Your Data
Modern problems in backend engineering, Siim Kaspar Uustalu

What's hot (10)

PDF
[WSO2Con EU 2018] The Rise of Streaming SQL
PPTX
PDF
APIdays London 2019 - Connect to banks easily using GraphQL of course, Joao M...
PPTX
.NET Fest 2017. Андрей Антиликаторов. Проектирование и разработка приложений ...
PPTX
Automate Your Dynamics 365 CE Admin Tasks With Flow!
PPTX
Database index(sql server)
PDF
Доклад разработчиков Exonum на третьем митапе сообщества блокчейн-разработчик...
DOC
Sap bodi bods online training course
PPTX
Ch-Ch-Ch-Ch-Changes: Taking Your MongoDB Stitch Application to the Next Level...
PDF
Real Time Event Processing and In-­memory analysis of Big Data - StampedeCon ...
[WSO2Con EU 2018] The Rise of Streaming SQL
APIdays London 2019 - Connect to banks easily using GraphQL of course, Joao M...
.NET Fest 2017. Андрей Антиликаторов. Проектирование и разработка приложений ...
Automate Your Dynamics 365 CE Admin Tasks With Flow!
Database index(sql server)
Доклад разработчиков Exonum на третьем митапе сообщества блокчейн-разработчик...
Sap bodi bods online training course
Ch-Ch-Ch-Ch-Changes: Taking Your MongoDB Stitch Application to the Next Level...
Real Time Event Processing and In-­memory analysis of Big Data - StampedeCon ...
Ad

Similar to Aplicaciones Offline para Smart Devices: Visión General (20)

PPTX
Building Your First App with MongoDB Stitch
PDF
[Serverless Meetup Tokyo #3] Serverless in Azure (Azure Functionsのアップデート、事例、デ...
PDF
Innovate with the data you have with UiPath and Snowflake.pdf
PPTX
[MongoDB.local Bengaluru 2018] Introduction to MongoDB Stitch
PDF
GDC 2015 - Game Analytics with AWS Redshift, Kinesis, and the Mobile SDK
PPTX
Cortana analytics ou comment office 365 peut rendre vos données plus intellig...
PPTX
Grokking Engineering - Data Analytics Infrastructure at Viki - Huy Nguyen
PPTX
Ibm xamarin gtruty
PPTX
The Future of CASBs - A Cloud Security Force Awakens
PDF
Big Data And HTML5 (DevCon TLV 2012)
PPTX
TechDays NL 2016 - Building your scalable secure IoT Solution on Azure
PDF
Faites évoluer votre accès aux données avec MongoDB Stitch
PDF
GDG DevFest Ukraine - Powering Interactive Data Analysis with Google BigQuery
PDF
Voxxed Days Cluj - Powering interactive data analysis with Google BigQuery
PPTX
Time series Analytics - a deep dive into ADX Azure Data Explorer @Data Saturd...
PDF
Cloud Experience: Data-driven Applications Made Simple and Fast
PDF
2014 DATA @ NFLX (Tableau Customer Conference)
PPTX
Integration with Dynamics 365 / Power Platform
PDF
The Hitchhicker’s Guide to Windows Azure Mobile Services | FalafelCON 2014
PPTX
AI-Powered Performance Monitoring for Integrations by Ricardo Torre
Building Your First App with MongoDB Stitch
[Serverless Meetup Tokyo #3] Serverless in Azure (Azure Functionsのアップデート、事例、デ...
Innovate with the data you have with UiPath and Snowflake.pdf
[MongoDB.local Bengaluru 2018] Introduction to MongoDB Stitch
GDC 2015 - Game Analytics with AWS Redshift, Kinesis, and the Mobile SDK
Cortana analytics ou comment office 365 peut rendre vos données plus intellig...
Grokking Engineering - Data Analytics Infrastructure at Viki - Huy Nguyen
Ibm xamarin gtruty
The Future of CASBs - A Cloud Security Force Awakens
Big Data And HTML5 (DevCon TLV 2012)
TechDays NL 2016 - Building your scalable secure IoT Solution on Azure
Faites évoluer votre accès aux données avec MongoDB Stitch
GDG DevFest Ukraine - Powering Interactive Data Analysis with Google BigQuery
Voxxed Days Cluj - Powering interactive data analysis with Google BigQuery
Time series Analytics - a deep dive into ADX Azure Data Explorer @Data Saturd...
Cloud Experience: Data-driven Applications Made Simple and Fast
2014 DATA @ NFLX (Tableau Customer Conference)
Integration with Dynamics 365 / Power Platform
The Hitchhicker’s Guide to Windows Azure Mobile Services | FalafelCON 2014
AI-Powered Performance Monitoring for Integrations by Ricardo Torre
Ad

More from GeneXus (20)

PPTX
After Chatbots Yo (Ro) Bots
PDF
Construya las aplicaciones del futuro ¡hoy!
PDF
Live Editing in Action
PDF
Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...
PDF
¿Pensando en implementar un sistema de gestión integral en su organización?
PDF
K2B Tools el compañero de viaje ideal hacia el futuro
PDF
Sd y Plataformas
PDF
PXTools: Nuevo generador y nuevos controles responsivos
PDF
APPlícate: Aplicaciones móviles para el desarrollo de la industria
PDF
GeneXus 4 Students
PDF
La importancia de ser responsive
PDF
K2B: El ERP nativo para el mundo GeneXus
PDF
GeneXus 15 (Salto)
PDF
GeneXus Cloud Deployment Services. El camino a la nube.
PDF
LigaMX con GeneXus: De 0 a 1.700.000 de usuarios
PDF
Innovando con GeneXus y SAP
PDF
Going mobile
PDF
Audit+: La mejor forma de auditar KB’s GeneXus
PDF
WW+, SD+ y Audit+: Potencie GeneXus la Suite Plus
PDF
Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...
After Chatbots Yo (Ro) Bots
Construya las aplicaciones del futuro ¡hoy!
Live Editing in Action
Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...
¿Pensando en implementar un sistema de gestión integral en su organización?
K2B Tools el compañero de viaje ideal hacia el futuro
Sd y Plataformas
PXTools: Nuevo generador y nuevos controles responsivos
APPlícate: Aplicaciones móviles para el desarrollo de la industria
GeneXus 4 Students
La importancia de ser responsive
K2B: El ERP nativo para el mundo GeneXus
GeneXus 15 (Salto)
GeneXus Cloud Deployment Services. El camino a la nube.
LigaMX con GeneXus: De 0 a 1.700.000 de usuarios
Innovando con GeneXus y SAP
Going mobile
Audit+: La mejor forma de auditar KB’s GeneXus
WW+, SD+ y Audit+: Potencie GeneXus la Suite Plus
Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...

Recently uploaded (20)

PDF
Zenith AI: Advanced Artificial Intelligence
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PDF
project resource management chapter-09.pdf
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PPTX
Chapter 5: Probability Theory and Statistics
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
Tartificialntelligence_presentation.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Getting Started with Data Integration: FME Form 101
PPTX
A Presentation on Artificial Intelligence
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
WOOl fibre morphology and structure.pdf for textiles
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PPTX
TLE Review Electricity (Electricity).pptx
PDF
1 - Historical Antecedents, Social Consideration.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
Zenith AI: Advanced Artificial Intelligence
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
project resource management chapter-09.pdf
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
Chapter 5: Probability Theory and Statistics
Programs and apps: productivity, graphics, security and other tools
Tartificialntelligence_presentation.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Getting Started with Data Integration: FME Form 101
A Presentation on Artificial Intelligence
OMC Textile Division Presentation 2021.pptx
WOOl fibre morphology and structure.pdf for textiles
SOPHOS-XG Firewall Administrator PPT.pptx
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
TLE Review Electricity (Electricity).pptx
1 - Historical Antecedents, Social Consideration.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
A comparative study of natural language inference in Swahili using monolingua...
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf

Aplicaciones Offline para Smart Devices: Visión General

Editor's Notes

  • #3: Offline definition: Not under the control of a central computer Not connected to a computer or computer network. Si miramos la definición de Offline, se refiere a poder operar en forma totalmente independiente a un sistema central. Cuando pensamos en una App Offline, es eso lo que precisamos? Puede una app hoy estar totalmente desconectada ? Veamos algunos ejemplos
  • #4: Esto son 3 ejemplos de app que apuntan a actividades o perfiles de usuarios bien diferenciados: La primera es Pesobook, una app de las que denominamos “Consumer App”, es decir, para cualquier usuario del mundo. La segunda es la app del Evento, es decir, para una Comunidad especifica. La tercera es una app para Fuerza de Ventas, es decir, los usuarios en este caso son los vendedores de una empresa particular. Esto es lo que en gral se denomina Business Apps. Que tienen en común, además del hecho de haber sido creadas con GX ? Las 3 van sobre datos centralizados …
  • #5: Trabajar con datos centralizados tiene muchas ventajas, algunas destecadas:
  • #9: … pero además, tener los datos centralizados permite: dar valor agregado a las app, dando info sobre los eventos registrados (directa o inderectamente) por otros usuarios de esa misma app (mi peso respecto al promedio) que ante actualizaciones del contenido, pueda acceder rapidamente a ello (desde el sistema de retaguardia de la app del evento, se agrega / elimina alguna presentación, cambio de horario, etc). Si no estuviesen los datos centralizados, no podriamos tener esta app disponible para el evento, porque se publico una semana antes y los datos se fueron alterando, incluso en el propio evento. La app la uso en varios devices, y los favoritos que voy marcando quiero verlos en cualquiera de ellos. en el caso de la app de FV, esa app en sí parte de un sistema corp. El pedido que el vendedor ingresa ,termina generando un orden de produccion, una factura, etc, es decir esta integrado a un sistema mas general.
  • #10: El problema de trabajar con datos centralizados, es la conectividad, que si no disponemos de ella, puede limitarnos en su funcionalidad. Y en algunos escenarios es un factor importante. Ahí surge el tema de que nuestra apps continúen funcionando en ambientes de conectividad limitada o nula. . Poder registrar mi peso en el momento que me lo tomo. . Poder acceder a la agenda del evento, sabiendo que no tengo 3g o wifi en el momento. . Para el caso de FV, mas que una opción, es una necesidad. Si no tengo conectividad, podría no vender…
  • #11: El objetivo entonces es que cualquier App pueda funcionar simpre independientemente de la conectividad Aplicaciones que en general tienen conexión, pero que tienen que seguir prestando sus funcionalidades principales antes la pérdida de esta. Ahora, tenemos que re-hacer esas Apps para que funcionen offline, o pensar diferente ? Esta pregunta la responderemos al final… Veamos ahora los requerimientos de una app offline
  • #12: Esta es una imagem de al gente de la Fundacion SEADE (Sistema Estadual de Analisis de Dados) de Brasil ( http://www.seade.gov.br/ ) Recopilando info sobre Empleo a través de una app SD en la zona metropolitana de Sao Paulo. Muestra lo importante de : Poder usar la app sin conectividad Necesidad de enviar los datos al sistema centralizado ni bien exista conexión (ante la eventualidad de pérdida o robo del dispositivo). Se paga por visitas.
  • #13: La solucion es hacer la app totalmente desconectada? Por lo que vimos antes, no es una opcion. Aplicaciones que en general tienen conexión, pero que tienen que seguir prestando sus funcionalidades principales antes la pérdida de esta. Ahora, tenemos que re-hacer esas Apps para que funcionen offline, o pensar diferente ? Esta pregunta la responderemos al final… Veamos ahora los requerimientos de una app offline
  • #15: Es el caso del vendedor ambulante que debe tomar pedidos a sus clientes en distintos lugares con un  SD . En algunos puede tener conectividad y en otros no. Lo que requiere este escenario es que en el caso de no tener conectividad igual se pueda tomar el pedido (aunque sea de forma temporaria * ) para luego mandarlo de forma definitiva. Este escenario comprende todas las actividades que deben recabar datos desde un SD en áreas de poca conectividad. Ejemplos: un hospital, datos sobre enfermedades en el domicilio de los pacientes, obteniendo datos en la calle, en el campo, o similar. Los datos recabados son procesados luego, en una base de datos centralizada. De forma abstracta podemos decir que este escenario consiste en poder registrar un  Evento  (un pedido, un registro medico, etc.) que necesita consultar una serie de datos relacionados al mismo (Clientes, Productos, etc), que llamaremos de datos  Maestros  y realizar una serie de calculos (total del pedido) y ejecutar reglas (no se puede pasar el limite de credito). A su vez el registro del Evento puede alterar los datos Maestros (el stock de un Producto).
  • #16: Tener ya cargados los datos Maestros antes de entrar en modo desconectado. Poder registrar el Evento cuando el aparato esta desconectado en modo 'temporario' pero realizando todos los calculos y controles del caso conectado. Poder enviar todos los Eventos registrados en modo temporario cuando se tenga conexion (volviendo obviamente a ejecutar todas los calculos y controles que se realizaron en forma temporal anteriormente). En el caso que se rechazo el Evento (porque las reglas fallaron) tener algun mecanismo para poder modificarlo/cancelarlo. El momento cuando se realiza esta operacion puede ser automatica (cuando se recupera la conexión) o manual (el usuario decide cuando hacerlo) Es importante que en el momento de enviar los Eventos al server estos se puedan enviar en el mismo orden cronologico en el que fueron digitados. Un problema a resolver es que pasa si cuando se envian los datos al server algun valor del Evento cambia (por ejemplo cambia el total del Pedido).  Poder visualizar los Eventos que estan en modo temporario.
  • #18: Cuando esta propiedad toma el valor Offline, en el prox Run suceden, en forma automática, varias cosas: Se generan los programas para crear la base de datos en el device (SQLite). Ahora, no preciso toda la base de datos, sino un subconjunto de ésta. Ese subconjunto se puede determinar automaticamente, en base a los programas que ese main accede. Se generan esos programas (Proc, data providers, BC ) en forma nativa, porque ahora tienen que ejecutar en el dispositivo (Java , Objective-c). A partir de este cambio, ese main y sus llamados que hereden la propiedad Offline van a ir siempre sobre la base de datos local. Por ultimo, se generan automaticamente los procedimientos de sincronización, tanto para obtener los datos maestros del servidor al device, como para enviar los eventos que se registran locales del device al server. Todo esto es transparente para el desarrollador GX. Relacionado con el ultimo punto, tienen algunas opciones:
  • #19: A nivel de arquitectura, si hacemos un comparativo entre online y offline, vemos que en offline, todos los data providers , procs, BC ya no se acceden a través de una capa de servicios REST, sino que se general locales, en el lenguaje nativo.
  • #21: Indicar cual es el criterio para obtener los datos Maestros, si queremos que sea automática, en ese caso, basta indicar el intervalo de tiempo en que queremos que se haga la sync. Y si queremos Sync por registro, es decir, solo vienen los cambios realizados en el server, o por tabla, es decir, se borra todo y se insertan nuevamente los datos. En cualquiera de estos dos casos, la Sync solo se realiza si en la tabla hubo cambios.
  • #22: Aquí se indica en que momento quiero enviar las modificaciones realizadas locales, siempre que exista conexión o definida por el usuario.
  • #23: App autónoma , independiente de la conectividad, con mecanismos de sincronización generados automáticamente , respecto a un sistema central, y ejecutados en forma desatendida.
  • #27: Caso: Conversion rapida. La empresa Infomodulus de Brasil ha desarrolloado un sistema general para fuerza de Ventas. Esta en produccion desde hace un par de años, desarrollo iniciado con el generador .net mobile. Actualmente todo el backend de la aplicación esta en GX X Evolution 2 , generado para .net con Oracle y la seguridad a través del GAM. Los 160 usuarios ya estan con la solucion Android desarrollada con la X Evolution 2. El desarrollo de la primer version offline en Android de la aplicación que entro en produccion en setiembre, llevó un total de 35 horas, con la version alpha de GX.
  • #28: App del Metro para el DF (Mexico) con info sobre lineas de tren. 170.000 descargas ! Esta offline para iOS.
  • #29: - de 15/12/2012 a 30/03/2013 foram enviados 14256 pedidos e 16934 conexões com nosso servidor; - o usuário adaptou-se rapidamente a nova ferramenta; - o usuário tem a percepção que está trabalhando, praticamente, online, devido ao uso dos webservices; - a aplicação se demonstrou estável, tendo um baixo nível de chamados; A Catarinense é distribuidora exclusiva dos Sorvetes Nestlé para o Estado de Santa Catarina, sendo que nosso pico de vendas é de 15/dez ao Carnaval, ou seja, exatamente o período em que nossa aplicação foi implantada. Acho interessante ressaltar, que começamos a utilizar o Genexus há 2 anos somente.
  • #30: SEADE (Fundacao Sistema Estadual de Analisis de Dados) de Brasil ( http://www.seade.gov.br/ ) junto con el apoyo de Fornax, estan desarrollando una app Offline de Encuestas, para recopilar info sobre Empleo en la zona metropolitana de Sao Paulo. Es una app que va sobre servicios existentes. No tiene middleware. Se conecta a los servicios directamente desde la app offline.
  • #31: Nuevamente, escenarios bien diferentes, pero aplicando soluciones inteligentes y automáticas, para que Uds pueden poner foco en su negocio, y hacer la diferencia. Muchas gracias!