What is the the good practice for exchanging data in App Designer?

1 view (last 30 days)
Let's start with a simple example:
We're having a button callback that calculates the numeric field value from two other numeric fields in the application.
function ButtonPushed(app, event)
app.VariableAField1.Value = app.VariableBField2.Value*app.VariableCField3.Value
end
Then we call a helper function
function helpfun(app.VariableAField1.Value, app.VariableBField2.Value)
x = app.VariableBField2.Value
y = app.VariableAField1.Value;
plot(x,y)
end
If we had a bit more variables to pass in the helpfun, then input arguments in the helpfun would be quite long, and maybe unreadable.
The way that I did is to work with public properties, which I defined in the helper function and called within startupFcn. But, public properties operate in a similar way in Application (or am I wrong?) as the global variables operate in scripts, so that is what I am worried about.
Solution with properties:
function helpfun(app)
% app.x and app.y have default values
% when the user updates respective field, callback will update x and y property values
plot(app.x,app.y)
end
I would appreciate a light discussion on this question.
If this question should be on the pile of questions that are related to the usage of global variables, I welcome its confirmation and locking (with the suggestion of the common practice).
Thank you in advance.

Accepted Answer

Mohammad Sami
Mohammad Sami on 7 Sep 2020
Edited: Mohammad Sami on 7 Sep 2020
No public / private properties are not the same as global variables.
They are only available in the non static functions defined in the app or in classes which inherit from your app. Public properties can also be access in external functions, if app is passed in as an input arguments.
Inisde the function you always have to access them as app.property.
function internalfunction(app)
app.property1;
app.privateproperty1; % only accessible in functions defined in app
end
  1 Comment
Mario Malic
Mario Malic on 9 Sep 2020
I waited a bit to see if someone else will reply as well.
Thank you very much for clarifying my question.
Hope you have a great day!

Sign in to comment.

More Answers (0)

Categories

Find more on Develop Apps Using App Designer in Help Center and File Exchange

Products


Release

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!