Modified VIPER Architecture
VIPER is an application of Clean Architecture to iOS apps. The word VIPER is a backronym for View, Interactor, Presenter, Entity, and Routing. Clean Architecture divides an app’s logical structure into distinct layers of responsibility. This makes it easier to isolate dependencies (e.g. your database) and to test the interactions at the boundaries between layers. You can read more about it in the link above.
This version is a slightly modified and more simplified version of VIPER architecture. The files generated are as follows
// Defines all protocols used for a module which include Protocols.swift ApiDataManagerProtocol DataManagerProtocol InteractorOutputProtocol InteractorInputProtocol PresenterProtocol ApiManager.swift DataManager.swift Presenter.swift Presenter.xib Interactor.swift ViewModel.swift ViewManager // Responsible for everything associated with a view, including implementing any datasources, delegates etc. ViewManagerDataSource // Generates and updates view model Route.swift
- If you are using [Alcatraz][href2], you should be able to download it from there. Search for SwiftViper Under Templates [href2]: https://github.com/supermarin/Alcatraz
- Using command line
$ git clone https://github.com/freesuraj/SwiftViper $ cd SwiftViper $ sh .install-templates.sh
After you've installed the template in Xcode, restart the Xcode. In your Xcode project, when you create a new file, you can select SwiftViper.
$ cd SwiftViper/NodeJs $ node app.js -d DIRECTORY/TO/SAVE -c MODULENAME