Swiftpack.co - Maks-Jago/SwiftUI-UDF as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by Maks-Jago.
Maks-Jago/SwiftUI-UDF 1.4.1-alpha.3
UDF (Unidirectional Data Flow) architecture on SwiftUI/Concurrency/Combine
⭐️ 19
🕓 2 weeks ago
iOS macOS
.package(url: "https://github.com/Maks-Jago/SwiftUI-UDF.git", from: "1.4.1-alpha.3")

SwiftUI UDF Logo

Architecture overview

SwiftUI UDF Diagram

The license

The SwiftUI-UDF stays under a dual license (email confirmation required):

  • It can be Free for non-commercial use, public repository or startups at the early stage. That means you have to mention "Maksym Kuznietsov - Founder of urlaunched.com" as the original author and reproduce the LICENSE text inside your app

  • Commercial-use license to use in commercial products. Please bear in mind that some free products remain commercial products.

If you have some questions or want to try and get all benefits of UDF architecture - write to [email protected]

GitHub

link
Stars: 19
Last commit: 3 weeks ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

Release Notes

1.4.0 - Concurrency
20 weeks ago

Swift Concurrency on board! We have been working for a long time on preparing a huge release with many changes, optimizations and upgrades to the SwiftUI-UDF Architecture. And now, UDF architecture has got concurrency support for the Middleware layer!

What was done:

  • Store is getting smarter and smarter and becomes an Actor to guarantee and sync state mutations and accesses;
  • Middleware layer got separation on BaseMiddleware (Combine version) and BaseConcurrencyMiddleware (Swift Concurrency) with separation on Observable/Reducible;
  • All types of middlewares got the Environment to describe dependencies and build them in the buildLiveEnvironment and buildTestEnvironment methods;
  • Container got a new re-rendering system to control which part of the State mutation would cause a re-rendering. The scope of work; func scope(for state: SourceOfTruth<ContainerState>) -> Scope
  • Animations support. Since now we can add animation modifier for Action use withAnimation function; Actions.SomeAction().withAnimation(.linear)
  • Silent action. We have added the option to dispatch an action without logging to the loggers. Use silent function, such action won't be logged to loggers.
  • New logging system. ActionLogger, ActionFilter, ActionDescriptor to be able to dynamically add any loggers (Console, Crashlytics, Files, etc).
  • InitialSetup protocol. If some reducer needs the State for initial setup. func initialSetup(with state: State)
  • XCTestStore is MainActor since now.

And of course 100500 improvements and minor updates. Keep Coding!

Full Changelog: https://github.com/Maks-Jago/SwiftUI-UDF/compare/1.3.x...1.4.x

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics