0% found this document useful (0 votes)
84 views49 pages

Windev Mobile Concepts Us

This document provides an overview of how to get started with developing applications using WINDEV Mobile. It recommends the following steps: 1. Read the online or physical documentation on concepts to understand the main concepts needed to create a WINDEV Mobile app. 2. Complete the online tutorial and exercises to get a practical introduction to the main editors in WINDEV Mobile. 3. Try the example applications supplied with WINDEV Mobile to learn more about areas of interest. The online help provides syntax and usage information for WINDEV Mobile features and functions. Regularly checking the website for updates ensures using the latest upgraded versions. Technical support is available by email.

Uploaded by

victor maturana
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
84 views49 pages

Windev Mobile Concepts Us

This document provides an overview of how to get started with developing applications using WINDEV Mobile. It recommends the following steps: 1. Read the online or physical documentation on concepts to understand the main concepts needed to create a WINDEV Mobile app. 2. Complete the online tutorial and exercises to get a practical introduction to the main editors in WINDEV Mobile. 3. Try the example applications supplied with WINDEV Mobile to learn more about areas of interest. The online help provides syntax and usage information for WINDEV Mobile features and functions. Regularly checking the website for updates ensures using the latest upgraded versions. Technical support is available by email.

Uploaded by

victor maturana
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 49

WINDEV Mobile - Concepts

Version 27 - (1) 03-2022 How to discover WINDEV Mobile?


WINDEV Mobile is a powerful Integrated Development Environment used to develop applications
for Android, iPhone, iPad and Universal Windows 10 (phone, tablets and PC). It includes all the
tools required to create and develop applications.

To quickly and efficiently learn how to use WINDEV Mobile, we advise you to work in the following
order:

1
Read the “Concepts” (online or on physical documentation).
This guide presents the main concepts required for creating a WINDEV Mobile application.

2
“Tutorial” (online tutorial + exercises).
The tutorial provides a first “practical” approach to WINDEV Mobile. It allows you to familia-
rize yourself with the main editors of WINDEV Mobile.

3
Try the examples.
Try the different examples supplied with WINDEV Mobile in the fields you are interested in.

The online help, available on Internet at http://doc.windev.com or installed locally with WINDEV
Mobile, allows you to quickly find the syntax of a WLanguage function, to get help about the
Remember to visit the download section of www.windev.com on a regular basis to check interface, ... For each programming theme, you will find a description of the associated feature
whether upgraded versions are available. and the list of the corresponding WLanguage functions.

Remark: If there is a difference between the tutorials and the online help, follow the instructions
Email address of our Free Technical Support: [email protected]. in the online help.

This documentation is not contractually binding. Modifications may have been made to the We hope you enjoy getting started with WINDEV Mobile.
software since this guide was published. Please check the online help.

All product names or other trademarks mentioned in this publication are registered trademarks of their
respective owners.
© PC SOFT 2022: This publication may not be reproduced in part or in full without the express consent of
PC SOFT.

Introduction 3
Table of Contents
Part 1 - Main concepts
Project and analysis............................................................................................................... 9
Development cycle of an application................................................................................. 10
WINDEV Mobile: Android, iOS, UWP, etc.............................................................................12
Android and iOS windows....................................................................................................13
Android and iOS windows: Characteristic...........................................................................14
Layouts..................................................................................................................................15
Available controls in a window............................................................................................ 16
Smart controls......................................................................................................................19
Application menus...............................................................................................................20
Internal window.................................................................................................................... 21
Window templates...............................................................................................................22
Control templates.................................................................................................................23
Reports................................................................................................................................. 24
Report templates.................................................................................................................25

Part 2 - Development environment


Project dashboard................................................................................................................29
WINDEV, WEBDEV, WINDEV Mobile: a 100% compatible format.....................................30
Project configuration............................................................................................................ 31
Multiple generation..............................................................................................................32
Custom-Folders: Organize your project...............................................................................33
Source Code Manager (SCM)..............................................................................................34
Internal component.............................................................................................................36
External component............................................................................................................. 37
Generation modes...............................................................................................................38
Project Monitoring Center....................................................................................................39
Managing requirements......................................................................................................40
Managing tasks.................................................................................................................... 41
Managing business rules....................................................................................................42

Part 3 - Databases
Analysis: database structure...............................................................................................45
Different types of accessible files.......................................................................................46
Data handled by a WINDEV Mobile application.................................................................48
HFSQL Classic......................................................................................................................49
HFSQL Client/Server............................................................................................................50
HFSQL Cluster...................................................................................................................... 51
Creating HFSQL files: files physically created....................................................................52
Associating controls with data............................................................................................53
Queries..................................................................................................................................55

4 Introduction Table of Contents 5


Embedded queries...............................................................................................................56
Table/Looper controls.......................................................................................................... 57
PART 1
Synchronizing data..............................................................................................................59

Main concepts
3-tier......................................................................................................................................60

Part 4 - Advanced concepts


Windows generated by RAD................................................................................................63
Multilingual application.......................................................................................................64
Test of a WINDEV Mobile application.................................................................................65
Debugging modes................................................................................................................66
Unit tests...............................................................................................................................67

Part 5 - WINDEV/WINDEV Mobile interactions


WLanguage functions.......................................................................................................... 71
WLanguage functions specific to phones..........................................................................72

Part 6 - Setup
Installing an Android or iOS application............................................................................. 81
Different types of setup.......................................................................................................82

Part 7 - Communication
Communication with WINDEV Mobile................................................................................. 87
Managing the emails (POP3/IMAP/SMTP)........................................................................88
Handling files on an FTP server..........................................................................................89
Managing SMSs...................................................................................................................90

Part 8 - Appendices
Examples provided with WINDEV Mobile...........................................................................93

6 Table of Contents
Project and analysis
The development of a mobile Application (Android, iOS, etc.) with WINDEV Mobile is based on two
main elements: the Project and the Analysis.

A WINDEV Mobile project is a set of elements: windows, controls, classes, components, ... whose
combination is used to develop an application.

A WINDEV Mobile analysis groups the description of the application data files.

An application is built from a project.


In most cases, a project is associated with an analysis.
An analysis can be associated with one or more projects.

Project 1

Classes Style Windows


sheet and controls

Analysis

Project 2 Project N

Classes Style Windows Classes Style Windows


sheet and controls sheet and controls

8 Part 1: Main concepts Part 1: Main concepts 9


Development cycle of an application
WINDEV Mobile covers the entire development cycle of an application:

Test and
generation Deployment
Design Development
Test and debug Generate the setup
application program
Specifications Create project

Generate
Final test
application :
UML modeling Create analysis - Android
- iOS First setup:
- Universal Windows on the device, by HTTP,
10 App
Import Development via Google Play Store,
existing files - Project RAD via MarketPlace, ...
- Window RAD
- Queries Update application
- Reports
Synchronize deployed data
- Input of source code

Details of different steps:


Test and generation step: WINDEV Mobile proposes several automatic test tools to guarantee the
Design step: An application can be designed from specific requirements, from UML modeling of reliability of applications and to make sure that no regression occurs between the development
processes or even from existing data files. steps.

Development step: The project and the analysis are created via specific wizards. The development Deployment step: A WINDEV Mobile application can be deployed according to several methods:
can be done in RAD mode (Rapid Development Application) with automatic code and interface (UI) on Mobile directly, by download, via Play Store, MarketPlace, App Store or Windows Store. In any
generation, or it can result from creating project elements manually. case, the HFSQL data files (if they exist) will be automatically updated according to the evolutions
made in the application.

10 Part 1: Main concepts Part 1: Main concepts 11


WINDEV Mobile: Android, iOS, UWP, Android and iOS windows
etc.
The UI (User Interface) of an application is mainly composed of windows.
WINDEV Mobile includes an advanced window editor allowing you to easily and quickly create all
The applications developed with WINDEV Mobile can operate on the following platforms:
possible types of UI, for all types of platforms.

