You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Loop may offer in-built SwiftUI integration on Apple platforms without creating an extra "LoopUI" package.
Loop only needs to provide standard data funnels to connect feedback loops with SwiftUI, and has no involvement in UI concerns except for the two characters in import SwiftUI. Everything else is SwiftUI's declarative UI realm (data to virtual DOM, vDOM to native view, etc). That is in contrast to our UIKit sibling ReactiveCocoa, which is a heavy UI-focused library that (1) attempted to solve AppKit/UIKit reactive programming at a micro level (KVO-like property bindings), and (2) wraps parts of Objective-C dynamism into friendly Swift APIs.
Since SwiftUI is shipped with the system, no friction is incurred for dependency management on users' end. All these collectively makes it perfect for Loop to offer straightly the said utilities.
Such integration should be excluded from Linux builds.
Concepts
Concepts are built upon the implicit behavior of DynamicProperty, which serves as a clue for SwiftUI runtime to look inside the property wrapper, so as to pick up embedded special wrappers like @State, @ObservedObject and @Environment.
This enables us to build custom property wrappers that provide simple dev experience, while hiding the heavy lifting of bridging feedback loops to SwiftUI world.
Already supported via Store.view(value:event:). e.g. injecting via @EnvironmentBinding a partial store that exposes only state & events related to radar images.
Loop may offer in-built SwiftUI integration on Apple platforms without creating an extra "LoopUI" package.
Loop only needs to provide standard data funnels to connect feedback loops with SwiftUI, and has no involvement in UI concerns except for the two characters in
import SwiftUI
. Everything else is SwiftUI's declarative UI realm (data to virtual DOM, vDOM to native view, etc). That is in contrast to our UIKit sibling ReactiveCocoa, which is a heavy UI-focused library that (1) attempted to solve AppKit/UIKit reactive programming at a micro level (KVO-like property bindings), and (2) wraps parts of Objective-C dynamism into friendly Swift APIs.Since SwiftUI is shipped with the system, no friction is incurred for dependency management on users' end. All these collectively makes it perfect for Loop to offer straightly the said utilities.
Such integration should be excluded from Linux builds.
Concepts
Concepts are built upon the implicit behavior of
DynamicProperty
, which serves as a clue for SwiftUI runtime to look inside the property wrapper, so as to pick up embedded special wrappers like@State
,@ObservedObject
and@Environment
.This enables us to build custom property wrappers that provide simple dev experience, while hiding the heavy lifting of bridging feedback loops to SwiftUI world.
Direct state binding like
@ObservedObject
:Bound view pseudo code
SwiftUI environment injected state bindings
Note: Unlike
@State
and@ObservedObject
, it hasn't been tested whether@EnvironmentObject
would work.Bound view pseudo code
Parent view pseudo code
Partial store
Already supported via
Store.view(value:event:)
. e.g. injecting via@EnvironmentBinding
a partial store that exposes only state & events related to radar images.The text was updated successfully, but these errors were encountered: