Running and Editing Apps in a Newer Release
Generally, applications developed in a given release are expected to work in newer releases as well.
If you open an app for editing that was created in a previous release, App Designer updates the app and displays a message such as this one:
This app was created in MATLAB R2023a. The generated code has been updated for R2023b.
Save the app with "Save As". The saved app is now compatible with the newer release.
If any incompatibilities are introduced, the Code Compatibility Analyzer is a useful tool that you can use to identify potential compatibility issues in your existing code when you update MATLAB: https://www.mathworks.com/help/matlab/matlab_prog/matlab-code-compatibility-report.html
Running Apps in an Older ReleaseWhether an app created in a newer release will run in a previous release depends on the components and functionalities used in the app:
- If the newer app uses a new component or functionality that the older release does not yet support, there will be an error when trying to run it in the older release.
- If the newer app only uses features that are supported by the older MATLAB release, the app should be runnable in that release of MATLAB.
Web apps are created against one version of MATLAB and that version of MATLAB is on the server. End users can access Web Apps (including new features) regardless of which version of MATLAB they are running on their personal machine.
Editing Apps in an Older Release If you try to edit an app in an older release of App Designer, any incompatible functionality (components that do not exist in the previous release) will be removed. To make the app compatible with an older release, follow the steps below:
1) Right-click the .mlapp file and select "Open".
2) App Designer will automatically detect the incompatible code and remove it. You will a message such as this one:
This app was created in MATLAB R2019a. The app has been updated to make it compatible with R2018b.
Some functionality might be lost, or you might see some unexpected errors.
3) Save the app with "Save As". The saved app is now compatible with the older release.
For example, if you create an app in R2019a or later that contains an image component ("uiimage"), this component will be removed when you open the app in R2018b or earlier. This happens because releases prior to R2019a do not support "uiimage".
If you try to edit a newer app in a release that is older than R2018a, you might first need to export it as explained in the following section.
Export Apps for Editing with R2017b, R2017a or R2016b
Starting in R2018a, the apps you save in App Designer have a new format. This new file format might impact your ability to edit newer apps in releases R2017b and older, but it has no impact on your ability to run them in previous releases.
Saving a copy of an app to R2016a is not in the list of "Save Copy As". It is still supported but requires a patch to be installed in order to work. You will need this patch if you want to edit the app in App Designer in R2016a: https://www.mathworks.com/support/bugreports/1397819 Performing "Save Copy As" is not an option when using R2023a Update 5 (or earlier) and R2023b Update 1 (or earlier). This is a known issue that was resolved in R2023a Update 6, R2023b Update 2, and is resolved in R2024a.
With Simulink
When using an app to interact with Simulink, it is important to ensure that both the App Designer and Simulink functionalities are supported on the releases being used. For example, if you are changing a specific property of a block, you will want to check that the property and the accessing function exist and are supported on all of the releases you are using. Then, you can place any necessary code changes that resolve incompatibilities into a callback function for an app component that is supported across all the releases (like a "uibutton"). Being careful about coding the app in this way should eliminate any incompatibilities between the releases.
There currently is no support for Web Apps to interact with previous versions of Simulink.