• Universal Windows Platform apps. Several features allow you to easily get intuitive and user-friendly applications among which:
• powerful controls.
• Android version 5 and later. • an anchoring mechanism allowing the UI to automatically adapt to the size of the display. This
mechanism is useful when developing mobile applications because it is used to adapt to the
different device resolutions.
• iOS version 11 and later.
• a UI compilation system with error detection (empty titles, untranslated text, overlaps, etc.).
The following processors are supported:

• ARM and compatible (Strong ARM, XScale, Samsung, Texas Instrument, ...).

• ARM v4T and compatible (XScale, ...).

12 Part 1: Main concepts Part 1: Main concepts 13


Android and iOS windows: Layouts
Characteristic
Anchors are used to easily change the orientation of a Mobile application or adapt an application
from a phone to a tablet.
WINDEV Mobile offers the possibility to configure window characteristics. The available
However, in some cases, the interface must be entirely modified: the position of the controls must
characteristics depend on the platform used. For example:
be different.
Layouts are used to define several views of a window in the same project without duplicating this
window. This gives you the ability to define:
• a specific view for portrait mode,
• a specific view for landscape mode,
• a view specific to the phone,
• a view specific to the tablet, ...

iPhone/iPad

To create a layout, on the "Window" tab, in the "Layouts" group, expand "Layouts" and select
"Add layouts". The layout creation wizard appears and helps you create the necessary number of
layouts. Once the layouts have been created, you can change the position of the controls on one
Android
or more layouts in order to get the desired interface.

Managing the display resolution At runtime, the initial layout is automatically selected according to the platform, the orientation
Windows created with WINDEV Mobile for Android applications automatically and the size of the screen. The layout changes automatically when the device goes from portrait
adapt to the screen resolution of the devices at runtime. mode to landscape mode, for example.

14 Part 1: Main concepts Part 1: Main concepts 15


Available controls in a window Display a video, an animation.

Several controls are available in WINDEV Mobile:


Multimedia, image
Use a control of the
In order to...
following type
Display a text, title, ...
Static
Read a PDF file. PDF Reader
Enter information. Type a date in a calendar.

Edit control

Calendar
Select a value from a list (country, city, currency, ...).

Radio button, Combo box,


List box
Display the file content in a table (list of customers, order
details, etc.).
Select several values from a list.

Check Box, List Box Memory table or browsing


table

Select one or more values from a listview (picture directory, ...).

ListView
Repeat controls in a window (product catalog with photo, ...).

Display a graphic image (photo, statistics, chart, ...).

Looper
Image

16 Part 1: Main concepts Part 1: Main concepts 17


Display a Column, Line or Pie chart. Smart controls
Smart controls are an innovative concept for the creation of UIs. A Smart controls is a ready-to-use
Chart control (or group of controls), and includes "business" WLanguage code where necessary.

Smart controls allow implementing sophisticated operations in WINDEV Mobile applications with
one click.

WINDEV Mobile includes many Smart controls: Sign In with Apple, Facebook, Camera, PIN input,
Display a progress.
Finger signature, etc.

To integrate a Smart control in your UI:


1. On the "Creation" tab, in the "Smart" group, click "Smart controls".
Progress Bar
2. Select the desired control in the window that appears:

Program an action in a window (display another window, start a


print, etc.).

Button

Group the controls by theme and display the themes one by


one.

Tab, Sidebar

You can:
• Browse through the different types of controls,
• Enter keywords in the search box.
Remark: The "Go" button that appears when hovering over the Smart controls allows you to see
and try the control before integrating it in your window.
3. Select the desired control, drag it and drop it in the window editor.

18 Part 1: Main concepts Part 1: Main concepts 19


Application menus Internal window
The Internal Window control is used to include a window (and its code) in another window. At
runtime, the window will be dynamically merged with the host window.
Android/iOS
In Android and iOS, the menus are dis- 1. Creating an internal window
played in the Action Bar.
Different buttons correspond to the avail- An internal window is created via the
able actions. icon found in the quick access buttons. In
the window for creating a new element, click
The menus can also be presented in a slid- "Window" then "Internal window".
ing window.
An internal window is a specific window that
contains no title bar and no menu.
All types of controls can be used in this
window.

2. Using an internal window

To use an internal window, you must:


• create an Internal Window control.
• in the control description, select the internal
window to use and validate.

Remarks:
• The internal window used in the "Internal window" control can be modified through
programming.
• Limitations: The host area is rectangular and no override is allowed. To perform overrides, it is
recommended to use control templates.

20 Part 1: Main concepts Part 1: Main concepts 21


Window templates Control templates
WINDEV Mobile allows you to create window templates. These templates contain all the graphic WINDEV Mobile allows you to create control templates. A control template is a set of controls that
elements common to all the windows of your application. can be re-used in several windows.
The changes made in a window template are automatically applied to all windows using this
template. The changes made in a control template are automatically applied to all windows using this
template.
A window template allows you to comply with the style book defined for an application.
A control template is used to:
• group a set of controls for a specific purpose.
• make the controls independent of the window that is hosting them.

View of a control template.


The template is bordered by an orange line in the editor.

Define a window template.


The template is bordered by an orange
line in the editor.

Template used in several windows.


The elements belonging to the template are identified by a yellow square. Template used in a window. The elements belonging to the template
are bordered by a blue line and identified by a yellow square.
A window template can be created:
A control template can be created:
• via the icon in the quick access buttons. In the window for creating a new element, click
• via the icon in the quick access buttons. In the window for creating a new element, click
"Window" then "Window template".
"Window" then "Control template".
• from the current window (on the "Home" tab, in the "General" group, expand "Save" and select
• from the controls in the window (select the controls and right-click, in the context menu that
"Save as a template").
appears, select "Refactoring .. Create a control template from the selection").
To create a window based on a template, select the template that will be used during the window
To create a window based on a control template, create a "Control template" control.
creation.
The characteristics of the elements can be dissociated from the template. For example, The characteristics of the elements can be dissociated from the template. For example,
dissociate the position of a control from the template to move it elsewhere while keeping other dissociate the position of a control from the template to move it elsewhere while keeping other
changes (code, style, etc.). This is referred to as control inheritance. In this case, the elements changes (code, style, etc.). This is referred to as control inheritance. In this case, the elements
are identified by a blue square. are identified by a blue square.

22 Part 1: Main concepts Part 1: Main concepts 23


Reports Report templates
WINDEV Mobile allows you to easily create and print all types of reports with the report editor. Most organizations use a standardized appearance and layout for their print jobs: date in the
upper-right corner in a specific format, page footer with print time and file name, logo in the upper-
A report can be used to summarize and synthesize data. left corner, etc.
You can:
• group data. The report templates are used to easily standardize the layout of your reports.
• sort data based on different criteria.
• perform calculations (means, statistics) or create charts.
The diagram below illustrates the concept of reports:
• the data to print comes from a data source (data file described in an analysis, HFSQL view,
query, memory area or text file).
• the report groups, sorts and formats the data.
• the report can be executed as a PDF file.

Source of Print
report mode
View of a report template
in the report editor.

Controls (Table,
Looper, etc.)

Query Report
(Report editor)
PDF file
(Android, iPhone,
Text file
iPad, Universal
Windows App, ...)

Template used in different reports.


Data The elements that belong to the template are identified by a yellow square.
Overridden template elements are identified by a blue square.

WLanguage variable A report template can be created:


• via the icon in the quick access buttons. In the window for creating a new element, click on
"Report" then "Report template".
• from the current report (on the "Home" tab, in the "General" group, expand "Save" and select
Other print modes
"Save as a template").
WINDEV Mobile also gives you the ability to print in WLanguage (iXXX functions).
To create a report based on a template, select the template that will be used when creating the
report.
The characteristics of the elements can be dissociated from the template. For example,
dissociate the position of a control from the template to move it elsewhere while keeping other
changes (code, style, etc.). This is referred to as inheritance. In this case, the elements are
identified by a blue square.

24 Part 1: Main concepts Part 1: Main concepts 25


PART 2
Development
environment

26 Part 1: Main concepts


Project dashboard
The project dashboard is an essential element for managing WINDEV Mobile projects. The project
dashboard gives an overall view of the progress of a project.

