Getting Started with the VIP Clean Architecture Pattern |

In this tutorial, you’ll learn how to utilize the VIP clean architecture pattern to develop apps for Apple platforms while building a SwiftUI for ordering an ice cream.

This is a companion discussion topic for the original entry at

In the project, view->interactor->presenter-> view. There’s a retain cycle. But we cannot declare weak var view: CreateIceCreamDisplayLogic, Since view is not a class. How to solve this?

1 Like

Isn’t there any answer on this question? how can we avoid retain cycle?

Could you help here, please :slight_smile:

Still figuring out how to implement router with passing data in that. Also, it’s not clear how to utilized SwiftUI StateObject/ObservedObject with all async code.

Even in the tutorial you instantiated ObservedObject in the view which is contradicts apple’s best practice. Probably should use StateObject instead.

Honestly, the architecture feels like fighting with SwiftUI, not helping to develop. Maybe it’s only my problem, but right now the simple app with network calls that I’m making with VIP is morphing to something weird between MVVM and VIP.