The new Kanban control stands out as one of the most versatile new features in version 28. Enjoy all the features of a Kanban board by simply dropping the control onto a window or page
Kanban is a method in which tasks are visually classified, allowing for better task management.
Each task is written on a "card" that will move to a different list (column) according to its progress status.
In addition to tasks, these cards can represent any other type of resource: Manufacturing stage, requirement, suggestion, delivery, troubleshooting, user story, etc.
A Kanban board is commonly shared between several users.
Each member of the team knows the progress status of the project, and knows what both themselves and the other members have to do.
In addition to better communication, this card-based method provides a clear overview of the production chain and the progress of the tasks, thus allowing members to easily identify bottlenecks and prioritize certain tasks.
The Kanban control in version 28 includes all the features that users might expect:
All these features, included directly in the control, are available to the end users of your applications and sites. You can also handle these features programmatically.
You can manage various features of the Kanban control programmatically:
The Kanban control, as well as the lists and cards have properties that allow you to configure all these elements.
You can add and remove lists and cards programmatically.
kbCard, a new native WLanguage type, allows you to handle the content of a Kanban control.
The kbCard type contains the following properties:
You can handle lists programmatically, just like you handle columns in a table: It's a skill you already master!
To allow searching and filtering elements in Kanban controls, the new WLanguage KanbanSearch and KanbanFilter functions have been introduced in version 28.
You can use the same Kanban control in WINDEV, WEBDEV and WINDEV Mobile 28.
All the main features are the same, with some adjustments for mobile and web to better take advantage of each platform.
The control adapts to portrait mode on mobile devices.
Format your text for all platforms
Markdown is a "lightweight" markup language that allows you to apply formatting to text. This language works on all platforms: PC, Web and Mobile.
Because of its simplicity and practicality, Markdown is easy to read, learn and remember.
For example: Wrap text in double asterisks (**) to apply bold formatting, use # at the start of a line to create a heading, ## to create a subheading, etc.
In version 28, you can easily write and format text in many UI elements using Markdown (without gPen, gImage etc.).
This may include, for example:
Use the new MarkdownToDOCX, MarkdownToPDF and MarkdownToHTML functions to convert Markdown text to those formats.
In version 28, you can create PDF forms using the report editor.
In addition to the controls available in the report editor, you can include the following types of controls in PDF reports:
In version 28, you can create reports and include these controls to automatically generate interactive PDF forms.
End users will be able to enter data, print or save the form.
A document can be composed of a series of reports and PDF pages.
Generating a single PDF document from this series of elements drastically reduces the size of the resulting file.
Generally, users can select text in standard PDF documents.
However, some PDF documents may prevent the user from copying text, for example, if the text has been scanned.
Now, this text can be retrieved using the native OCR integrated into WINDEV's PDF Reader control.
OCR is run on an area defined by the end user.
A report can use a PDF document as background.
The report itself can then be generated as a PDF document.
The weight of the resulting PDF file (that already uses a PDF background) is reduced by at least 50%.
In version 28, the PDF generation process is dramatically faster.
2 to 25 times faster, depending on the size of the documents.
In version 28, you can set the position directly on a given bookmark.
To do so, you can use the new pdfBookmark type and its Title and PageNumber properties, the new Bookmark property, and the new PDFReaderGoToBookmark function.
In version 28, you can define the quality and weight of the resulting document by setting a compression ratio.
This allows you to adapt the size of the document: The lower the quality, the lighter the document.
You can set this compression ratio with the new Quality parameter of the pdfSave WLanguage function: Automatic, High, Average and Low.
The PDF Reader control shows a notification when a document is signed.
The user can see the details of the signature in the document reader.
In version 28, these notifications have been rewritten using non-technical terms. They are now clearer for the end user, thus providing better security:
Reassign or create your own shortcuts
In version 28, you can define your own shortcuts in all the editors of the WINDEV, WEBDEV and WINDEV Mobile environment:
In version 28, you can create shortcuts for any action, even for actions that do not have a preset shortcut.
In the ribbon, go to the "Home" tab, expand "Options", and then select "Customize keyboard shortcuts" to open the list of actions available in each editor. Then, simply enter the desired key combination.
You want to change a shortcut key combination?
Go to the ribbon and open the list of actions available in each editor. Then, simply enter the desired key combination.
Key point: You will be able to use your custom shortcuts in future versions.
Additionally, you can export your shortcuts to another computer.
We've all been there: An application randomly slows down, without explanation.
WINDEV 28 helps you determine and fix the cause of the problem.
The Real Time Performance Profiler (RTPP) displays an application activity chart. The data can be shown in real time, but also come from a log file.
This chart allows you to identify bottlenecks and causes of low performance.
The chart represents the application activity.
Data is shown in real time.
The chart uses two levels:
You can scroll forward or backward through the chart, zoom in, and more.
High levels that take too long appear in red.
Click a high level section to see all the function calls, execution time of each function and even the code of these functions.
By analyzing the code, you can identify the cause of slowdowns.
There are three analysis modes:
Use dbgEnableLog to write to the log file.
The RTPP also supports multithreaded applications.
The chart shows the activity of the different threads, and allows you to analyze possible cases in which threads block each other: Thread waiting for synchronization, multiple threads waiting for tasks, etc.
Controls are automatically moved and resized according to your rules
The Flexbox layout mode works by repositioning controls within "boxes", setting a vertical or horizontal alignment, setting relative sizes and nesting boxes. Each box corresponds to a Flexbox control.
The advantage of this mode is the automatic repositioning of boxes and the controls they contain, in order to fit the browser and/or the content.
A page in Zoning mode (with or without layouts) or in legacy Responsive mode can contain one or more Flexbox controls.
Controls are positioned one after another, within a box (Flexbox control).
Key point: One or more of these controls can themselves be containers.
First, indicate how controls should be positioned within each box: In rows or columns.
Then, indicate how the controls should react when the box or the other controls are resized: Wrap, enlarge, reduce, etc.
Apply this method to as many controls as necessary to define their positioning and resizing behavior.
The most common flexbox properties are clearly represented in the 7-tab window.
More specific properties can be defined by writing or copying/pasting the corresponding CSS code. You will always find a solution!
To change the default behavior, you can configure each control individually.
For example:
As with the flexbox container, you can also define the behavior of each control by writing the CSS code directly.
Several preset modes that correspond to standard properties are available by default. This helps you save time: No need to configure every single option.
These preset modes can be customized.
Flexbox controls can be used in all types of pages: Zoning, Zoning with layouts, legacy Responsive, etc.
A Flexbox control can be placed among other controls, but also in a Looper, cell...
Better than ever in version 28
The top bar is known as "Action Bar" in Android and "Navigation Bar" in iOS. However, for the purpose of simplicity, the term "Action bar" will be used often in the rest of this document.
This bar can be defined by the system, or be customized.
A system bar can have the following characteristics:
In version 28, bar customization has been drastically improved.
You can now fine-tune different aspects of the bars:
For example, you can:
Everything can be easily customized!
These are some of the main new features for mobile devices in version 28: New Image Editor control, new Action Bar & Navigation Bar, new Kanban control, 4 new Smart controls, 2 new skin templates, deep links, WEBDEV page in a mobile window, text formatting suggestions, etc.
WINDEV Mobile is open to third-party languages.
Kotlin is a programming language mainly used for Android development.
In version 28, you can write Kotlin code in the code editor directly.
Syntax highlighting makes it easier to write and read code in this language...
Note: Java is still supported, of course.
These are some of the main new features for Android in version 28: Native Kotlin support, ability to get the result of an Activity (payment, etc.), free positioning of icons inside buttons, advanced functions on zoomed images, 56 new WLanguage functions, etc.
Using internal pages within loopers opens endless possibilities
In version 28, you can insert a horizontal Looper in a vertical Looper, and vice versa: Let your creativity fly!
The Looper control is one of the most widely used controls in WEBDEV.
This control allows you to define an area with data and controls, and use it as many times as necessary.
In version 28, you can include new types of controls: The Looper control now supports Internal Pages, which allows for endless possibilities.
You can include Internal Pages (the same or different) in each iteration.
Each one of these Internal Pages can itself contain a Looper.
This new feature makes it easy to display different data in each iteration of the Looper control.
Programming is easier than ever, thanks to the new LooperAddIP, LooperInsertIP and LooperModifyIP function.
The same Looper can use different Internal Pages.
WEBDEV 28 includes an HTML Edit control with enhanced features.
In version 28, this Edit control includes new useful features:
In version 28, the HTML Edit control includes a new and very useful WLanguage event.
The "Key pushed" WLanguage event is available in Browser code.
This event allows you to create a set of autocomplete suggestions, or set shortcuts on function keys, for example.
In version 28, the toolbar of the WEBDEV HTML control includes new options to:
The HTML Edit control features an "email" input mode that limits the HTML functionalities to those recognized by most email clients.
Integrate a WEBDEV site into a WINDEV window with two-way communication using WLanguage
WINDEV's new "WEBDEV Page" control allows you to integrate a website into a WINDEV application, and to interact with this site programmatically.
Simply specify the URL of the page to insert.
The window that contains the control interacts with the page via browser procedures.
These procedures are accessible in the WINDEV code editor and benefit from code completion.
By integrating a website into a window in a desktop application, you can share existing elements and boost productivity.
Many new development projects are intended for the Web.
However, most existing projects consist of Windows applications.
Integrating a website into a WINDEV window is a major step to preserve and webify a company's software assets without sacrificing functionality.
This allows for rapid, agile, risk-free, step-by-step progress.
The WEBDEV page procedures that can be called from a WINDEV window must be specified in a shared interface.
These procedures can make AJAX calls to the server.
The WINDEV procedures that can be called from the WEBDEV page must be declared in a shared interface.
This interface generates a configuration file.
This configuration file must be provided to the WEBDEV environment, which will then allow you to natively call the procedures.
You will be able to call the window procedures directly from the code of the browser procedures of the page.
A web page can contain menus, an ad banner, style controls, a footer with the legal notice...
This information may no longer be useful when the page is integrated into a WINDEV application.
To solve this, a new type of layout specific to the WINDEV and WINDEV Mobile integration is now available in WEBDEV. This layout allows you to avoid displaying certain information.
The page and the window must exchange data in a secure way.
To start with, navigation in the WEBDEV page is limited to the domain of the URL provided in the application. This eliminates the risk of cross-site scripting attacks (XSS).
If the WEBDEV page contains sensitive data, there are several methods to secure access to the page:
This information is then sent through a secure HTTPS URL.
You can implement additional security features.
Two-factor authentication, with a code sent via email, for example.
IP address-based restriction can also be easily implemented.
One major feature of the latest iPhone is the Dynamic Island, which transforms the black notch into a widget.
WINDEV Mobile 28 supports this new behavior.
Simply define the UI of the Widgets with Swift UI, then use WLanguage to automatically generate the widgets in the project and specify the callback procedure that will be called when the user interacts with the widget.
WINDEV Mobile 28 supports both iOS 16 and WatchOS 9
All iPhone 14 and AppleWatch Series 8 models are supported.
iOS development has never been as powerful as with WINDEV Mobile 28. The amount of powerful features at your disposal keeps growing.
iOS evolves, and so does WINDEV Mobile 28. WINDEV Mobile 28 for iOS benefits from:
iOS 16 allows you to create Widgets that will be displayed on the lock screen, whether or not the Always-On display is enabled.
In WINDEV Mobile 28, you can create this type of widget.
The new iPadOS 16 is supported.
In WINDEV Mobile 28, you can create Extra Large widgets.
The code editor is much more responsive in version 28. In most cases, it is twice as fast, and up to four times faster when working on large sections of code!
This makes for a much smoother workflow.
These are some of the main new features of the code editor in version 28: Faster editor, hashtags, 7 new shortcuts, quick search, SQL query generation wizard, and more.
The new AIDetectContour function detects the contours of a shape in an image.
The function returns an array of polygons of all the shapes that have been detected in the image.
"Extension functions" allow you to add your own WLanguage functions to types.
The functions you have defined can then be called as native WLanguage functions.
For example, you can create a function that replaces Tab characters with spaces in a string.
Your functions appear in the code completion drop-down list for the given type.
These are some of the main new features of WLanguage in version 28: Undetectable strings, ability to create your own WLanguage functions, prompt a recipient to add an appointment directly to their calendar, secure file transfer via SCP, local or private procedures, UTF-8, UTF-16, UTF-32 conversions, straighten images, component loaded at runtime, improved introspection, unique function to perform OCR in a rectangular area, certificate integrated in the executable, new encryption formats, ability to get the Mapping attribute programmatically, WDSCRIPT scripting editor, and more.
In version 28, external components can be loaded dynamically, which means you don't need to include the component in the project.
The new ComponentLoad and ComponentExecute functions will prove extremely useful.
Combined with OOP interfaces, this new feature allows for a more cohesive architecture.
The new undetectable attribute automatically obfuscates the content of the string in memory.
The content of the undetectable string cannot be read in a memory dump file.
The new dStraighten function in version 28 allows you to apply perspective correction to an image.
This function is based on a homeomorphic algorithm.
In WLanguage, you can easily create email messages using the advanced Email type.
In version 28, the Attach property can be used to insert one or more appointment invites in the email message.
The email client will then suggest the recipient to add this appointment to their calendar.
In version 28, you can define the scope of a local procedure and the global variables of the window or page: public or private.
Public procedures can be called outside the control.
Private procedures can only be called from within the control.
UTF-16BE and UTF-16LE are Unicode encoding standards (LE for Little Endian and BE for Big Endian).
LE and BE use different byte orders. The new UTFConvert function allows you to convert strings between these formats.
Signing or encryption functions can use different certificate formats.
In version 28, in addition to P12 certificates, the PEM and DER formats are also supported.
The new PicRectangularSnipOCR function opens the rectangular snip tool, gets the result of the selection, runs OCR and returns the resulting text.
The GetDefinition function now also gets the complete prototype of window, page and report initialization processes.
Signing or encryption functions can use certificates.
In version 28, you can use certificates coming from a buffer in memory, and not only from a file on disk.
In version 28, you can indicate that a key is "nullable", i.e. that it can contain the Null value.
Null is different from zero, or from an empty string. Now, sorting operations differentiate zero from Null values.
A primary key is a unique key that cannot be Null.
In version 28, you can define primary keys. For example, automatic identifiers are usually primary keys.
These are some of the main new features for HFSQL in version 28: Nullable key, primary key, HTrack in a thread, AES-256, AES-128, AES-192, improved Control Center for HFSQL Cluster, HFSQL Spare, and more.