The project dashboard includes several indicators about the project content:
• statistics about the project,
• incidents,
• tasks,
• status of automatic tests,
• result of different audits,
• list of elements checked out from the SCM (Source Code Manager),
• result of action planes (continuous integration), ...

The elements found in this dashboard are presented in Widget format. These Widgets can be
configured, moved, enabled, disabled, ... You have the ability to add new indicators.

The dashboard configuration is saved for each user. The dashboard configuration is the same for
all projects that belong to the same user.

28 Part 2: Development environment Part 2: Development environment 29


WINDEV, WEBDEV, WINDEV Mobile: a Project configuration
100% compatible format
Project configurations are used to create several "targets" from the same project.
From the same project, you have the ability to create:
The created projects are often multi-target projects.
• executables that do not contain the same elements, with different names, ...
For example, for an ERP system intended to operate in Windows, it is very likely that beside the
main application, which will be the backbone of the solution, there will be sales people equipped • different external or internal components,
with PDAs or Smartphones, stores that will use mobile devices to manage inventories and that • multi-platform executables.
Intranet and Internet sites will be implemented. You can work on a specific configuration at any time: the elements that do not belong to this
configuration appear grayed out in the "Project explorer" pane.
All elements, excluding the UI (pages and windows), are 100% compatible and sharable between
WINDEV, WEBDEV and WINDEV Mobile projects.
Mobile project
It is thus possible to share sets of procedures or classes, for example, between several projects.

Regardless of the product used to create a project, it can be opened by the other products.
When a project is opened in a product other than the
one that was used to create it, a wizard is displayed,
allowing you to create a project configuration specific to
the product used.
For example, if a WINDEV project is opened by WEBDEV,
you will have the ability to create a project configuration
named "Site", used to group all the elements required by Project configurations
the WEBDEV site.
You now have the ability to view the elements of each
target from each environment. A project in WINDEV W
displays the thumbnails of the WEBDEV pages and
the WINDEV Mobile windows for example. Clicking a Config 1. Config 2. Config 3.
WEBDEV page from the WINDEV project editor opens
Android iOS Android
the WEBDEV page (WEBDEV must be installed on the application application Widget
computer).

The multiple generation allows you to generate all project configurations (or some of them) in a
single operation.
Remark: If you own WINDEV and WINDEV Mobile, you can handle WINDEV Mobile configurations
in WINDEV. You can open, modify and test mobile windows, ...

30 Part 2: Development environment Part 2: Development environment 31


Multiple generation Custom-Folders: Organize your project
Project configurations are used to easily define the different "Targets" of your project. Several All elements included in a project are listed in the "Project explorer" pane. By default, the
executables, several components and several libraries can be defined for the same project. elements are organized according to their type: windows, reports, classes...
In huge projects, it is often more practical to group the elements that relate to the same feature:
To generate the result of each configuration, you can select each configuration one by one and stock management or order management for example.
generate the corresponding program. To do so, create the "custom-folders" in the tree structure of the "Project explorer" pane and drag
the different elements into these folders.
There is a faster method: the multiple generation. The configurations to generate are selected in Some elements can be common to several "custom-folders".
a single operation and the result is immediate. It makes it easier to work on part of the application.

To start a multiple generation, go to the "Project" tab, "Generation" group and click "Multiple
generation".

Remark: To organize your projects while sharing a set of elements between different projects,
WINDEV Mobile also proposes internal components.

32 Part 2: Development environment Part 2: Development environment 33


Source Code Manager (SCM) Operating mode of Source Code Manager
The following example presents the Source Code Manager:

Overview
To simplify teamwork, a Source Code Manager is available in WINDEV Mobile. Local Computer 1
This Source Code Manager allows several developers to work together on the same project at the
same time and to share elements between several projects. 2
Project A
Check-out 9:57 Project A
Version 1 Version 1

Network
(intranet) 3 Modification

Project A Check-in 10:41 Project A


Version 2

4
Version 2

ADSL
(internet) Local Computer 2 Project A

5
Version 3

Offline Project A
Version 2
Check-out 14:28
Repository
Mobile Computer
Check out Beta window from

SCM Mobile Computer


Project A Version 1 at 9:13

Local Computer 1

1
Check out Alpha window from
A repository groups the project elements, each computer has Project A Version 1 at 9:57
a local copy of elements required for development. Check in modified Alpha window
Project A Check-out 9:57 into Project A Version 2 at 10:41
Version 1

6
Local Computer 2
The elements found in the SCM can be shared: Modification Check out Alpha window from
for end users Project A Version 2 at 14:28
• via network,
Project A Check-in 18:32
Mobile Computer
• via Internet, Version 3

7
Check in modified Beta window
into Project A Version 3 at 18:32
• via PCSCloud (paid turnkey solution, on a dedicated server),
• via SCMDrive (paid turnkey solution, on a shared server).
• in offline mode. In this case, the elements that require specific attention will be checked out
from SCM when the laptop is connected to the main system for example.
If a project element (window, report, ...) is checked out, this element cannot be checked out twice.
Once the checked out elements are modified, these elements must be checked back in so that
these modifications can be taken into account by the source project. The repository stores a
history of all the project elements since their creation.

Whenever an element is checked back in, the version number of the source project is incremented
by 1.

34 Part 2: Development environment Part 2: Development environment 35


Internal component External component
An internal component is a set of elements from a project. This set is used to: An external component is a set of WINDEV Mobile elements: windows, reports, analysis, ... This set
• Organize a project: you have the ability to create internal components in order to group the of elements performs a specific operation. For example, an external component can correspond to
project elements, by feature for example. one of the following features:
• Share the elements between several projects, via the SCM. • Sending SMSs,
• Sending emails,
SCM • ...
An external WINDEV Mobile component can be distributed to other WINDEV Mobile developers
(for free or at a cost). These developers will be able to easily include the feature proposed by the
external component in their application. The external component will be included in the application
and distributed with the application.
Project 1
WINDEV Mobile
project
1
Project 2
Create the

1
internal component
Develop the
component
Windows

2 Share the
internal component
2 Generate the
component

Classes via the SCM


.WDK file
Queries
Created in the EXE directory

Subdirectory of
WCI file 3 Import the
component
(List of elements)
<MyComponent>
project
WINDEV Mobile WINDEV Mobile WINDEV Mobile
project project project

The elements found in an internal component can be private or public: 4 Use the
component 4 Use the
component 4 Use the
component
• Private elements can be handled by the other elements of the component.
• Public elements can be handled by the elements of the project that uses the internal
component.

36 Part 2: Development environment Part 2: Development environment 37


Generation modes Project Monitoring Center
WINDEV Mobile allows you to generate several other types of projects. To optimize the management of your development projects, WINDEV Mobile gives you the ability to
use the Project Monitoring Center. The Project Monitoring Center is used to:
• Manage the project requirements,
Android applications • Manage the project monitoring (schedule of tasks to perform),
WINDEV Mobile allows you to generate applications for the Android • Manage the bugs and evolutions signaled on a project.
platform. These applications can be run on smartphones, tablets and The Project Monitoring Center uses an HFSQL Classic or Client/Server database: the database of
ultra-portable devices that use this operating system (version 5.0 and Control Centers. This database is shared between several tools available in WINDEV Mobile:
later). These applications can also be distributed on Play Store for
example. - Tasks
- Requirements
- Quality
iOS applications
Project
WINDEV Mobile allows you to generate applications for the iPhone and Monitoring Center

iPad platform (from iOS 9). These applications will be able to run on
iPhone and iPad devices. These applications can also be distributed on
the Apple Store for example.

Universal Windows 10 App


WINDEV Mobile allows you to generate applications for the tablets and
phones running Windows 10.
These applications can be started in tile mode on the Windows 10
tablets. These applications can also be distributed on Windows Store for
example. WINDEV Mobile
Database of Login window
Control Centers
SOAP or REST Webservices
A Webservice (also called XML Web service) can be generated from a
WINDEV Mobile project. A Webservice exposes a set of functions (one
or more sets of procedures) and makes them accessible via the Web
(or via a private network) by using the standard HTTP, SOAP and REST
communication protocols. Stand-alone Image catalog
Business Rules Automatic tests
messaging (WDBAL) (custom images)
Remark: A Webservice must be deployed on a WEBDEV Application
Server in order to be used.

