Custom Environment Variable in your ‘SwiftUI’ Project. How to define Environment Variable like a senior developer.
There are common problems encountered while developing with SwiftUI. How do I manage global state or global variable. How do I inject those variables? What if there are a lot of nested views? If you don’t think about this, your code can get messy.
There are many ways to fix this issue.
- Environment Variable
- Environment Object
- Redux Architecture
Here, I introduce you the easiest solution. Let’s learn about Creating Your Custom
Prepare Your Project
We now have only one
ParentView and one
ChildView which has
Rectangle. Now I’m going to define
Rectangle Size with environment variable.
Define EnvironmentKey and Environment Values
Define your environment key-values. Key conforms to
EnvironmentKey and must have variable called
defaultValue. Its datatype is generic. It means you can put any data type you want.
You can define your
extension. This is where we define variable name and its values. For example, here we can access
@Environemnt(\.rectangleSize). It’s computed property. You can give more logics when
set is called.
Access your defined environment variable
Now you can set new values with
.environment(\.rectangleSize, 150) in
ChildView can access
Sooner or later, you will face a problem with multiple nested views. Your view properties might explode. Believe me, every declarative framework has these problems. But if you have well-defined environment variables, your code will be more efficient and readable.