Skip to main content
Version: v11.11.1

WaveMaker 11.11.0 - Release date: 28 April 2025

WaveMaker's Release 11.11 introduces numerous notable features, including differentiation between user and migration changes in Studio, the Dynamic Wizard Widget, migration to standalone components, and significant enhancements such as improved canvas visuals, optimization of applications by cleaning up unused i18n files in Web, chart widget enhancements, migration to Expo image, and gradient text in React Native. This release will also address several crucial bugs in both web and React Native platforms.


New Features

Differentiating User Changes and Migration Changes in Studio

Studio's new feature for differentiating user changes from migration changes during project upgrades offers significant benefits, enhancing the development workflow while ensuring compatibility with the latest tech stack and Studio practices.

Benefits of Differentiating Changes

Enhanced Transparency: By clearly separating user modifications from migration updates, developers gain a better understanding of the migration changes, reducing confusion and the risk of unintentionally reverting essential updates.

Efficient Troubleshooting: When issues arise post-migration, being able to understand and locate whether a change was user-initiated or part of the migration process helps in quicker diagnosis and resolution.

Streamlined Maintenance: Maintaining applications becomes easier and clearer when developers can focus on user-specific changes without being distracted by migration modifications.

Reduced Errors: Clear differentiation minimizes the risk of accidental overwrites or deletions of critical migration updates, leading to more stable and reliable applications.

New UI Tabs for Change Differentiation

In the View Project Changes window, users now see three tabs:

  • User Changes – Shows only files changed by the user.
  • Migration Changes – Lists all changes made by Studio as part of the migration.
  • Overall Changes – A combined view of both migration and user changes.
  • Changes Since Last Push (only when PR flow is enabled) – Shows changes made after the last push.

Change Categories in Push Flow

Check out Distinguishing User vs. Migration Changes in WaveMaker Studio to learn more.

Migration

Migration to Standalone Components in Angular

With this release, users can observe the transition from a module-based architecture to standalone components in generated Angular applications. This transition allows users to build applications without the rigid structure of modules.

Why this transition?

The benefits of moving from a module-based architecture to standalone components include:

  • Simplified development process for Angular applications.
  • Improved performance with faster load times.
  • Enhanced reusability using standalone components.
  • Support for tree-shaking optimization.

Module Based vs Standalone Components

Impact on Generated Applications

Starting with WaveMaker Release v11.11, generated Angular applications have transitioned to using standalone components, replacing traditional NgModules. This shift aligns with Angular's latest best practices, simplifying application structure and reducing boilerplate code.

Key changes include:

  • The app.module file is no longer generated.
  • The App config file is generated to manage application dependencies.
  • Page-level modules are eliminated, reducing the number of files in the application.
  • Each page component is now a standalone component, lazily loaded upon routing.
  • Application startup utilizes the modern bootstrapApplication() API, leveraging main.ts and app.config.ts for configuration, thereby removing the need for a root AppModule.

To know more, see Standalone Components in Generated Angular apps.

Enhancements

Dynamic Wizard Widget

Introducing the Dynamic Wizard widget, which allows users to build flexible, multi-step forms that adapt based on data and user context. Key capabilities include:

Auto-Generated Steps: Wizard steps and content can be dynamically created from datasets or JSON objects, making the widget reusable across varying scenarios.

Partial Content Support: Each step can load different templates or HTML content available in a Partial.

Dynamic Forms: Each wizard step can contain dynamic form that adapts to user data, allowing flexible input fields and validation.

Custom Navigation: Developers can set a default starting step, jump to specific steps, and track the current step index.

Real-Time Step Management: Add and remove steps dynamically based on user actions or logic.

Context Awareness: Easily identify the first or last step to disable buttons or trigger special actions.

These features make the wizard highly customizable, enhancing user experience and improving multi-step forms handling in dynamic workflows. To know more, see Dynamic Wizards in WaveMaker Studio.

Improved Canvas Visual

This release introduces a significantly enhanced WYSIWYG (What You See Is What You Get) canvas, ensuring that the design environment closely mirrors the live application. This update addresses previous challenges such as text overflow, unintuitive component names, and misaligned layouts.​

Key Improvements:

WYSIWYG Accuracy: The canvas now accurately reflects the live application's fonts, spacing, padding, and alignment, providing a seamless design-to-preview experience.​

Enhanced Text Handling: Text elements are intelligently managed to prevent overflow, maintaining a clean and organized canvas.