External components
The external components are application bricks allowing you to share one
Remark: When installing WINDEV Mobile, the setup program proposes to:
or more specific features between several applications. A component
generated by WINDEV can also be used in a WEBDEV or WINDEV Mobile • create the database of Control Centers (database of Project Monitoring Center). This database
project. will be automatically created in HFSQL Classic format in the specified directory.
• share an existing database of Control Centers.

38 Part 2: Development environment Part 2: Development environment 39


Managing requirements Managing tasks
The Project Monitoring Center allows the project manager to manage a development project. To do The Project Monitoring Center allows the project contributors to manage their task schedule.
so, you must: These tasks can be linked to requirements and they can correspond to several projects.
• define the different project contributors.
• define the requirements (with the different elements associated with them).
Each developer performs the different tasks assigned to them.
The project manager can follow the progress status of the project at any time.

Project Manager Developer

1 Create requirements
composed of: 2 Fulfill
requirements:

Project Monitoring
Center
Tasks

Once all the project tasks have been defined, the Project Monitoring Center takes care of
Incidents everything. Entering the time spent on a task is almost automatic, it requires no specific action
and it generates no particular constraint.

When the relevant project is opened, the Project Monitoring Center requests or indicates the
current task. As soon as a task is completed, simply indicate that the task is finished and specify
the new task.
Pane of
Business Rules
Business Rules
A task can be linked to a project element (window, report, ...). Whenever the relevant element is
opened, the time spent on this element is counted and stored in the Project Monitoring Center.

3
Conversely, the element corresponding to the task that you want to perform can be automatically
Monitor requirements (Project Monitoring Center):
opened from the task list.
Each developer can also see their own task list in the "Project Monitoring Center" pane found in
the editor.

Manage
requirements

40 Part 2: Development environment Part 2: Development environment 41


Managing business rules PART 3
WINDEV Mobile allows you to manage business rules. A business rule is used to define a specific
operating mode or to specify a particular process. For example: the calculation of a specific VAT
Databases
rate, the rules for changing the status of a customer, the formula for calculating shipping costs, a
commercial commission, a discount rate, a decay coefficient, etc.
A business rule can be simple or complex.
The business rules can come from the specifications (corresponding to the requirements).

Define requirements

Define Business Rules

Apply Business
Rules to the project

Use application

42 Part 2: Development environment


Analysis: database structure
When a WINDEV, WEBDEV or WINDEV Mobile project uses data files, it must be associated with an
analysis. An analysis is used to describe the data structures (data files, items, etc.) used in your
project.

The data model editor allows you to easily create an analysis.

Supplier Product Order Customer


Full name, ... Description, Price, ... Date, ... Full name, ...

System studied

Corresponding analysis

The analysis of a WINDEV, WEBDEV or WINDEV Mobile project corresponds to the LDM (Logical
Data Model). The entire structure and data organization are described: the data is grouped by file
(called data file). Each data file contains several data called items.

In the analysis, the description of a data file can be linked to a type of file (HFSQL Classic, HFSQL
Client/Server, SQLite, etc.).

44 Part 3: Databases Part 3: Databases 45


Different types of accessible files
WEBDEV, WINDEV and WINDEV Mobile offer simple access to the majority of databases on the
market.

APPLIC ATIONS APPLIC ATIONS


SITES SITES ATIONS
APPLIC APPLIC ATIONS

UNIVERSAL
UNIVERSAL DATA CONNEC TOR DATA CONNEC TOR NATIVE APPLICATIVE NATIVE APPLICATIVE
(HReadSeek, HExecuteQuery, File, Item, (HReadSeek, HExecuteQuery, File, Item,
Automatic
Automatic File Link, Databinding, Replication, File Link, Databinding, Replication, SQLExec...)
SQLExec...)
CONNECTOR CONNECTOR
- Google - Outlook - XML - Google - Outlook - XML
- iCalendar - SalesForce - ... - iCalendar - SalesForce - ...
- JSON - SAP R/3 - JSON - SAP R/3
- LDAP - RSS - LDAP - RSS
- Lotus Notes - Webservice - Lotus Notes - Webservice
- MATLAB SOAP/REST - MATLAB SOAP/REST
NATIVE CONNEC TORNATIVE CONNEC TOR NATIVE HFSQL
Powerful SQL database: Windows - Linux - Android -Powerful
iOS
NATIVE HFSQL Unlimited deployment,
free
SQL database: Windows - Linux - Android - iOS
Unlimited deployment,
- MQTT free - XLS/XLSX - MQTT - XLS/XLSX

SQL Server MySQLSQL Server MySQL BIG DATA BIG DATA


Classic/Embedded Classic/Embedded Mobile - Hadoop - Hive - Redis - Hadoop - Hive - Redis
Mobile - HBase - Memcached - Riak
Local, network, Local, network, iOS (iPhone, iPad), Android, iOS (iPhone, iPad),- Android,
HBase - Memcached - Riak
32 & 64 bits 32 & 64 bits - HDFS
Windows IoT, UWP,... - MongoDB - ... - HDFS - MongoDB - ...
Windows IoT, UWP,...
Oracle Oracle
MariaDB MariaDB

AS/400 DB2 AS/400 DB2


ODBC ODBC
32 & 64 bits 32 & 64 bits

S S
Windows et Linux Windows et Linux
Client/Server Client/Server
Windows, Linux, Docker, Windows, Linux, PCSCLOUD
Docker, PCSCLOUD
Progress SybaseProgress Sybase Spare, 32 & 64 bits for PC SOFT applications
Spare, 32 & 64 bits for PC SOFT applications
OLE DB OLE DB
32 & 64 bits 32 & 64 bits
PostgreSQL InformixPostgreSQL Informix

SQLite Azure SQLite Azure Cluster


Windows, 32 & 64 bits
Cluster
Windows, 32 & 64 bits
HFSQLDrive HFSQLDrive

Full compatibility Full compatibility

46 Part 3: Databases Part 3: Databases 47


Data handled by a WINDEV Mobile HFSQL Classic
application
HFSQL Classic is the database format used with WINDEV Mobile. This database format is
compatible with WINDEV, WINDEV Mobile and WEBDEV.
The data handled by a WINDEV Mobile application can come from:
It is a freely distributable Relational DBMS.
• an HFSQL Classic or HFSQL Client/Server database (".Fic" files).
This format can be used on iOS, Android and Universal Windows 10 Apps.
• ".INI" files.
This format is identical to HFSQL Classic in WINDEV and WEBDEV (".WDD" file, data files, etc.).
• text files (in ANSI or UNICODE format). However, the available size being limited on the mobile devices, the following features are not
supported by HFSQL Classic on mobile:
• the transactions.
Mobile device • the log process.
• the management of locks for files and records.
• the management of files in Hyper File 5.5 format.

Handling an HFSQL Classic database from the mobile device


HFSQL .INI An HFSQL Classic database is a set of ".FIC", ".NDX" and ".MMO" files.
HFSQL Client/ ASCII Each data file can be handled by a WINDEV Mobile application. These operations are performed
Classic Server UNICODE by HFSQL functions (Hxxx functions).

Databases Text files


Mobile device

Hxxx
functions,
(read, write...)

Database
48 Part 3: Databases Part 3: Databases 49
HFSQL Client/Server HFSQL Cluster
A WINDEV Mobile HFSQL application can also operate in Client/Server mode. HFSQL Cluster is an extension of the database model of HFSQL Client/Server. In a database
cluster, all HFSQL servers contain a copy of the databases and are synchronized in real time.
The characteristics of the Client/Server mode are as follows: • The read load can be balanced among the different servers.
• An HFSQL Client/Server application is run on different mobile devices (called client computers). • The physical configuration can evolve without any interruption for the client computers.
• The data files are found on a server. Only the server physically accesses the data files. • If one of the servers crashes, the client is automatically redirected to an operating server.
• All processes (query, read/write operation in a data file, etc.) are performed on the server.

