SwiftUI-UDF

1.4.7

UDF (Unidirectional Data Flow) architecture on SwiftUI/Concurrency/Combine
Maks-Jago/SwiftUI-UDF

What's New

1.4.7 - Bindable

2024-12-12T15:37:20Z

What's Changed

Full Changelog: 1.4.6...1.4.7

New Contributors

More Details

  • Full Documentation: SwiftUI-UDF is now fully documented with code examples, detailed descriptions, and usage guides.
  • BindableReducer/BindableContainer: You can now mark any reducer as @BindableReducer and bind it to a BindableContainer. This allows dynamic creation and removal of reducers based on the container’s lifecycle. Recursive transitions and simultaneous instances of multiple containers are now fully supported. UDF will create as many reducers as there are instances of BindableContainer.
  • Global Router Update: Aligned with iOS 18 changes, the router lifecycle has been updated. The navigationDestination(for routing:) method replaces the older navigationDestination(router:) and should now be placed as high in the view hierarchy as possible.
  • macOS Support: Improved macOS compatibility—no more errors.
  • Delayed Action: Added a new with(delay:) modifier, allowing delays for individual actions or ActionGroups.
  • Hooks: Introduced a Hook entity with HookBuilder, enabling conditional execution of code blocks based on custom triggers. Define hooks via overridden useHook in a container, and initialize them with init or static functions.
  • Subscribe method in Store is now synchronous. The subscribeAsync method is deprecated and will be removed in v1.5.0.
  • Store Optimizations: Improved stability and increased StoreQueue throughput, doubling the number of actions processed concurrently.

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

SwiftUI UDF Logo

 

Architecture overview

SwiftUI UDF Diagram

 

Add-ons

Name Description
GenerambaTemplates Templates for automatic generation of UDF modules with all the stubs, storages, and some features.
UDFWebSocketsClient Implementation of a WebSocket client in UDF style, with ready-made solutions for easy connection and usage without extra effort.
UDFCrashlyticsLogger Custom Logger for logging actioons to Firebase Crashlytics, both for crash reports and regular errors, with predefined actions filtering.
UDFAnalytics Implementation of events logging, scenarios, update user properties, and other analytics settings in UDF style. Currently supported analytics platforms include Amplitude, Firebase, Mixpanel, AppsFlyer, and Facebook.

 

Apps Built on SwiftUI-UDF

Wain
Wain
Cephalgo
Cephalgo
Wishew
Wishew
NanoHabits
NanoHabits
Kanvo
Kanvo
MetaStudio
MetaStudio
FlatPlanet
FlatPlanet
Kopi
Kopi
Flick
Flick
StupidRaisins
StupidRaisins
MamaTalk
MamaTalk
Ecorial
Ecorial
MeditationSchool
MeditationSchool
CNDA Event
CNDA Event
FireFly
FireFly
Chatsumer Business
Chatsumer B
Chatsumer
Chatsumer
Breverie
Breverie
CasualAthletes
CasualAthletes
Celebrity NDA
Celebrity NDA
Zippit
Zippit
SkillApp
SkillApp
Librarius
Librarius
Youmari
Youmari

  P.S. If your app is built using the SwiftUI-UDF architecture, please email me at mx.kuznetsov.dev@gmail.com to have your app added to this list. I would appreciate it.

 

The license

The SwiftUI-UDF stays under the Apache 2.0 license and is free to use.

  • That means you have to mention "Maksym Kuznietsov - Founder of urlaunched.com" as the original author and reproduce the LICENSE text inside your app;
  • Including the full text of license in modified software.

If you have some questions or want to try and get all benefits of UDF architecture - write to mx.kuznetsov.dev@gmail.com

Description

  • Swift Tools 5.9.0
View More Packages from this Author

Dependencies

Last updated: Tue May 20 2025 12:26:58 GMT-0900 (Hawaii-Aleutian Daylight Time)