52 UTE - Una aplicación Smart Device completamente Off-line con GeneXus X Evolution 3

Post on 19-Jun-2015

308 views 5 download

description

UTE - Una aplicación Smart Device completamente Off-line con GeneXus X Evolution 3

transcript

UTE - UNA APLICACIÓN SMART DEVICE COMPLETAMENTE OFF-LINE CON GENEXUS X EVOLUTION 3 Ing. Juan Marcelo Bustamante PuntoExe Consultores jmbl@puntoexe.com.uy www.puntoexe.com.uy www.pxtools.com.uy

Antecedentes

12K

3.75K

Antecedentes

DEMO

EL PROCESO DE DESARROLLO

¿Cómo comenzamos un desarrollo Off-Line?

• Sistema Operativo • On-Line u Off-Line

¿Con qué OS comenzamos?

Ventajas y desventajas de

Ventajas • Fácil Configuración • KBN • Fácil Debug

Desventajas • Compilación lenta

en Off-Line

Ventajas y desventajas de

Ventajas • Compilación Rápida

Desventajas • Configuración de

ambiente más complejo

• Difícil hacer Debug • Errores de

Compilación difíciles de comprender

¿Con qué OS comenzamos?

¿Con qué Tipo comenzamos?

Off-Line On-Line

Ventajas y desventajas de On-Line

Ventajas • Bases de Datos

tradicionales • Mayor información

en el LogCat

Desventajas • Programación

orientada a On-Line

Ventajas y desventajas de Off-Line

Ventajas • Desarrollo en

ambiente final

Desventajas • Mayor complejidad

en acceso a los datos SQLite

• Menor información en el LogCat

¿Con qué Tipo comenzamos?

Off-Line On-Line ✔

EL PASAJE A OFF-LINE

¿Cómo pasamos de On-Line a Off-Line?

Main Program: True Connectivity Support: Offline

¿Cómo pasamos de On-Line a Off-Line?

Data Receive Criteria: Manual Send Changes: Never

Elementos a considerar

• KBN no soportado para Off-Line

• Acceso a Base de datos por SQLite

TIPS MANEJO DE ADB (ANDROID DEBUG BRIDGE)

Tips – Base de datos en SDCard

Tips - Trabajo con múltiples emuladores

Ejecución diferencial por emulador adb -s emulator-<emulator port> <adb command> Ejemplo de Bat aprovechando funcionalidad @ECHO OFF CHOICE /C:468 /N /M "Last Emulator port number 4, 6 or 8?" IF ERRORLEVEL 1 SET LASTPORTN=4 IF ERRORLEVEL 2 SET LASTPORTN=6 IF ERRORLEVEL 3 SET LASTPORTN=8 @ECHO ON adb -s emulator-555%LASTPORTN% …….. Pause

Tips del adb Install apk: adb install “<path>\<apk name>.apk” Execute application from KBN: adb shell am start -n com.artech.prototyper/.PrototyperActivity -e url "http://<server>/<webapp>/" -e name "<KBN Application Name>" Execute application from apk: adb shell am start -n <app namespace>/.Main Check Devices: adb devices

Tips del adb Access Log: adb logcat Restart Server: adb kill-server adb start-server Check Device status: adb get-state -e myGxAvd Access Shell: adb shell

Tips del adb Shell: cd, ls sqlite3

Directorios de base de datos offline: cd /sdcard/Android/data/com.artech.<kb name>.<main program>/files/db

SQLite3 .help .tables .quit .schema [tablename] select * from <table>;

SOPORTE MÚLTIPLES DISPOSITIVOS

Soporte multi-dispositivo

¿En qué nos ayuda GeneXus?

• Separar Theme por plataforma • Definir imágenes por Theme • Definir Layouts por Plataforma

¿En qué nos ayuda PXTools?

• Layout References (Patterns) • Envío de SMS (External Object)

Layout References

Layout References

Layout References

Envío de SMS

AYUDA

Tipos de Ayuda • Screenshots

Tipos de Ayuda • Programados dentro de la App

Tipos de Ayuda • Vinculando a una Web Page On-Line

Primeras pruebas con screenshot y textos

Pruebas con resoluciones mayores

Pruebas con resoluciones menores

Última prueba con el Diseñador

CONCLUSIÓN

Conclusión

• Screenshots con textos genera grandes inconvenientes: – Mucha interacción con el diseñador. – Exesivo trabajo para el diseñador para hacer cada una de las pantallas – Diversidad de imágenes de una misma pantalla para soportar

dispositivos de distinto tamaño. – No se logra la calidad de fonts requerida para verse correctamente en

pequeños dispositivos.

La única alternativa es desarrollar una ayuda propietaria de la aplicación que permita desplegar textos que no sean

basados en imágenes.

User control encontrado • Image Map

Primeras pruebas de concepto

El resultado final

DEMO DE AYUDA

Quedará el módulo PXToolsSDHelp disponible para toda la comunidad.

¿Preguntas?