Mobile Device 1 Client computer

Windows or Linux
HFSQL server
Access to data
Mobile Device 2
Manta server Cluster

HFSQL Client/Server HFSQL Client/Server


HFSQL server server
Client/Server
databases
Mobile Device N Apply modifications

HFSQL Client/Server HFSQL Client/Server


server server

HFSQL Client/Server can be used on iPhone, iPad, Android and Universal Windows 10 Platform. HFSQL Cluster can be used from iPhone, iPad, Android, etc.

50 Part 3: Databases Part 3: Databases 51


Creating HFSQL files: files physically Associating controls with data
created
A window can display information coming from:
• a database: the controls are directly bound to the items in the data files or queries available in
The data model editor is used to describe the structure of data files.
the database.
• variables in the application’s WLanguage code (variables global to the window or to the project
Depending on the information typed in the data model editor, different files are physically created. or parameters passed to the window).
To display this information in a window, the controls of this window must be bound to:
• the different database items.
Characteristics Files physically • the available WLanguage variables.
of the file (Analysis) created
The method for displaying and retrieving the information is straightforward:
".fic" file
HFSQL Classic or Client/Server file • The binding between a control and an item or variable can be defined in the window editor, in
Data file
the control description ("Binding" tab).
One or more search keys
".ndx" file • ScreenToFile is used to update the record or the variable with the data displayed on the screen.
(unique or with duplicates)
Index file
• FileToScreen is used to update the data displayed on the screen with the information saved in
".ftx" file the data file or with the information saved in the variable.
One or more full-text indexes
Full-text index file

".mmo" file
One or more "Memo" items
Memo file Control - item binding

ScreenToFile FileToScreen

Database

52 Part 3: Databases Part 3: Databases 53


Control - variable binding
Queries
A query is used to interrogate a database in order to view, insert, modify or delete data. The query
structure defines the data used.
A query can interrogate one or more data files.
The query editor allows you to easily create queries without programming.

ScreenToFile FileToScreen

Linked variable

Simple control
Link with:
- Simple variable
- Instance of class or
Sources Possible uses
structure member
- Property of dynamic object Windows and controls
of a window
List box, Table, Combo box, ... Data coming from
Link with: one or more files
- Array of classes or structures (HFSQL, Oracle, ...) Reports
- Advanced types (for example
xlsRow, xlsColumn)
The result of a
query can be used
Programming
like a file
(use in WLanguage
functions)

Remark: Control/variable binding is not available for Android applications.


Queries

Remark: In programing, a query can be handled like a data file. Especially, it can be associated
with a display control (a Table control for example) that will present the data returned by the query.

54 Part 3: Databases Part 3: Databases 55


Embedded queries Table/Looper controls
The controls from a window can be linked to a data file or to an existing query, ... These controls Table/Looper controls can be used to display a set of information (e.g., the content of a data file).
can also be linked to a query created when building the control. The content of these controls can come from different sources:
• Browsing Table/Looper control with direct access.
• Memory Table/Looper control.
• Browsing Table/Looper control loaded in memory.
Remark: These three fill modes will be presented in details for the Table control. The same
concepts apply to the Looper control.

Browsing Table control with direct access


A browsing Table control with direct access is used to directly display data coming from a data
file, a query or an array variable. Browsing the data file allows you to display data in the Table
control. The data file is read for each row displayed: the record that is read is displayed in a row of
the Table control.

Embedded query:
MyWindow_1$Query

Customer
file

The displayed data that is not bound to the data file is not kept when the row is refreshed (e.g.,
value of a check box column).
The WLanguage functions starting with "Table" are used to handle the browsing Table controls
with direct access. When a row is added to or deleted from the Table control, the record in the
bound data file is also added or deleted.

Memory Table control


Embedded query:
MyWindow_2$Query A memory Table control is used to directly display the data loaded in memory. The data is added
into the Table control through programming (by TableAddLine for example).

In this case, the query is integrated in the window. It is located in the WDW file that corresponds
to the window. If the WDW file is copied (into another project for example), the embedded queries
used by this window will also be copied.

Data in
memory
The data being found in memory, the Table control allows you to perform all operations on the
data (sort on any column, search in the columns, ...).

56 Part 3: Databases Part 3: Databases 57


Browsing Table control loaded in memory
Synchronizing data
The browsing Table controls loaded in memory combine the advantages of browsing Table controls
and memory Table controls.
WINDEV Mobile allows you to synchronize the records used by several applications.
The Table control is bound to the data file but all the contents of the data file are loaded in
The two applications manage the same data independently of each other. During the
memory. Sort and the search features are available for all columns.
synchronization, the modifications performed in the database used by the PC are automatically
The data that is not bound to the data file is kept when moving the scrollbar of the Table control applied to the mobile device (and conversely).
(Check Box column for example).
This synchronization is done automatically via Universal Replication whether the mobile device is
Since data file records are loaded into memory, this Table control type is recommended for data connected or not to the Windows PC.
files with less than 100,000 records (to avoid memory overflow).

Universal replication
The universal replication updates databases (with the same or different formats) used by several
applications. For example, you can synchronize an HFSQL database with an Oracle database.
Universal replication uses a centralized model: all databases are synchronized with a master
Customer
database. Then, the master database applies the modifications to the other databases.
file

File loaded
in memory

Universal
replication
Note: These different fill modes are also available for the List Box and Combo Box controls.

The Table control is not available in the Universal Windows 10 apps applications.
Only the Looper control can be used.

The synchronization can be adapted to special cases. For example, you can retrieve the records
related to a specified product or the records created at a given date, manage conflicts, display a
configuration window, ...
These adaptations must be done through programming with HRplFilterProcedure.
58 Part 3: Databases Part 3: Databases 59
3-tier PART 4
The purpose of 3-tier programming is to separate the 3 standard "layers" of an application:
Interface (UI), processes and data.
Advanced
Therefore, an application will include 3 separate tiers:
• a presentation layer,
concepts
• an application layer,
• a layer for accessing the data.
The objective with this separation is to make each layer independent, in order to facilitate
maintenance and future developments of the application. This provides better security because
the access to the database is allowed via the Processes layer only. It also optimizes teamwork and
multi-target development.

Mobile Windows Browser

Presentation layer

Components Webservices WEBDEV application


server
Application layer

HFSQL External databases


Classic, Client/Server Oracle, AS/400, SQL Server...
Data layer

60 Part 3: Databases
Windows generated by RAD
The RAD (Rapid Application Development) is used to create windows from:
• the analysis linked to the project,
• skin templates.
The generated windows contain the necessary source code. These windows can be tested
immediately with the data present on the development computer.

62 Part 4: Advanced concepts Part 4: Advanced concepts 63


Multilingual application Test of a WINDEV Mobile application
A multilingual application is an application that can be distributed in several languages. WINDEV The test of the entire project simulates the start of the application. This allows you to test the
Mobile takes into account the different languages of the application during the entire development entire application, even if its development is not finished yet.
of an application.
Several types of project tests are available in WINDEV Mobile:
The main steps for developing a multilingual application are as follows:
• Test on the development computer. This test simulates a mobile device
on the development computer. No connection to a device is required
1 Choose the languages
- Project
during this test. This test allows you to use the debugger. However, since
the test is run on a PC and not on the actual device, there may be some
- Analysis differences regarding application behavior.

• Real test (iPhone or iPad). It is possible to test the iOS application directly
on a mobile device. Simply:
2 Translate the project elements
• download the WMDEV application to the device (available on the store).
• scan the bar code displayed by WINDEV Mobile, which corresponds to
- Direct translation
- Translation via WDMSG, WDINT, the application to be tested.
WDTRAD, ...
This option allows you to test the application directly on a real device. The
debugger is available.

