5.2WinDev Mobile: aplicaciones iOS y Android
Lo esencial en 30 segundos
- WinDev Mobile reutiliza el WLangage y el análisis, pero el móvil es un uso diferente: Yacine no traslada las decenas de pantallas de gestión, mantiene unas pocas tareas de terreno.
- La pantalla pequeña y lo táctil obligan a repensar la interfaz y la entrada: listas, valores por defecto y escaneo de códigos de barras sustituyen la escritura.
- La conexión incierta es la dificultad principal: base local, cola de modificaciones y sincronización con estrategia de conflictos, sin perder nunca una entrada.
Mini-caso hilado — Yacine dota a los técnicos de una aplicación móvil
Yacine desarrolla la aplicación de gestión de una pyme de venta de material eléctrico en Orán. Los técnicos y almaceneros quieren, sobre el terreno, escanear un producto, consultar su ficha, registrar un inventario y hacer firmar un albarán de entrega. Yacine crea una aplicación WinDev Mobile reutilizando el análisis y los procedimientos de negocio existentes, pero solo retoma esas pocas tareas: no traslada las pantallas densas del escritorio. La aplicación almacena los relevamientos en una base local HFSQL y los marca como no sincronizados. En el almacén, sin red, el técnico sigue registrando. Al volver la conexión, la aplicación envía los relevamientos pendientes. Yacine ha definido una regla de conflicto: el servidor gana en las cantidades de existencias, pero la firma y la foto del albarán se conservan. También prevé las reglas de publicación en las tiendas.
Caso autónomo de esta sección: reaparece en el curso, el esquema, el código y el reto 48 h de la sección 5.2.
1. Reutilizar, no trasladar
WinDev Mobile apunta a Android e iOS con el mismo WLangage, el mismo análisis y los mismos editores. Yacine reutiliza por tanto el modelo de datos y una parte de los procedimientos de negocio. Pero no traslada la aplicación de escritorio: una aplicación de gestión completa tiene decenas de pantallas, mientras que el terreno solo reclama unas pocas. El móvil no es una versión reducida, es un uso diferente: escanear un producto, registrar un inventario, hacer firmar un albarán. El perímetro es la primera decisión que hay que tomar.
2. Interfaz táctil y entrada
Una pantalla densa diseñada para un ordenador y un teclado es inutilizable en un teléfono. Yacine jerarquiza la información, divide las pantallas, agranda las zonas táctiles y reduce la entrada al mínimo imprescindible. Escribir texto en un teclado pequeño es lento y penoso: privilegia las listas de elección, los valores por defecto, el escaneo de códigos de barras, la foto, el GPS o la firma en pantalla. Los sensores del teléfono sustituyen ventajosamente muchas entradas manuales. El objetivo es que el técnico haga el gesto correcto con unos pocos toques, incluso con guantes.
3. Sin conexión, sincronización y tiendas
En el terreno, la red es incierta: sótano, almacén, zona sin cobertura. Una aplicación que exige una conexión permanente será abandonada. Yacine prevé una base local (HFSQL está disponible en móvil), una cola de modificaciones con marca temporal y una sincronización al volver la red. El punto difícil sigue siendo el conflicto: mientras un técnico modificaba una ficha sin conexión, alguien también la modificó en la sede. La estrategia debe ser explícita y adaptada al negocio, con una regla absoluta: no perder nunca una entrada del terreno. Por último, la publicación pasa por las tiendas (Google Play, App Store), cuyas reglas y validaciones evolucionan: hay que mantener la aplicación a lo largo del tiempo.
🔎 Ejemplo concreto — 🔎 Ejemplo concreto — Registrar un inventario sin conexión
Yacine registra un relevamiento localmente sin depender de la red:
// Saisie hors ligne d'un relevé d'inventaire
HAjoute(ReleveStock)
ReleveStock.CodeArticle = SAI_CodeArticle
ReleveStock.QuantiteComptee = SAI_Quantite
ReleveStock.DateReleve = SysDateHeure()
ReleveStock.Synchronise = Faux
HModifie(ReleveStock)
Resultado: el técnico trabaja en el almacén incluso sin conexión.
Reflejo: marcar la línea como no sincronizada para reproducirla más tarde.
Vocabulario de la sección
- WinDev Mobile
- Miembro de la gama PC SOFT para las aplicaciones Android e iOS, que comparte WLangage, análisis y editores con WinDev.
Ejemplo sencillo: Yacine crea la aplicación de escaneo e inventario para sus técnicos.
Lo que no es: aprender por separado el nativo Android e iOS.
Reflejo: móvil = misma base, otro uso.
- Perímetro móvil
- Conjunto restringido de las tareas realmente útiles sobre el terreno, elegido antes de diseñar la aplicación.
Ejemplo sencillo: Yacine mantiene escaneo, inventario y albarán de entrega.
Lo que no es: copiar todas las pantallas de gestión en el teléfono.
Reflejo: el móvil no es una versión reducida del escritorio.
- Modo sin conexión
- Capacidad de consultar y registrar en el dispositivo sin conexión, gracias a una base de datos local.
Ejemplo sencillo: El relevamiento de Yacine se registra en el almacén sin red.
Lo que no es: imponer una conexión permanente para registrar.
Reflejo: sin conexión = base local y entrada conservada.
- Sincronización
- Envío de las modificaciones locales hacia el servidor y recepción de las actualizaciones al volver la red.
Ejemplo sencillo: Los relevamientos pendientes salen en cuanto el técnico vuelve a salir del almacén.
Lo que no es: dejar los datos locales sin subirlos nunca.
Reflejo: sincronizar = reproducir la cola de espera.
- Conflicto de sincronización
- Situación en la que un mismo dato se ha modificado sin conexión y en el servidor; hace falta una regla explícita.
Ejemplo sencillo: Yacine decide que el servidor gana en las cantidades de existencias.
Lo que no es: dejar que cada dispositivo sobrescriba a los demás sin regla.
Reflejo: el conflicto se decide según el negocio, no al azar.
En la práctica — En la práctica — Diseñar una aplicación móvil
- Defina el perímetro móvil: qué tareas tienen realmente sentido sobre el terreno (consultar, escanear, registrar un inventario, hacer firmar).
- Repiense la interfaz para la pantalla pequeña y lo táctil: zonas táctiles generosas, entrada mínima, listas de elección y escaneos.
- Trate el modo sin conexión: base local, cola de modificaciones con marca temporal y sincronización con una regla de conflicto explícita.
- Aproveche los sensores útiles (foto, código de barras, GPS, firma) y anticipe las reglas de publicación y mantenimiento en las tiendas.
Guion paso a paso — sincronizar los relevamientos (10 min)
Yacine reproduce los relevamientos no sincronizados en cuanto vuelve la red.
La sincronización no suprime nada antes de la confirmación: una entrada del terreno se conserva hasta su envío correcto.
Plantilla para copiar y pegar — mi aplicación móvil
// Application WinDev Mobile — terrain Yacine
// Analyse partagée : Article, Stock, BonLivraison, ReleveStock
// Périmètre : scan article, inventaire, signature du bon
// Base locale : HFSQL mobile
// File d'attente : ReleveStock.Synchronise = Faux
// Conflit : le serveur gagne sur les quantités, les preuves restent
// Capteurs : code-barres, photo, signature
// Stores : règles à vérifier avant chaque publication
Inventario de almacén
Yacine hace que los almaceneros registren sin conexión las cantidades contadas.
Escaneo en cliente
Yacine hace escanear un producto en casa del cliente para consultar su ficha y sus existencias.
Albarán de entrega firmado
Yacine captura la firma del cliente en la pantalla del teléfono.
Sincronización diferida
Yacine envía los relevamientos al volver la red, con una regla de conflicto adaptada a las existencias.
✓ Buenas prácticas
- Elegir un perímetro móvil restringido a las tareas del terreno.
- Privilegiar escaneo, listas y valores por defecto en lugar de la escritura.
- Prever base local, cola de espera y regla de conflicto desde el diseño.
✗ Errores frecuentes
- Trasladar todas las pantallas densas del escritorio al teléfono.
- Exigir una conexión permanente para registrar.
- Dejar los conflictos de sincronización sin regla explícita.
Puntos clave
- WinDev Mobile reutiliza WLangage y análisis para Android e iOS.
- El móvil es un uso diferente: el perímetro y la interfaz deben repensarse.
- El modo sin conexión y la sincronización son la dificultad principal.
- Las tiendas imponen reglas que evolucionan y un mantenimiento a lo largo del tiempo.
Reto 48 h — aplícalo mañana
Como Yacine, elija tres tareas de terreno de su aplicación (consultar, escanear, registrar) y esboce las pantallas móviles correspondientes. Cree una pequeña tabla local con un indicador Synchronise, registre dos relevamientos sin conexión y escriba el bucle de sincronización. Redacte por último la regla de conflicto que aplicará si el mismo dato cambia en la sede.
- Puedo explicar qué reutiliza WinDev Mobile y qué hay que repensar.
- Sé definir un perímetro móvil útil para el terreno.
- Sé organizar una entrada sin conexión y su sincronización.
Preguntas frecuentes
¿Se puede trasladar sin más la aplicación WinDev al móvil?
No. WinDev Mobile reutiliza el WLangage y el análisis, pero trasladar tal cual una aplicación de escritorio da un resultado inutilizable. Hay que repensar el perímetro, la interfaz y el funcionamiento sin conexión. Lo que se reutiliza: el lenguaje, el modelo de datos, una parte de los procedimientos de negocio y los conceptos del taller. Lo que debe repensarse: las tareas realmente útiles sobre el terreno, las pantallas táctiles, los modos de entrada (escaneo, listas, foto), la conexión incierta y la sincronización. Yacine mantiene unos pocos gestos de negocio, no toda la aplicación.
¿Cómo gestionar el modo sin conexión y la sincronización?
Almacenando los datos localmente en el dispositivo, registrando las modificaciones con su marca temporal y luego sincronizando al volver la red. El punto difícil es el conflicto: si la misma ficha se ha modificado en la sede y en el teléfono, hace falta una regla explícita. Las estrategias habituales son gana el servidor, gana el móvil o gana la última modificación, pero la buena elección depende del negocio. Yacine reduce los conflictos privilegiando los añadidos de relevamientos y conservando siempre las pruebas (firma, foto) incluso cuando el servidor impone sus cantidades.
¿Cuál es la dificultad principal de una aplicación móvil profesional?