Meaningful Component Naming: Components are now auto-named based on their binding expressions, offering clearer context and easier navigation within the layout.​

Benefits:

  • Reduces time spent on fixing layout inconsistencies.​
  • Streamlines the design-to-preview workflow.
  • Enhances confidence in the design process, ensuring that what is seen during development matches the end-user experience.​

To understand more, refer More Accurate Canvas Design: Bringing WYSIWYG Closer to Reality.

Optimizing Angular Applications by Cleaning Up Unused i18n Files

To optimize Angular application performance and reduce bundle size, it's crucial to eliminate unused localization files from libraries like Moment.js, @angular/global, and FullCalendar. This approach significantly enhances performance, leading to faster load times and a better user experience.

How to Remove Unused Locales

Moment.js: Use the moment-locales-webpack-plugin to specify which locales to include, effectively excluding the rest.

@angular/global: As part of a prebuild process, we are updating the angular.json assets to copy only the necessary locales during the build.

FullCalendar: Manually import only the necessary locale files instead of the entire set, ensuring that only the needed locales are bundled.

Performance Testing Results after Optimization

  • A 25% reduction in finish time.
  • A 35% decrease in load time on Fast 4G networks.

Disk usage of existing and updated apps are shown below.

Disk Size Optimization

Refer to Optimize Web Apps: Reduce Bundle Size by Cleaning Up Unused i18n Files to learn more.

Studio Preview Now Opens in a New Tab

In previous versions, users had to manually copy and paste the preview URL into a new tab. With this release, clicking 'Studio Preview' opens the app directly in a new browser tab, replacing the earlier pop-up window approach. If the preview tab is already open, clicking 'Studio Preview' again automatically refreshes it, ensuring you always see the latest changes without manual intervention.

This enhancement eliminates pop-ups, improves browser behavior, and offers a more modern, seamless experience.

Check out Studio Preview in New Tab to know more.

Removing Unnecessary Items in Angular War File

Previously, Angular build-generated .war files included many unnecessary files like dev assets, themes, and media, leading to larger deployment sizes, security risks, and manual cleanup efforts.

To resolve this, a default exclusion mechanism is introduced in the Angular build profile, automatically omitting non-runtime files. This reduces .war size, improves security, and simplifies the build process. Developers can further customize exclusions using Maven properties.

React Native

Chart Widget Enhancements

Hiding X-axis Label

Previously, users were unable to hide x-axis labels. Now, with this enhancement, users can hide the x-axis label by setting the showxaxislabels property in the markup section to false.

Before:

Before Showxaxislabel

After:

After Showxaxislabel

Customizing Bar Width

With this enhancement, users can now adjust the bar width in Bar and Column chart widgets by setting the new property, barwidth, as required.

Before:

Before adding Barwidth

After:

After adding Barwidth

Migrating Picture Widget to Use Expo Image

In previous versions, the Picture widget utilized the default Image component. With this release, it has been migrated to use Expo Image to leverage performance benefits such as improved caching, placeholder support, error handling, lazy loading, priority loading, and optimized delivery.

Implement Gradient Text Styling in Labels

Introducing a property to add gradient text styling in the Label widget. To implement this enhancement, use the below CSS property.