3 Programming
- Choose the application language
Data files
- Choose the character set
• Test on iPhone/iPad simulator. The test of iOS application can be directly
run on Mac when compiling the project in Xcode. This option does not
(Nation function) (ChangeCharset function) require a real iPhone or iPad device to run the tests but it provides a more
- Choose the character set - Take the character set into account when faithful execution than the "simulator" mode.
(ChangeCharset function) creating the files (HCreation* function)
- Choose the keyboard language - Take the character set into account when
(ChangeKeyboard function) reindexing (HIndex function)
• Test and debug on the mobile device (Android) connected to the
development computer. This test allows you to use the debugger even
though it is run on the mobile device.
4 Executable
Choose the library languages • Test on the Android emulator. The Android SDK is supplied with an
emulator of Android device. The test of the application can be run in the
emulator. This option does not require a real Android device to run the
tests but it provides a more faithful execution than the "simulator" mode.
5 Setup program
- Available languages • Real test (PC or mobile device). The test of Universal Windows 10 App
- Translate the setup program application can be run on a Windows 10 computer. This option allows you
to run your project in tile mode, from Windows 10 directly. The Universal
Windows 10 App application is automatically generated.

64 Part 4: Advanced concepts Part 4: Advanced concepts 65


Debugging modes Unit tests
There are two modes for debugging a WINDEV Mobile application: Unit tests (also called automatic tests) are used to test windows, procedures and classes in an
• Debugging in the simulator, application at different levels of development.
• Debugging on the mobile device (available in Android and iOS). To do so, select (or create) the test scenario that will be run.
These scenarios are generated in WLanguage and they can be directly modified.
Debugging in the simulator These scenarios are grouped in the test editor. The test editor analyzes the result of unit tests and
calculates the validation rate of the application.
This mode starts the application in a device simulator. However, the application is run by the PC Using a test scenario
itself in the Windows environment. Creating a test scenario (classes and procedures)
This mode is used to quickly debug a new function or to check an algorithm, but it may have a
different behavior compared with the actual device: 1 WINDEV Mobile window in the editor 1 Display the test editor

• file paths are those used by Windows,


• strings are in ANSI format by default (not Unicode),
• the functions specific to mobile devices (e.g. SMS) are not available.

Debugging on the mobile device 2 Record the test scenario 2 Run the test

This debug mode allows for a more accurate application behavior, since the debugger runs the
application on the actual mobile device (Android and iOS). All specific functions can be used
(except for the ones that require digitally signed executables)
This mode is slightly slower than the simulator. Indeed, it adds to the execution a communication
phase between the development environment and the debugger found on the device.
3 WLanguage code of test scenario 3 Result of the test

This mode requires a mobile device connected to the development computer.


Correction

To create a unit test on the current window, go to the "Automated tests" tab, "Tests" group, expand
"New" and select "Record a new scenario".

To create a unit test on a procedure or on a class method, select the procedure or class method in
the "Project explorer" pane and select "Unit tests .. Create a unit test" in the context menu.

66 Part 4: Advanced concepts Part 4: Advanced concepts 67


PART 5
WINDEV/WINDEV
Mobile interactions

68 Part 4: Advanced concepts


WLanguage functions
Most of the WLanguage functions available in WINDEV are also available in WINDEV Mobile. These
functions are common to the two products.
Windows-specific functions are not available in WINDEV Mobile due to the differences between
Windows and the various mobile operating systems (Android, iOS, etc.).
Likewise, some functions specific to mobile devices are only available in WINDEV Mobile.

The following diagram presents some WLanguage functions that can be used according to the
type of application developed:

WINDEV Mobile functions


only
Functions that can only be used
on Mobile Device (for example,
management of SIM card)

Common
functions
for example,
HReadFirst,
FileToScreen,
ExtractString...

WINDEV functions
for Windows
only
Functions not available
due to limitations of
the Mobile Device

70 Part 5: WINDEV/WINDEV Mobile interactions Part 5: WINDEV/WINDEV Mobile interactions 71


WLanguage functions specific to BeaconStopBackgroundDetection Stops one or more Beacon detections in the background.

phones BeaconStopPreciseDetection Stops the Beacon detection started by


BeaconDetectPrecise.
BrightnessAuto Returns or modifies the activation status of the
The following functions are specific to Android and iOS phones...
automatic adjustment of the brightness on the device.
ActionBarDeleteSearchHistory Deletes the history from the search control found in the BrightnessGet Returns the current setting of the brightness for the
action bar of a window. screen of the device.
ActionBarSearchVisible Allows you to get and change the visibility status of the BrightnessModify Modifies the setting of the brightness for the device
search control associated with the Action Bar in the screen.
current window.
BufferToURI Saves the contents of a buffer to a resource identified by
AlbumPicker Retrieves a photo, an image or a video stored in the its URI.
photo album of the mobile device.
CameraGenerateThumbnail Generates a thumbnail of the specified photo or video.
AlbumSave Saves an image, a photo or a video in the photo album
CameraPhoto Captures a photo via a Camera control in an Android or
of the mobile device.
iOS application.
AppleAdvertisingIdentifier Returns the device’s advertising identifier (iOS only).
CameraRequestPermission Requests permission to use the device’s camera.
AppleRequestTracking- Displays the permission request for user activity
CameraRunApp Starts the device’s native camera application to record a
AuthorizationAsynchronous tracking.
video or to take a photo.
AppleSignIn Used to implement authentication via "Sign In with
CameraStartDecoding Starts decoding bar codes in a Camera control.
Apple" on devices running on iOS 13 and higher.
CameraVideoStart Starts recording a video via a Camera control in an
AppleTrackingAuthorizationStatus Determines if the app has been allowed to track activity
Android or iOS application.
based on user data (iOS only).
CameraVideoStop Stops the video recording previously started by
awProcedureGetAndSendInfo Specifies the WLanguage procedure that will be
CameraVideoStart.
called when receiving information coming from
awSendAndGetInfo. ChangeTheme Is used to change, through programming, the theme
(dark or light) used by the mobile application.
awProcedureGetInfo Specifies the WLanguage procedure that will be called
when receiving information coming from awSendInfo. CheckUserIdentity Allows you to check the real identity of the current user
via biometrics check.
awSendAndGetInfo Sends data from an iOS phone to an Apple Watch (or
conversely) while expecting a response. DownloadAdd Adds a new download in the device’s download manager.
awSendInfo Sends an information from an iOS phone to an Apple DownloadRemove Cancels a download by removing it from the download
Watch (or conversely). manager, and deletes any existing files.
BeaconDetectBackground Notifies the application when the device enters or leaves DownloadGetInfo Retrieves the details of a download present in the
the transmission range of a set of Beacons. download manager.
BeaconDetectPrecise Used to find the Beacons near the device. DownloadList Lists the downloads from the current application in the
download manager.
BeaconListBackgroundDetection Returns the list of active Beacon detections started in
the background with BeaconDetectBackground.

72 Part 5: WINDEV/WINDEV Mobile interactions Part 5: WINDEV/WINDEV Mobile interactions 73


FileToURI Saves the contents of a file to a resource identified by NFCReadTag Starts reading a NFC tag or enables the detection of NFC
its URI. tags for the current window.
geoGetAddress Retrieves an address or a list of addresses NFCSendTag Sends a NFC tag to another device.
corresponding to the description of a geographic
NFCStatus Returns the activation status of the NFC sensor found on
location.
the device.
geoRunApp Starts the device’s native maps application to display:
NFCWriteTag Starts writing data onto a NFC tag.
• a specific geographical location,
• a route between two locations. NotifAdd Adds a notification into the system bar of device
(Android) or into the notification center (iOS).
geoTrackingDisable Disables the tracking of user positions for a WINDEV
Mobile application. NotifDelete Deletes a notification displayed in the system bar of the
device.
geoTrackingEnable Enables the management of location tracking in a
WINDEV Mobile application. NotifDeleteCategory Deletes a notification category from the application.

