Being in the digital product business brings an interesting mix of looking forward to what new features can be added while exploring how to improve existing features to make the life of our beloved users better. This month’s release brings a wide assortment of improvements, from enhanced scheduling options for scheduled events to new data tokens, native mobile gradients, mobile logging, new pluggable widgets API, and last but not least, a big update to our idea forum.
Scheduled events: Improved scheduling options
We’ve recently made quite a lot of under-the-hood changes for scheduled events, as well as some changes in the user interface. We’re happy to share the changes we’ve made and the effect these might have on your application.
Scheduled events are now executed through a Task Queue, which means scheduled events can now be picked up by any node in the cluster. This change also increases the reliability of your events in case of sudden downtime, since the scheduled task will be picked up as soon as your app is running again. Moreover, in a clustered environment the tasks will just be executed on another node if the cluster leader is down.
On the user interface, you will notice new options for different interval types. Based on the interval type you are offered more advanced options such as choosing a specific weekday for a monthly event or planning an hourly event with an offset of 45 minutes. We’ve also added clearer preview information including displaying which months your event will be executed, and what will happen (for example) for an event scheduled for the 31st of February. This will help you pick the schedule you want, without being surprised by edge cases like daylight saving times.
Another good thing to note is that Yearly and Monthly are now truly what they claim to be, instead of every 365 or 31 days.
The majority of scheduled events will automatically be converted to the new format without any behavior change. Some options are no longer supported, such as ‘every X days’ (old monthly and yearly), non-repeating events, or events commencing from a date in the future.
For the options that are no longer supported, you’ll get a deprecation warning which shows suggestions on how to manually convert the event. Not ready to convert them just yet? Don’t worry, we’ll only remove the legacy options with the release of Mendix 10.
New Date tokens in expressions
We already had tokens to compare dates against today using BeginOfCurrentDateTime and EndOfCurrentDateTime. We’ve extended the expression language in both Studio and Studio Pro with four new tokens, to make it very easy to evaluate against yesterday or tomorrow.
Background gradient for native mobile apps
Don’t we all love gradients? They add that extra bit of gloss to really make elements stand out. It is with great excitement for this release that we are announcing a new widget exclusively for creating gradients: The Background Gradient Widget. You can easily configure the start and end colors, or even have multiple colors. Additionally, you can add an angle, and the ‘click event’ can also be configured.
Improved mobile logging
Don’t you just love that feeling when you are hunting one of these annoying bugs and at some point it just clicks and you know what to do? In our latest release, we bring a major update to one of the most important tools that you use to catch these bugs: Logging.
With our new mobile client logs, you can monitor the startup process, the client database, data synchronization, and navigation events. Just set the appropriate log level for one of our new log nodes (starting with ‘Client_’) in the Studio Pro Console and observe.
Client_Startup The client doesn't need an upgrade to user scoped files directories. Client_Startup The database schema is up-to-date. Client_Startup Starting startup synchronization. Client_Startup Startup synchronization completed in 39.6 milliseconds. Client_Startup Showing home page NativeMobile.Countries_Overview Client_Startup Startup completed in 548.7 milliseconds.
Example 1: Client Startup Logs
Client_Synchronization Downloading objects Client_Synchronization Fetching objects. Client_Synchronization Fetching objects by XPath: //NativeMobile.Country Client_Synchronization Downloading objects completed in 1.5 milliseconds. Client_Synchronization Fetched 0 objects by XPath //NativeMobile.Country in 30.9 milliseconds. Client_Synchronization Fetched 1 objects and completed in 31.4ms. Client_Synchronization Calculating file operations. Client_Synchronization 0 files to be downloaded, 0 files to be removed Client_Synchronization Compute cached objects to update or delete. Client_Synchronization Compute cached objects to update or delete completed in 0.2 milliseconds. 0 objects will be updated, 0 will be deleted. Client_Synchronization Computing subscription updates. Client_Synchronization Computing subscription updates completed in 0.4 milliseconds. Client_Synchronization Downloading files. Client_Synchronization Downloading files completed in 0 milliseconds. Client_Synchronization Rebuilding the database. Client_Synchronization Rebuilding the database completed in 1.9 milliseconds. Client_Synchronization Updating cache. 0 to be updated, 0 to be deleted. Client_Synchronization Updating cache completed in 0.1 milliseconds. Client_Synchronization Removing 0 files. Client_Synchronization Removing 0 files completed in 0 milliseconds.
Example 2: Synchronization Logs
For now, mobile logging is enabled for applications running locally in Studio Pro. We plan to enable mobile logging for applications running in the Mendix Cloud in a future release.
Pluggable widgets: Set Reference API
All new widgets built with Mendix are based on the Pluggable Widgets API and can also be used by customers to build tailored widgets. With this release, we added new APIs to work with references, to build widgets that set a reference, like a radio button that sets a reference, or drop-down with type ahead. Spoiler, these are widgets on our current roadmap, but if you want to have a tailored version or have other great ideas go ahead!
Community: Making it easier to browse, find and post content in the forum
We’ve changed the navigation to both the question and idea pages of the forum so that you can easily find the content you’ve created, interacted with, or bookmarked within the community.
The main navigation has been moved to the left, where it now lives in the grey sidebar. This change prepares the Forum for exciting new features that are on the way. One new feature that you can enjoy right now is the dedicated bookmarks page. On this page, you can easily find all the content that you’ve bookmarked inside the forum.
Something else to note for logged-in and registered users are the ‘My Questions’ and ‘My Ideas’ pages. Clicking on the My Questions page will now bring you to a running list of questions you’ve asked, answered, or commented on allowing you to more easily revisit those questions if you need. Similarly, the My Ideas page allows for easy access to the ideas you’ve previously submitted or commented on.
The Filtering options have been moved to the top of the page, right above the central content area. By doing this we’ve brought it in line with the content, alleviating a pain point raised by newer Mendix Community members who shared that they were often confused on how to drill down in the forum results.
Keep an eye out on the right sidebar, which for now highlights the leaderboard of users who are most active on the developer platform. Over time this sidebar will additions that enhance your community experience.
Improved experience on mobile and tablets
While undertaking the changes mentioned above, we also listened to the feedback we received expressing the need for us to improve the experience on mobile and tablets. (Responsiveness FTW!) Browsing the forum should be a lot more enjoyable now on either of these devices.
You can find more in-depth details on these changes to the Forum here.
Are you ready to start making?