5.2WinDev Mobile: iOS & Android applications
The essentials in 30 seconds
- WinDev Mobile reuses WLangage and the analysis, but mobile is a different use: Yacine does not transpose the dozens of management screens, he keeps a few field tasks.
- A small touch screen forces you to rethink the interface and data entry: lists, default values and barcode scanning replace typing.
- Unreliable connectivity is the major difficulty: local database, change queue and synchronization with a conflict strategy, without ever losing an entry.
Running mini-case — Yacine equips technicians with a mobile application
Yacine develops the management application for an electrical equipment trading SME in Oran. Technicians and warehouse staff want to scan an item, check its record, enter an inventory count and have a delivery note signed, out in the field. Yacine creates a WinDev Mobile application reusing the existing analysis and business procedures, but he only takes these few tasks: he does not transpose the dense desktop screens. The application stores the readings in a local HFSQL database and marks them as not synchronized. In the warehouse, with no network, the technician keeps entering data. When connectivity returns, the application sends the pending readings. Yacine has defined a conflict rule: the server wins on stock quantities, but the signature and photo of the delivery note are kept. He also plans the store publication rules.
Standalone case for this section: it returns in the course, the diagram, the code and the 48h challenge of section 5.2.
1. Reuse, don't transpose
WinDev Mobile targets Android and iOS with the same WLangage, the same analysis and the same editors. Yacine therefore reuses the data model and part of the business procedures. But he does not transpose the desktop application: a complete management application has dozens of screens, whereas the field only calls for a handful. Mobile is not a reduced version, it is a different use: scanning an item, entering an inventory count, having a note signed. Scope is the first decision to make.
2. Touch interface and data entry
A dense screen designed for a computer and a keyboard is unusable on a phone. Yacine prioritizes information, splits screens, enlarges touch areas and reduces typing to the strict minimum. Typing text on a small keyboard is slow and painful: he favors choice lists, default values, barcode scanning, photos, GPS or on-screen signatures. The phone's sensors advantageously replace many manual entries. The goal is for the technician to perform the right action in a few taps, even while wearing gloves.
3. Offline, synchronization and stores
In the field, the network is unreliable: basements, warehouses, dead zones. An application that requires a permanent connection will be abandoned. Yacine plans a local database (HFSQL is available on mobile), a timestamped change queue and synchronization when the network returns. The difficult point remains conflicts: while a technician was modifying a record offline, someone else also modified it at headquarters. The strategy must be explicit and suited to the business, with an absolute rule: never lose a field entry. Finally, publication goes through the stores (Google Play, App Store), whose rules and reviews evolve: the application must be maintained over time.
🔎 Concrete example — 🔎 Concrete example — Entering an inventory count offline
Yacine saves a reading locally without depending on the network:
// 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)
Result: the technician works in the warehouse even without a connection.
Reflex: mark the row as not synchronized so it can be replayed later.
Section vocabulary
- WinDev Mobile
- Member of the PC SOFT range for Android and iOS applications, sharing WLangage, the analysis and the editors with WinDev.
Simple example: Yacine creates the scanning and inventory application for his technicians.
What it is not: learning Android and iOS native development separately.
Reflex: mobile = same foundation, another use.
- Mobile scope
- Restricted set of tasks genuinely useful in the field, chosen before designing the application.
Simple example: Yacine keeps scanning, inventory and delivery note.
What it is not: copying every management screen onto the phone.
Reflex: mobile is not a reduced desktop version.
- Offline mode
- Ability to view and enter data on the device without a connection, thanks to a local database.
Simple example: Yacine's reading is saved in the warehouse with no network.
What it is not: requiring a permanent connection to enter data.
Reflex: offline = local database and preserved entry.
- Synchronization
- Sending local changes to the server and receiving updates when the network returns.
Simple example: Pending readings leave as soon as the technician comes out of the warehouse.
What it is not: leaving local data without ever sending it back.
Reflex: synchronize = replay the queue.
- Synchronization conflict
- Situation where the same data was modified offline and on the server; an explicit rule is required.
Simple example: Yacine decides that the server wins on stock quantities.
What it is not: letting each device overwrite the others with no rule.
Reflex: conflicts are decided by the business, not at random.
In practice — In practice — Designing a mobile application
- Define the mobile scope: which tasks really make sense in the field (view, scan, enter an inventory count, get a signature).
- Rethink the interface for the small screen and touch: generous touch areas, minimal typing, choice lists and scans.
- Handle offline mode: local database, timestamped change queue and synchronization with an explicit conflict rule.
- Use the useful sensors (photo, barcode, GPS, signature) and anticipate store publication and maintenance rules.
Step-by-step script — synchronizing readings (10 min)
Yacine replays unsynchronized readings as soon as the network returns.
Synchronization deletes nothing before confirmation: a field entry is kept until it is successfully sent.
Copy-paste template — my mobile application
// 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
Warehouse inventory
Yacine has warehouse staff enter counted quantities offline.
Scanning at customer sites
Yacine has an item scanned at the customer's premises to check its record and stock.
Signed delivery note
Yacine captures the customer's signature on the phone screen.
Deferred synchronization
Yacine sends readings when the network returns, with a conflict rule suited to stock.
✓ Best practices
- Choose a mobile scope restricted to field tasks.
- Favor scanning, lists and default values over typing.
- Plan a local database, queue and conflict rule from the design stage.
✗ Common pitfalls
- Transposing all the dense desktop screens onto the phone.
- Requiring a permanent connection to enter data.
- Leaving synchronization conflicts without an explicit rule.
Key takeaways
- WinDev Mobile reuses WLangage and the analysis for Android and iOS.
- Mobile is a different use: scope and interface must be rethought.
- Offline mode and synchronization are the major difficulty.
- The stores impose evolving rules and long-term maintenance.
48h challenge — apply it tomorrow
Like Yacine, choose three field tasks from your application (view, scan, enter) and sketch the corresponding mobile screens. Create a small local table with a Synchronise indicator, enter two readings offline, then write the synchronization loop. Finally, write the conflict rule you will apply if the same data changes at headquarters.
- I can explain what WinDev Mobile reuses and what must be rethought.
- I know how to define a mobile scope useful in the field.
- I know how to organize offline entry and its synchronization.
Frequently asked questions
Can you simply port your WinDev application to mobile?
No. WinDev Mobile reuses WLangage and the analysis, but transposing a desktop application as-is gives an unusable result. You have to rethink the scope, the interface and offline operation. What is reused: the language, the data model, part of the business procedures and the workshop concepts. What must be rethought: the tasks genuinely useful in the field, touch screens, data entry methods (scan, lists, photo), unreliable connectivity and synchronization. Yacine keeps a few business actions, not the whole application.
How do you handle offline mode and synchronization?
By storing data locally on the device, recording changes with their timestamp, then synchronizing when the network returns. The difficult point is conflict: if the same record was modified at headquarters and on the phone, an explicit rule is needed. Common strategies are server wins, mobile wins or last modification wins, but the right choice depends on the business. Yacine reduces conflicts by favoring added readings and always keeping the evidence (signature, photo) even when the server imposes its quantities.
What is the major difficulty of a professional mobile application?