geoTrackingProcedure Defines the WLanguage procedure that will be called NotifListCategory Lists the notification categories of the application.
when the location of the user changes. NotifModify Modifies a notification currently displayed in the system
inAppCheckSubscription When starting the iOS application, checks whether the bar of the device.
In-App subscriptions have been renewed. NotifPushDisable Disables the management of push notifications for a
inAppConsumeProduct Used to consume, in an application, a product that was WINDEV Mobile application (Android or IOS).
previously purchased by the user. NotifPushProcedure Specifies the WLanguage procedure called when a push
inAppListProductInfo Retrieves, from the store, information about the "In-App" notification is received by a WINDEV Mobile application
products associated with the application. (Android or iOS).

inAppListPurchase Returns the list of application products purchased by the NotifPushSend Sends a push notification to a mobile device (iOS or
user and not consumed. Android).

inAppPurchaseProduct Sends a request for purchasing an "In-App" product PermissionList Returns one or all the permissions declared by the
associated with the application. application.

inAppRestorePurchases Restores the purchases of non-consumable products PermissionRequest Prompts the user to grant an application permission.
previously performed by the user in an iOS application. PhotoRunApp Starts the native camera application of the device in
KioskDisable Disables kiosk mode for the current application. order to take a photo.

KioskEnable Switches the current Android application to kiosk mode. PowerStatus Used to get various information about the battery (main
or secondary) of the device on which the application is
LEDSwitchOff Switches the LED (Light-Emitting Diode) of the device off. running.
LEDSwitchOn Switches the LED (Light-Emitting Diode) of the device on. RecorderAction Runs an action on the recorder or dictaphone found on
MobileNetworkConnectionInfo Returns information regarding the current connection to the current device.
data on the mobile network. ScreenSize Returns the size (in inches) of the diagonal of the screen
MobileNetworkStatus Returns the current status of the connection to data on the device where the application is run.
on the mobile network or asks to be notified when the ScreenType Returns the type of screen on which the application is
status of the connection to data changes. run: phone, tablet, computer or watch.

74 Part 5: WINDEV/WINDEV Mobile interactions Part 5: WINDEV/WINDEV Mobile interactions 75


SIPVisible Allows you to make the keyboard Visible. VibrationStop Stops the vibrations of the device (even if they have
been triggered by another application).
SMSDelete Deletes an SMS message from the memory of the
Android phone. This function should no longer be used. VibrationTrigger Triggers the vibrations of the device.
SMSFirst Reads the first SMS stored in the memory of the Phone VolumeGet Retrieves the current setting of the volume for a sound
Android. source.
SMSNbMessage Returns the number of SMS stored in the memory of the VolumeModify Modifies the setting of the volume for a sound source.
Phone Android.
VolumePhysicalButton Identifies or modifies the sound source associated
SMSNext Reads the following SMS stored in the memory of the with the physical buttons used to set the volume of the
Phone Android. device.
SMSReset Resets all variables of SMS structure. WidgetDisplay Refreshes a widget window.
SMSRunApp Starts the native application for sending SMSs found on WidgetProcedure Specifies the procedure that will be called when the user
the device (Android or iPhone/iPad). clicks an iOS 14 widget.
SMSSend Sends an SMS. WidgetRunApp Starts the application to which a widget belongs.
SpeechSynthesisInitialize Initializes the parameters of speech synthesis for the WiFiActivate Enables or disables Wi-Fi on the device.
current application.
WiFiAddNetwork Adds a new network to the list of Wi-Fi networks
SpeechSynthesisInProgress Used to find out whether a read operation is in progress configured on the device.
on the engine for speech synthesis.
WiFiConnect Connects the device to the specified Wi-Fi network.
SpeechSynthesisListVoices Returns the list of voices available on the device for the
WiFiConnectionInfo Returns the requested information about the current
speech synthesis engine.
Wi-Fi connection of the device.
SpeechSynthesisReadFile Reads the content of the specified file by using the
WiFiDeleteNetwork Deletes a network from the list of Wi-Fi networks
engine for speech synthesis found on the device.
configured on the device.
SpeechSynthesisReadText Reads the specified text using the device’s text-to-
WiFiDetectAccessPoint Starts detecting the Wi-Fi access points currently
speech engine.
accessible from the device.
SpeechSynthesisStop Stops all the current read operations on the engine for
WiFiListNetwork Returns the list of Wi-Fi networks configured on the
speech synthesis.
device.
tapiDialerCall Opens the default telephony application (dialer) found
WiFiStatus Returns the current activation status of Wi-Fi on the
on the phone and dials the specified number.
device or asks to be notified when the activation status
tapiDialerDisplay Opens the default telephony application (dialer) and of Wi-Fi changes.
displays the specified number. No call is made.
URIGetInfo Retrieves information of a URI resource.
URIToBuffer Loads in the background the content of a resource
(image, text, etc.) identified by its URI in a buffer
variable.
URIToFile Saves, in the background, the content of a resource
(image, text, etc.) identified by its URI in an external file.

76 Part 5: WINDEV/WINDEV Mobile interactions Part 5: WINDEV/WINDEV Mobile interactions 77


PART 6
Setup

78 Part 5: WINDEV/WINDEV Mobile interactions


Installing an Android or iOS
application
Several methods can be used to install a WINDEV Mobile application:

• Setup in APK format. This setup program is run on the Android device.
• Setup via Google Play.
• Setup via the Private Store.

• Compilation in Xcode on Mac. The compilation in Xcode is used to create


the executable application on iPhone or iPad.
• Setup:
• via App Store,
• via an In-House network,
• via an Ad-Hoc network,
• via the Private Store.

• Setup via Microsoft Store.


• Direct setup on a phone.
• Setup on a tablet.

80 Part 6: Setup Part 6: Setup 81


Different types of setup

Setup in APK format Setup via App Store


This setup consists in: App Store is an application proposed by Apple. App Store presents applications for iPhone and
• generating the application on the development computer. iPad that can be purchased or downloaded from a unique setup interface and included in the
• signing the APK file digitally. Apple devices.
Note: a self-signed key can be used. This setup consists in:
• copying the APK file to an Android device. • generating the application on the development computer.
• running the APK file on the Android device. This action triggers the application setup. • preparing the images required for the deployment.
• compiling the application in XCode.
To run the application, all you have to do is choose its icon from the "All programs" menu.
• saving the application in "iTunes Connect".
• compiling the application in XCode.
Setup via Google Play
• uploading the application on the App Store.
Users simply need to install the desired application directly from the App Store.
Google Play is a Google application. Google Play presents Android applications that can be
To run the application, all you have to do is choose its icon from the "All programs" menu.
purchased or downloaded from a unique setup interface included in Android devices.
This setup consists in:
• generating the application on the development computer.
• signing the APK file digitally. For deployment on Google Play, it is recommended to use a real Setup by adhoc and in-house
key signed by a recognized trusted authority.
This type of deployment allows you to distribute your application on an iPhone or iPad device.
• uploading the APK file to the Google Play website.
Most of the operations will be performed on the Web, then in the "Apple developer center", then in
Note: you must register on the site beforehand.
the XCode compiler on a Mac.
Users simply need to install the desired application directly from Google Play.
Depending on your iOS development license, you will have the ability to perform one of the
To run the application, all you have to do is choose its icon from the "All programs" menu. following setups:
• adhoc, to install the application on several devices (up to 100).
• in-house, to install an application on all the devices belonging to the company. The application
will be distributed either via a private Web server of the company, or by iTunes.

82 Part 6: Setup Part 6: Setup 83


Setup via Private Store PART 7
This type of deployment allows you to distribute your application on iPhone, iPad or Android

Communication
devices.
This type of setup consists in:
• Configuring the server that will host the application setup.
• Enabling the Private Store in your application.
• Generating the application.
• Uploading the application to the Private Store.
Users simply need to install the desired application via the link or corresponding bar code directly
from their devices.

Setup via Microsoft Store


Microsoft Store is a Microsoft application. It presents Universal Windows 10 Apps that can be
purchased or downloaded from a unique setup interface and included in Windows 10 devices.
This setup consists in:
• generating the application on the development computer.
• uploading the application to the Microsoft Store website.
Note: you must register on the site beforehand.
Users simply need to install the desired application directly from the Microsoft Store (Windows 10
device, tablet, PC, or phone).
To run the application, all you have to do is choose its icon from the menu of applications.

