Add deprecations to non-view WithViewStore
initializers
#1323
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We've found that
WithViewStore
s overloads can really tax the compiler, so it's time to get prepare to remove them. The vast majority of uses are in SwiftUI views, so we can privilege the helper for that use case, and require a bit of extra work of manually observing a view store via@ObservedObject
in the other cases.In the future it would be nice to deprecate
WithViewStore
entirely, but we would want to offer a simpler tool, e.g. a property wrapper called@ObservedStore
that smashes the concepts ofStore
andViewStore
together without a lot of boilerplate. This would lessen compiler strain by avoiding escaping closures and generic transforms in the view builder layer. Unfortunately, we still haven't figured out how to get property wrappers to work in a way that we find simple and intuitive.In the meantime we can hopefully improve performance of the tool we provide by narrowing its focus to the most common builder.