.app-label-text {
color: linear-gradient(90deg, #f00, #00f);
}

Bug Fixes

Application Redirection Failure in Embed Mode

When the application is in embed mode and loaded in an iframe, redirections were failing. To overcome this, the Content-Security-Policy header value has been made static, which was earlier dynamic.

Wizard Height Issue in Nested Wizards

In cases of nested Wizard widgets, users could see the height percentage changes in the markup section, but not in the UI. This issue is now fixed.

Data Field and Display Field of CheckboxSet are Auto Setting to Empty

When using the CheckboxSet widget, the Data Field, Display Field, and Display Expression were bound to variables. Upon refresh/reload, users could not view any values bound to those fields in the properties panel—they appeared empty.

Allowed File Upload Extensions Property Updates is Reverted upon Publishing Prefab

In prefab projects, users were unable to update the Allowed File Upload Extensions in the General Settings section, as any changes reverted upon refreshing the page.

Add Button Action is Not Working for Tabs, Accordion, Wizard, Button group and Carousel

Previously, after adding a widget (Tabs, Accordion, Wizard, Button Group, or Carousel) and saving the workspace, clicking the Add Button didn’t save the markup as expected. This issue was resolved by implementing dirty-checking on the Add Button click. Now, the corresponding markup is correctly added upon saving.

React Native

Page Size Property Issue

In the List widget, users were unable to view the Load More message or indicator even when the provided Page Size value was less than the total number of items. This issue occurred when the list widget was configured with horizontal direction and pagination type set to On demand.

OnRender event in List is Triggered When List is Hidden in Prefab.

In prefabs using the List widget, the onRender event was triggered even when the list was hidden. This issue has been fixed by adding a new property, triggeronrenderwhenhidden, set to false in the markup section.


<wm-list
on-render="staticVariable1List1Render(widget, $data)"
triggeronrenderwhenhidden="false"
show="false"/>

Scrolling Issue in Dialog Widget

On Android, when using the Dialog widget, users encountered issues with vertical scrolling within dialogs. Scrolling often became unresponsive and required multiple attempts. This issue was particularly observed after interacting with non-editable/disabled input fields within the dialog.

Label is Shown Undefined Text When Used With AppLocale

When the Label is added using appLocale property in the script, it is displayed undefined instead of showing the Label text. This issue is now fixed.

Expo-Preview Issue

Previously, .gitignore files were included, slowing things down—especially after Prefab changes. Now, only the files you need are scanned, making Expo-Preview faster. This issue was fixed by improving preview speed by filtering out unnecessary files during app scans.

Technology Stack


WaveMaker Studio

UI Frameworks (Web and Mobile)

DescriptionJS LibraryVersion
JS Bindingjquery3.7.1
jquery-ui*1.13.3
MVC FrameworkAngular18.2.13
ngx-bootstrap9.0.0
Stylesbootstrap3.3.7
Chartingd37.8.5
nvd31.8.11
Fullcalendar 5.3.1 -> 6.1.15
Built-in functionslodash-es4.17.21
Device support, gestureshammerjs2.0.8

Optimized jQuery-UI library excluding unwanted components like accordion, datepicker, dialog, progressbar, spinner, tabs, and all jQuery-UI Effects.

Backend Frameworks (Web and Mobile)

DescriptionJava LibraryVersion
Spring Framework6.2.5
Security frameworkSpring Security6.4.4
Spring Data2024.1.4
Spring Boot3.4.4
Spring Session3.4.2
Java JSON utilitiesGson 2.12.1 -> 2.13.0
DB Persistence libraryHibernate(Jakarta)5.6.15. Final
Sample databaseHSQL2.7.4
JSON libraryJackson2.18.3
Logging frameworkSLF4j2.0.17
Logging ImplementationLog4j22.24.3
Http client libraryHttpComponents - httpclient 5.4.2 -> 5.4.3
Servlet Framework6.0.0
Database Connection PoolingHikariCP 6.2.1 -> 6.3.0
Commons Lang33.17.0
Guava 33.4.5-jre -> 33.4.8-jre
Postgresql Driver42.7.4
Hibernate Validator8.0.2.Final
Jgit 7.1.0.202411261347-r -> 7.2.0.202503040940-r
Commons Codec1.18.0
Commons IO 2.18.0 -> 2.19.0
Commons Text1.13.0 -> 1.13.1
Antisamy1.7.7
Freemarker2.3.34
Apache Tika3.1.0
Mariadb JDBC Driver3.5.2
Mongodb Driver5.4.0
Jakarta Validation Api3.1.1

Web

Runtime Environment

DescriptionVersion
JDK 21.0.3 -> 21.0.6
WebSphere Liberty23.0.0.9+
JBoss Wildfly27+
Tomcat 10.1.31 -> 10.1.39

This is the default Tomcat runtime support. Apps can be deployed to any standard Java Web Server running on JDK 11. For more information, see here.

Angular Web

DescriptionVersion
Java 21.0.3 -> 21.0.6
Node22.11.0
Maven3.9.9
npm10.9.0
Ant1.10.11

For more information about building projects with Maven, see here.

Mobile (React Native)

Environment Setup

DescriptionVersion
Java17
Node 18.17.1 -> 22.11.0
Maven3.9.9
npm 9.5.1 -> 10.9.0
Android Studio Ladybug 2024.2.2 - Meerkat 2024.3.1
Xcode 15.4 - 16.2
SDK Build Tools34.0.0
wm-reactnative-cli1.8.8
Android Gradle Plugin (AGP) 8.7 -> 8.10.2
note

Users can now use a single Node.js v22.11.0 version across both Web and React Native platforms, as well as CLI tools.

SDK Update

DescriptionVersion
Expo52.0.17
React Native0.76.3