84 Part 6: Setup
Communication with WINDEV Mobile
WINDEV Mobile proposes several communication functions in several fields.
These functions allow you to:
• manage emails (POP3, IMAP and SMTP protocols),
• transfer files by FTP,
• perform HTTP and HTTPS requests,
• use the telephony,
• perform SOAP requests (to access SOAP, J2EE or.Net Webservices),
• manage SMSs,
• use TCP sockets (with automatic use of the SSL protocol), UDP sockets,
• use Infrared or Bluetooth sockets.

The availability of these functions depends on the features of the device that is running the
application.

86 Part 7: Communication Part 7: Communication 87


Managing the emails (POP3/IMAP/ Handling files on an FTP server
SMTP)
FTP (File Transfer Protocol) is a protocol used to transfer files from a site to another remote site.
This protocol is used to exchange files by TCP/IP, Internet Wi-Fi or ActiveSync.
POP3/IMAP and SMTP are email management protocols recognized by all service providers. These
Several thousands of file servers can be accessed by FTP on Internet. These servers propose
protocols allow you to communicate with the email server available at your ISP.
shareware or freeware accessible to the public.
Several WLanguage functions allow you to manage files on an FTP server from your WINDEV
Remark Mobile applications.
• POP3 and IMAP are used to receive emails.
• SMTP is used to send emails.
Transferring files by direct link between a Mobile Device and an FTP server by Wi-Fi:
Mobile Device
Connection: Ethernet card,
WI-FI, GPRS modem...
FTP server Mobile device
POP3 protocol
Receive emails Email server
(Hosting company)
SMTP protocol Retrieve and FTP account
Send emails send emails

Anonymous
Connection to the server
Transfer files by WI-FI (FTPConnect function)
(FTPxxxx functions, ...)
Principle
1. Start an email session with EmailStartSession.
2. Send and read the messages.
3. Close the email session with EmailCloseSession.

88 Part 7: Communication Part 7: Communication 89


Managing SMSs PART 8
With the WLanguage functions, WINDEV Mobile allows you to:
• send SMSs.
Appendices
• navigate through incoming SMSs.
• delete one or more incoming SMSs.

SMS (Short Message Service) commonly refers to text messages (up to 160 characters) sent to a
cell phone.

To use SMS functions, the WINDEV Mobile application must be installed on a phone.

Mobile device Cell phone


Smartphone, ...

SMS
Application
2 Send message
(SMSSend function) SMS

1 Create message
(SMS structure) 3 Receive and read
the messages

90 Part 7: Communication
Examples provided with WINDEV
Mobile
The examples provided with WINDEV Mobile are designed to help you discover the features of
WINDEV Mobile. Their source code is commented and detailed.

These examples can be opened directly from the WINDEV Mobile home window:
• If the example is not installed on the computer, it will be automatically downloaded (from a PC
SOFT server) and opened.
• If the example is installed on the computer, a copy is automatically made in "My Mobile
projects\My examples".

The open example corresponds to the copy of the original example. This allows you to work or make
changes to this copy. Therefore, the initial example is stored. Every time you open the example (via
the "Open an example" button), you can work on the modified or initial version.
Features of some examples supplied with WINDEV Mobile.

Examples that can be used in Android only

Android Chromebook This example shows the compatibility of WINDEV Mobile applications
for Android with Chromebooks.

Android Explorer This example is used to list the files and directories found on an
Android device.

Android Generated Reports This example shows how to use the option "Generate the print script",
which is available on Android reports.

Android GPS This example presents the use of the GPS functions of WLanguage in
an Android application.

Android Inventory This application is used to draw up inventories and to save the results
in a database.

Android Persistent Notifications This example is used to create persistent notifications that appear
even if the application is not used anymore.

Android Speech Synthesis This educational example shows how to manage voice recognition
and synthesis on Android.
The speech synthesis is performed by using either the WLanguage
functions, or an external JAR file included in the WINDEV Mobile
project.

Android Zebra MX This example allows you to access and modify the system settings of
ZEBRA devices.

92 Part 8: Appendices Part 8: Appendices 93


Android Zebra Print This example shows how to use the internal component WM Geolocation This example explains how to manage proximity searches with
"PrintConnectAPI", intended for printing with Zebra printers. geolocation:
search around me.
Android Zebra RFID This example allows you to manipulate RFID readers in Zebra devices
search in a city, at a given address, near an address.
Android Zebra Scan This example shows how to use the internal component The results are displayed in a looper and in a map with markers.
"ScannerDataWedge", designed for scanning bar codes with Zebra
devices running on Android. WM HTML Dialog This example explains how to dialog with an HTML control.
It is using the WLanguage “ExecuteJS” function and the Javascript
Android ZIP This example is used to browse the folders of the Android device to “WL.Execute” function.
find ZIP archives.
WM Loan This application was developed in one day, thanks to the power of
WINDEV Mobile and the ease-of-use of WLanguage.
Examples that can be used on iPhone/iPad only
WM Managing Contacts This example presents the management of contacts for Android and
iOS.
iOS Watch This example explains how to establish a dialog between an Apple
WM Managing Orders This example is a simplified management of orders and invoices.
Watch application and an iPhone application.
WM Notes This example is using the drawing functions of WLanguage for
Android and iOS. It allows you to draw graphic “notes” and save
Multi-platform examples (Android and iOS) them.

WM Organizer Control This example shows how to use the Organizer control on Android and
WM Attendance This application is an attendance manager. It allows you to list the iOS.
persons who attended a meeting.
WM Password Web sites, bank accounts, ... our life is filled with passwords. With
WM Bluetooth 4 This example explains how to use the Bluetooth Low Energy WM Password, no need to store all the passwords of your different
functions (Bluetooth LE): BTLExxx. accounts.
It is an application allowing you to find the nearby BTLE devices, to
connect to them and to interact with the proposed services. WM Photos This example is used to take photos and to save them with a title
and keywords. A search can also be performed.
WM Chart This example presents different ways to use a chart control. The photos are stored in the application directory therefore they are
private (not visible by other applications).

WM Click on Chart This example is used to offset the sections of a Pie chart via a WM Poker This example is a game of poker for Android, iOS and Universal
simple click. Windows 10 App smartphones.

WM CRM This example is a CRM application. WM Poll This examples is used to manage and view polls.

WM Discover MVP This example shows the implementation of an MVP (Model View WM Quizz This application allows you to check your knowledge and
Presenter) architecture in a project. This example has been competence on WEBDEV.
simplified to better explain the concepts of this architecture. This project explains how to generate an application for different
platforms from the same code.
WM Expense Account This example is used to enter your expense reports and to take a This example contains an Android and iOS configuration.
snapshot in order to follow up.
WM Reports This example shows how to use reports in WINDEV Mobile.
WM Food The WM Food example explains how to interact with the
OpenFoodFacts database from a WINDEV Mobile application via the WM RSS Reader This example is a reader of RSS stream for the Android and iOS
webservice proposed by this database. devices. This application will allows you to follow the news of your
favorite streams.
WM FTP Client This example is an FTP Client.
WM Shopping This option is used to manage several shopping lists.
WM Gallery Control This example shows how to use the “Image Gallery” control.
WM Sports This example is a sport application used to save your performances.

94 Part 8: Appendices Part 8: Appendices 95


WM Stocks This application is used to draw up inventories and to save the
results in a database.

WM Tic Tac Toe This example presents the famous “Tic Tac Toe”.

WM ToDo List This example is a manager of To-Do Lists.

WM_System This application is an example of some of the features of WINDEV


Mobile available for Android/iOS.

Examples that can be used in UWP only

UWA Notes Application for managing notes.

UWA Orders This training example presents, via a management of orders, the
proper use of GUI when developing Universal Windows Platform Apps
applications.

UWA Password Application for managing passwords.

UWA Stopwatch This example explains how to create a stopwatch.

You can find additional examples on our website (www.windev.com).

96 Part 8: Appendices

You might also like