Deckhand® Pro –

May 23rd, 2023
Requires iPadOS 15 or later
Requires CatchFlow™ IDE version 1.1 or higher
Latest AppStore Release

This release addresses the following:


  • Command-line Help in CatchFlow IDE: We have introduced a new feature that allows you to access command-line help directly within the CatchFlow IDE. With this addition, developers can now access comprehensive command-line help documentation, providing guidance and information on various commands, options, and functionalities. This feature aims to enhance your development experience by offering convenient access to valuable resources without needing to leave the IDE.
  • Display of Apple Internal Device Marketing Model Identifier: The $system.deviceModel variable will now display the Apple internal device marketing model identifier for the current device. With this enhancement, developers can easily access and reference the specific Apple internal marketing model identifier associated with their device. This information can be helpful for various purposes, such as troubleshooting, device identification, or compatibility verification.
  • Introduction of $ Variable: The $ variable is now available for use within your sessions. With this enhancement, developers can access the unique identifier associated with the current session using the $ variable. This identifier can be utilised for various purposes, such as session tracking, logging, or distinguishing between different user sessions.
  • Introduction of the average() Function: This function allows you to calculate the average of a set of values or expressions. With the average() function, you can conveniently calculate the mean or average value of a collection of numerical data. This can be useful in various scenarios, such as calculating average scores, computing averages in data analysis, or obtaining the average of multiple measurements.


  • Enhancement to dateString() Function with International Translation: We have made changes to the dateString() function. When using the template= option, the function will now perform unconditional international translation, including language, for the specified date. With this enhancement, developers can expect the dateString() function to provide localized translations based on the specified template and language. This ensures that date strings are appropriately formatted for different regions and languages, while the normal formatting remains in English.
  • Expanded Operation of seq() Function: We have extended the functionality of the seq() function. The seq() function can now be used in additional contexts, such as in the count() or last() operations. With this enhancement, developers can leverage the seq() function in various scenarios, including debugging and testing Catchflow problems. While these applications may primarily serve illustrative purposes, they have proven valuable in identifying and resolving issues during development and testing processes.
  • Update to empty() Function Behavior: We have made changes to the empty() function. The function now considers strings that are completely blank to be empty. With this update, the empty() function will accurately detect and classify strings that have no visible characters, including those that are entirely blank. This ensures consistent behavior and aligns with user expectations regarding empty string detection.
  • Update to Custom Submission Handlers: We have made changes to the behavior of custom submission handlers. Returning nil from a custom submission handler is now considered an error. With this update, it is now a requirement that the original response object (or a copy) is returned by the custom submission handler function. Returning anything other than the response object will raise a Catchflow error. This ensures consistency and proper error handling.
  • Improved Localization in <dateTimeEntry/> Component: We have made enhancements to the <dateTimeEntry/> component. The captions displayed in this component will now be based on the available translated text. With this update, the <dateTimeEntry/> component will dynamically display captions according to the translated text available. Currently, the Spanish language translation is supported.

Fixed Issues:

  • Typo Correction in Scope Name for Remembered Forms: We have addressed a typo in the scope name of remembered forms. The typo involved the misspelling of “remberdForms” instead of “rememberedForms”. With this fix, the scope name has been corrected to “rememberedForms” to align with the intended spelling. Both the typo (“remberdForms”) and the corrected version (“rememberedForms”) are supported to ensure compatibility for any existing code that relies on the typo.
  • Resolution of return() Issue in Subexpression Contexts: We have addressed an issue related to the usage of return() in certain subexpression contexts. Previously, the return() statement was either ignored or caused the expression to fail in these contexts. With this fix, the return() statement will now function correctly in the specified subexpression contexts. This ensures consistent behavior and avoids potential issues that might have occurred when using return() in those contexts.
  • Resolution of seq() Operator Issue in Templates: We have addressed an issue related to the usage of the seq() operator in templates. Previously, the seq() operator did not function as expected within templates. With this fix, the seq() operator now works correctly in templates, allowing for sequential operations and generating sequences as intended. This ensures proper functionality and expands the capabilities of template usage.
  • Resolution of seq() Operator Issue with Certain Argument Combinations: We have resolved an issue related to the usage of the seq() operator with specific argument combinations. Previously, certain combinations, such as negative direction sequences, did not work as expected. With this fix, the seq() operator now handles various argument combinations correctly, including negative direction sequences. This ensures consistent and accurate generation of sequences, expanding the capabilities and flexibility of the seq() operator.
  • Resolution of for/endfor Statement Issue in Multi-line Expressions: We have addressed an issue related to the usage of for/endfor statements in multi-line expressions. Previously, these statements could accumulate a large number of unnecessary results, leading to potential memory exhaustion in long-running loops. With this fix, the for/endfor statements now properly handle the accumulation of results in multi-line expressions. Unnecessary result accumulation has been eliminated, ensuring more efficient memory usage and preventing potential memory exhaustion in long-running loops.

Thank you for your continued support and valuable feedback. We strive to provide you with the best experience, and your reports help us identify and resolve any issues promptly. If you encounter any further problems or have suggestions for improvement, please don’t hesitate to reach out to our support team.

-The Deckhand Pro Team