clean-architecture
Source code dependencies always point inwards. As you move inwards the level of abstraction increases. The outermost circle is low level concrete detail. As you move inwards the software grows more abstract, and encapsulates higher level policies. The inner most circle is the most general.
Robert C. Martin (Uncle Bob) • Clean Coder Blog
Instead, they forward the result to the AppState or a Binding provided by the View.
The Binding is used when the result of work (the data) is owned locally by one View and does not belong to the central AppState , that is, it doesn’t need to be persisted or shared with other screens of the app.
The Binding is used when the result of work (the data) is owned locally by one View and does not belong to the central AppState , that is, it doesn’t need to be persisted or shared with other screens of the app.
Alexey Naumov • Clean Architecture for SwiftUI
“or a binding provided by the view”
The software in this layer is a set of adapters that convert data from the format most convenient for the use cases and entities, to the format most convenient for some external agency such as the Database or the Web. It is this layer, for example, that will wholly contain the MVC architecture of a GUI. The Presenters, Views, and Controllers all... See more
Robert C. Martin (Uncle Bob) • Clean Coder Blog
this could literally be a convex function
Loosely coupled code is the main goal of Dependency Injection. It enables us to write loosely coupled code.
Dependency Injection (DI) in Swift
They all have the same objective, which is the separation of concerns
Robert C. Martin (Uncle Bob) • Clean Coder Blog
These use cases orchestrate the flow of data to and from the entities, and direct those entities to use their enterprise wide business rules to achieve the goals of the use case.
Robert C. Martin (Uncle Bob) • Clean Coder Blog
use case: what it is exactly the app does, for 42-speaks: giving feedback, conversing with the user about their day and shit, authenticating the user
By the same token, data formats used in an outer circle should not be used by an inner circle, especially if those formats are generate by a framework in an outer circle. We don’t want anything in an outer circle to impact the inner circles.
Robert C. Martin (Uncle Bob) • Clean Coder Blog
Keep in mind that dismissal is largely imperative and fragile. Like manually popping views off the navigation path, it depends on an assumption of how the app is constructed and what views have been pushed and presented.
That’s not much of a problem if you’re coming at it from the application root side during a deep link. But it can be one if you’re... See more
That’s not much of a problem if you’re coming at it from the application root side during a deep link. But it can be one if you’re... See more
SwiftUI Navigation With Dismissible
a dismissible view is a presented view that Navigator knows how to dismiss .