{"repo":"maukur/SwiftUI-Viper-Architecture","free":true,"listed":false,"github":"https://github.com/maukur/SwiftUI-Viper-Architecture","clone":"git clone https://github.com/maukur/SwiftUI-Viper-Architecture.git","description":"SwiftUI Viper (Without UIKit) Project template + example","language":"Swift","stars":116,"topics":["swift","swiftui","viper","viper-architecture","viper-swift","viper-template","xctemplate"],"license":null,"category":"mobile-apps","readme_excerpt":"Overview SwiftUI Viper Architecture - The development paradigm of clean, testable code and modular iOS applications. This repository contains Xcode templates for quickly creating a project, modules, and services. Viper + Introduction + SwiftUI Viper Architecture Installation Requirements Example project Usage + Create a new Project + Create a new Module + Create a new Service Navigation and Parameter Passing Author License Special Thanks Viper Introduction VIPER (View, Interactor, Presenter, Entity, Router) is an architectural pattern for building applications. In SwiftUI, this pattern isn't as commonly used as in UIKit, but it can still be employed for code organization with a little trickery, by introducing an entity like ViewState. What is ViewState used for and what concept is it based on? ViewState (View State) is similar to @IBOutlet properties and data stored in a viewController, but in the new concept, it utilizes @Published properties and views. Let's clarify this with an analogy: Storyboard and ViewController: - Storyboard is a visual representation of the user interface where you place interface elements such as buttons, text fields, and others. It is responsible for organizing and positioning these elements. - ViewController is an object that manages the interaction between data and the interface. It contains the logic that handles user input, updates the view, and works with data. View and ViewState: - View is the basic building block in the user interface. It's ","default_branch":null,"files":null,"tree":[],"storefront":"/r/maukur","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/maukur/SwiftUI-Viper-Architecture/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}