├── .gitignore ├── .gitmodules ├── Demo ├── ZIKThoroughViperDemo │ ├── ZIKThoroughViperDemo.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ └── contents.xcworkspacedata │ └── ZIKThoroughViperDemo │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── icon-20-ipad.png │ │ │ ├── icon-20@2x-ipad.png │ │ │ ├── icon-20@2x.png │ │ │ ├── icon-20@3x.png │ │ │ ├── icon-29-ipad.png │ │ │ ├── icon-29.png │ │ │ ├── icon-29@2x-ipad.png │ │ │ ├── icon-29@2x.png │ │ │ ├── icon-29@3x.png │ │ │ ├── icon-40.png │ │ │ ├── icon-40@2x.png │ │ │ ├── icon-40@3x.png │ │ │ ├── icon-50.png │ │ │ ├── icon-50@2x.png │ │ │ ├── icon-57.png │ │ │ ├── icon-57@2x.png │ │ │ ├── icon-60@2x.png │ │ │ ├── icon-60@3x.png │ │ │ ├── icon-72.png │ │ │ ├── icon-72@2x.png │ │ │ ├── icon-76.png │ │ │ ├── icon-76@2x.png │ │ │ └── icon-83.5@2x.png │ │ ├── iTunesArtwork.png │ │ └── iTunesArtwork@2x.png │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── EditorModule │ │ ├── EditorViper │ │ │ ├── ZIKTEditorBuilder.h │ │ │ ├── ZIKTEditorBuilder.m │ │ │ ├── ZIKTEditorDelegate.h │ │ │ ├── ZIKTEditorInteractor.h │ │ │ ├── ZIKTEditorInteractor.m │ │ │ ├── ZIKTEditorInteractorDataSource.h │ │ │ ├── ZIKTEditorInteractorEventHandler.h │ │ │ ├── ZIKTEditorInteractorInput.h │ │ │ ├── ZIKTEditorViewController.h │ │ │ ├── ZIKTEditorViewController.m │ │ │ ├── ZIKTEditorViewDataSource.h │ │ │ ├── ZIKTEditorViewEventHandler.h │ │ │ ├── ZIKTEditorViewPresenter.h │ │ │ ├── ZIKTEditorViewPresenter.m │ │ │ ├── ZIKTEditorViewProtocol.h │ │ │ ├── ZIKTEditorWireframe.h │ │ │ ├── ZIKTEditorWireframe.m │ │ │ └── ZIKTEditorWireframeInput.h │ │ └── TextWidgetViper │ │ │ ├── ZIKTTextView.h │ │ │ ├── ZIKTTextView.m │ │ │ ├── ZIKTTextViewBuilder.h │ │ │ ├── ZIKTTextViewBuilder.m │ │ │ ├── ZIKTTextViewDataSource.h │ │ │ ├── ZIKTTextViewWireframe.h │ │ │ ├── ZIKTTextViewWireframe.m │ │ │ ├── ZIKTTextWidgetInteractor.h │ │ │ ├── ZIKTTextWidgetInteractor.m │ │ │ ├── ZIKTTextWidgetInteractorDataSource.h │ │ │ ├── ZIKTTextWidgetInteractorEventHandler.h │ │ │ ├── ZIKTTextWidgetInteractorInput.h │ │ │ ├── ZIKTTextWidgetViewEventHandler.h │ │ │ ├── ZIKTTextWidgetViewPresenter.h │ │ │ ├── ZIKTTextWidgetViewPresenter.m │ │ │ └── ZIKTTextWidgetViewProtocol.h │ │ ├── Info.plist │ │ ├── LoginModule │ │ ├── LoginService │ │ │ ├── ZIKTLoginService.h │ │ │ └── ZIKTLoginService.m │ │ ├── LoginViper │ │ │ ├── ZIKTLoginBuilder.h │ │ │ ├── ZIKTLoginBuilder.m │ │ │ ├── ZIKTLoginInteractor.h │ │ │ ├── ZIKTLoginInteractor.m │ │ │ ├── ZIKTLoginInteractorInput.h │ │ │ ├── ZIKTLoginViewController.h │ │ │ ├── ZIKTLoginViewController.m │ │ │ ├── ZIKTLoginViewDelegate.h │ │ │ ├── ZIKTLoginViewEventHandler.h │ │ │ ├── ZIKTLoginViewPresenter.h │ │ │ ├── ZIKTLoginViewPresenter.m │ │ │ ├── ZIKTLoginViewProtocol.h │ │ │ ├── ZIKTLoginViewWireframe.h │ │ │ ├── ZIKTLoginViewWireframe.m │ │ │ └── ZIKTLoginViewWireframeInput.h │ │ └── UserModel │ │ │ ├── ZIKTUserModel.h │ │ │ └── ZIKTUserModel.m │ │ ├── NoteListModule │ │ └── NoteListViper │ │ │ ├── ZIKTNoteListDataService.h │ │ │ ├── ZIKTNoteListInteractor.h │ │ │ ├── ZIKTNoteListInteractor.m │ │ │ ├── ZIKTNoteListInteractorInput.h │ │ │ ├── ZIKTNoteListModuleBuilder.h │ │ │ ├── ZIKTNoteListModuleBuilder.m │ │ │ ├── ZIKTNoteListRouter.h │ │ │ ├── ZIKTNoteListViewController.h │ │ │ ├── ZIKTNoteListViewController.m │ │ │ ├── ZIKTNoteListViewDataSource.h │ │ │ ├── ZIKTNoteListViewEventHandler.h │ │ │ ├── ZIKTNoteListViewPresenter.h │ │ │ ├── ZIKTNoteListViewPresenter.m │ │ │ ├── ZIKTNoteListViewProtocol.h │ │ │ ├── ZIKTNoteListWireframe.h │ │ │ ├── ZIKTNoteListWireframe.m │ │ │ └── ZIKTNoteListWireframeInput.h │ │ ├── NoteModel │ │ ├── ZIKTNoteModel.h │ │ └── ZIKTNoteModel.m │ │ ├── NoteService │ │ └── NoteDataManager │ │ │ ├── ZIKTNoteDataManager.h │ │ │ └── ZIKTNoteDataManager.m │ │ ├── Router │ │ ├── UIApplication+ZIKTViperRouter.h │ │ ├── UIApplication+ZIKTViperRouter.m │ │ ├── ZIKTRouter+ZIKTEditor.h │ │ ├── ZIKTRouter+ZIKTEditor.m │ │ ├── ZIKTRouter+ZIKTLogin.h │ │ ├── ZIKTRouter+ZIKTLogin.m │ │ ├── ZIKTRouter.h │ │ └── ZIKTRouter.m │ │ ├── Templete-UIView │ │ ├── ___FILEBASENAME___Interactor.h │ │ ├── ___FILEBASENAME___Interactor.m │ │ ├── ___FILEBASENAME___InteractorDataSource.h │ │ ├── ___FILEBASENAME___InteractorEventHandler.h │ │ ├── ___FILEBASENAME___InteractorProtocol.h │ │ ├── ___FILEBASENAME___View.h │ │ ├── ___FILEBASENAME___View.m │ │ ├── ___FILEBASENAME___ViewEventHandler.h │ │ ├── ___FILEBASENAME___ViewPresenter.h │ │ ├── ___FILEBASENAME___ViewPresenter.m │ │ ├── ___FILEBASENAME___ViewProtocol.h │ │ ├── ___FILEBASENAME___ViewRouter.h │ │ └── ___FILEBASENAME___ViewRouter.m │ │ ├── Templete-UIViewController │ │ ├── ___FILEBASENAME___Interactor.h │ │ ├── ___FILEBASENAME___Interactor.m │ │ ├── ___FILEBASENAME___InteractorDataSource.h │ │ ├── ___FILEBASENAME___InteractorEventHandler.h │ │ ├── ___FILEBASENAME___InteractorProtocol.h │ │ ├── ___FILEBASENAME___ViewController.h │ │ ├── ___FILEBASENAME___ViewController.m │ │ ├── ___FILEBASENAME___ViewEventHandler.h │ │ ├── ___FILEBASENAME___ViewPresenter.h │ │ ├── ___FILEBASENAME___ViewPresenter.m │ │ ├── ___FILEBASENAME___ViewProtocol.h │ │ ├── ___FILEBASENAME___ViewRouter.h │ │ └── ___FILEBASENAME___ViewRouter.m │ │ └── main.m └── ZIKViperDemo │ ├── ZIKViperDemo.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── ZIKViperDemo │ ├── Adapters │ └── EditorAdapter │ │ ├── ZIKEditorAdapter.h │ │ └── ZIKEditorAdapter.m │ ├── Application │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── icon-20-ipad.png │ │ │ ├── icon-20@2x-ipad.png │ │ │ ├── icon-20@2x.png │ │ │ ├── icon-20@3x.png │ │ │ ├── icon-29-ipad.png │ │ │ ├── icon-29.png │ │ │ ├── icon-29@2x-ipad.png │ │ │ ├── icon-29@2x.png │ │ │ ├── icon-29@3x.png │ │ │ ├── icon-40.png │ │ │ ├── icon-40@2x.png │ │ │ ├── icon-40@3x.png │ │ │ ├── icon-50.png │ │ │ ├── icon-50@2x.png │ │ │ ├── icon-57.png │ │ │ ├── icon-57@2x.png │ │ │ ├── icon-60@2x.png │ │ │ ├── icon-60@3x.png │ │ │ ├── icon-72.png │ │ │ ├── icon-72@2x.png │ │ │ ├── icon-76.png │ │ │ ├── icon-76@2x.png │ │ │ └── icon-83.5@2x.png │ │ ├── iTunesArtwork.png │ │ └── iTunesArtwork@2x.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ └── Info.plist │ ├── EditorModule │ ├── EditorViper │ │ ├── ZIKEditorConfigProtocol.h │ │ ├── ZIKEditorDelegate.h │ │ ├── ZIKEditorInteractor.h │ │ ├── ZIKEditorInteractor.m │ │ ├── ZIKEditorInteractorDataSource.h │ │ ├── ZIKEditorInteractorEventHandler.h │ │ ├── ZIKEditorInteractorInput.h │ │ ├── ZIKEditorViewController.h │ │ ├── ZIKEditorViewController.m │ │ ├── ZIKEditorViewDataSource.h │ │ ├── ZIKEditorViewEventHandler.h │ │ ├── ZIKEditorViewPresenter.h │ │ ├── ZIKEditorViewPresenter.m │ │ ├── ZIKEditorViewProtocol.h │ │ ├── ZIKEditorViewRouter.h │ │ └── ZIKEditorViewRouter.m │ └── TextWidgetViper │ │ ├── ZIKTextView.h │ │ ├── ZIKTextView.m │ │ ├── ZIKTextViewDataSource.h │ │ ├── ZIKTextWidgetInteractor.h │ │ ├── ZIKTextWidgetInteractor.m │ │ ├── ZIKTextWidgetInteractorDataSource.h │ │ ├── ZIKTextWidgetInteractorEventHandler.h │ │ ├── ZIKTextWidgetInteractorInput.h │ │ ├── ZIKTextWidgetViewEventHandler.h │ │ ├── ZIKTextWidgetViewPresenter.h │ │ ├── ZIKTextWidgetViewPresenter.m │ │ ├── ZIKTextWidgetViewProtocol.h │ │ ├── ZIKTextWidgetViewRouter.h │ │ └── ZIKTextWidgetViewRouter.m │ ├── LoginModule │ ├── LoginService │ │ ├── ZIKLoginService.h │ │ ├── ZIKLoginService.m │ │ ├── ZIKLoginServiceInput.h │ │ ├── ZIKLoginServiceRouter.h │ │ └── ZIKLoginServiceRouter.m │ ├── LoginViper │ │ ├── ZIKLoginInteractor.h │ │ ├── ZIKLoginInteractor.m │ │ ├── ZIKLoginInteractorInput.h │ │ ├── ZIKLoginViewController.h │ │ ├── ZIKLoginViewController.m │ │ ├── ZIKLoginViewDelegate.h │ │ ├── ZIKLoginViewEventHandler.h │ │ ├── ZIKLoginViewPresenter.h │ │ ├── ZIKLoginViewPresenter.m │ │ ├── ZIKLoginViewProtocol.h │ │ ├── ZIKLoginViewRouter.h │ │ └── ZIKLoginViewRouter.m │ └── UserModel │ │ ├── ZIKUserModel.h │ │ └── ZIKUserModel.m │ ├── NoteListModule │ └── NoteListViper │ │ ├── NoteListRequiredNoteEditorDelegate.h │ │ ├── NoteListRequiredNoteEditorProtocol.h │ │ ├── ZIKNoteListInteractor.h │ │ ├── ZIKNoteListInteractor.m │ │ ├── ZIKNoteListInteractorInput.h │ │ ├── ZIKNoteListViewController.h │ │ ├── ZIKNoteListViewController.m │ │ ├── ZIKNoteListViewDataSource.h │ │ ├── ZIKNoteListViewEventHandler.h │ │ ├── ZIKNoteListViewPresenter.h │ │ ├── ZIKNoteListViewPresenter.m │ │ ├── ZIKNoteListViewProtocol.h │ │ ├── ZIKNoteListViewRouter.h │ │ └── ZIKNoteListViewRouter.m │ ├── NoteModel │ ├── ZIKNoteModel.h │ └── ZIKNoteModel.m │ ├── NoteService │ └── NoteDataManager │ │ ├── ZIKNoteDataManager.h │ │ └── ZIKNoteDataManager.m │ └── main.m ├── Docs ├── CleanArchitecture.jpg ├── final_viper.png ├── thorough_viper.png ├── viper.png └── viper_mutualmobile.png ├── LICENSE ├── README-CN.md ├── README.md ├── Templates ├── ZIKTViperModule.xctemplate │ ├── TemplateIcon.png │ ├── TemplateIcon@2x.png │ ├── TemplateInfo.plist │ ├── UIView │ │ ├── ___FILEBASENAME___Builder.h │ │ ├── ___FILEBASENAME___Builder.m │ │ ├── ___FILEBASENAME___Interactor.h │ │ ├── ___FILEBASENAME___Interactor.m │ │ ├── ___FILEBASENAME___InteractorDataSource.h │ │ ├── ___FILEBASENAME___InteractorEventHandler.h │ │ ├── ___FILEBASENAME___InteractorInput.h │ │ ├── ___FILEBASENAME___RouterInput.h │ │ ├── ___FILEBASENAME___View.h │ │ ├── ___FILEBASENAME___View.m │ │ ├── ___FILEBASENAME___ViewDataSource.h │ │ ├── ___FILEBASENAME___ViewEventHandler.h │ │ ├── ___FILEBASENAME___ViewInput.h │ │ ├── ___FILEBASENAME___ViewPresenter.h │ │ ├── ___FILEBASENAME___ViewPresenter.m │ │ ├── ___FILEBASENAME___Wireframe.h │ │ ├── ___FILEBASENAME___Wireframe.m │ │ └── ___FILEBASENAME___WireframeInput.h │ ├── UIViewController │ │ ├── ___FILEBASENAME___Builder.h │ │ ├── ___FILEBASENAME___Builder.m │ │ ├── ___FILEBASENAME___Interactor.h │ │ ├── ___FILEBASENAME___Interactor.m │ │ ├── ___FILEBASENAME___InteractorDataSource.h │ │ ├── ___FILEBASENAME___InteractorEventHandler.h │ │ ├── ___FILEBASENAME___InteractorInput.h │ │ ├── ___FILEBASENAME___RouterInput.h │ │ ├── ___FILEBASENAME___ViewController.h │ │ ├── ___FILEBASENAME___ViewController.m │ │ ├── ___FILEBASENAME___ViewDataSource.h │ │ ├── ___FILEBASENAME___ViewEventHandler.h │ │ ├── ___FILEBASENAME___ViewInput.h │ │ ├── ___FILEBASENAME___ViewPresenter.h │ │ ├── ___FILEBASENAME___ViewPresenter.m │ │ ├── ___FILEBASENAME___Wireframe.h │ │ ├── ___FILEBASENAME___Wireframe.m │ │ └── ___FILEBASENAME___WireframeInput.h │ ├── UIViewControllerseparate │ │ ├── Builder │ │ │ ├── ___FILEBASENAME___Builder.h │ │ │ └── ___FILEBASENAME___Builder.m │ │ ├── Interactor │ │ │ ├── ___FILEBASENAME___Interactor.h │ │ │ ├── ___FILEBASENAME___Interactor.m │ │ │ ├── ___FILEBASENAME___InteractorDataSource.h │ │ │ ├── ___FILEBASENAME___InteractorEventHandler.h │ │ │ └── ___FILEBASENAME___InteractorInput.h │ │ ├── Presenter │ │ │ ├── ___FILEBASENAME___ViewPresenter.h │ │ │ └── ___FILEBASENAME___ViewPresenter.m │ │ ├── View │ │ │ ├── ___FILEBASENAME___ViewController.h │ │ │ ├── ___FILEBASENAME___ViewController.m │ │ │ ├── ___FILEBASENAME___ViewDataSource.h │ │ │ ├── ___FILEBASENAME___ViewEventHandler.h │ │ │ └── ___FILEBASENAME___ViewInput.h │ │ └── Wireframe │ │ │ ├── ___FILEBASENAME___RouterInput.h │ │ │ ├── ___FILEBASENAME___Wireframe.h │ │ │ ├── ___FILEBASENAME___Wireframe.m │ │ │ └── ___FILEBASENAME___WireframeInput.h │ └── UIViewseparate │ │ ├── Builder │ │ ├── ___FILEBASENAME___Builder.h │ │ └── ___FILEBASENAME___Builder.m │ │ ├── Interactor │ │ ├── ___FILEBASENAME___Interactor.h │ │ ├── ___FILEBASENAME___Interactor.m │ │ ├── ___FILEBASENAME___InteractorDataSource.h │ │ ├── ___FILEBASENAME___InteractorEventHandler.h │ │ └── ___FILEBASENAME___InteractorInput.h │ │ ├── Presenter │ │ ├── ___FILEBASENAME___ViewPresenter.h │ │ └── ___FILEBASENAME___ViewPresenter.m │ │ ├── View │ │ ├── ___FILEBASENAME___View.h │ │ ├── ___FILEBASENAME___View.m │ │ ├── ___FILEBASENAME___ViewDataSource.h │ │ ├── ___FILEBASENAME___ViewEventHandler.h │ │ └── ___FILEBASENAME___ViewInput.h │ │ └── Wireframe │ │ ├── ___FILEBASENAME___RouterInput.h │ │ ├── ___FILEBASENAME___Wireframe.h │ │ ├── ___FILEBASENAME___Wireframe.m │ │ └── ___FILEBASENAME___WireframeInput.h └── ZIKViperModule.xctemplate │ ├── TemplateIcon.png │ ├── TemplateIcon@2x.png │ ├── TemplateInfo.plist │ ├── UIView │ ├── ___FILEBASENAME___Interactor.h │ ├── ___FILEBASENAME___Interactor.m │ ├── ___FILEBASENAME___InteractorDataSource.h │ ├── ___FILEBASENAME___InteractorEventHandler.h │ ├── ___FILEBASENAME___InteractorInput.h │ ├── ___FILEBASENAME___View.h │ ├── ___FILEBASENAME___View.m │ ├── ___FILEBASENAME___ViewDataSource.h │ ├── ___FILEBASENAME___ViewEventHandler.h │ ├── ___FILEBASENAME___ViewInput.h │ ├── ___FILEBASENAME___ViewPresenter.h │ ├── ___FILEBASENAME___ViewPresenter.m │ ├── ___FILEBASENAME___ViewRouter.h │ └── ___FILEBASENAME___ViewRouter.m │ ├── UIViewController │ ├── ___FILEBASENAME___Interactor.h │ ├── ___FILEBASENAME___Interactor.m │ ├── ___FILEBASENAME___InteractorDataSource.h │ ├── ___FILEBASENAME___InteractorEventHandler.h │ ├── ___FILEBASENAME___InteractorInput.h │ ├── ___FILEBASENAME___ViewController.h │ ├── ___FILEBASENAME___ViewController.m │ ├── ___FILEBASENAME___ViewDataSource.h │ ├── ___FILEBASENAME___ViewEventHandler.h │ ├── ___FILEBASENAME___ViewInput.h │ ├── ___FILEBASENAME___ViewPresenter.h │ ├── ___FILEBASENAME___ViewPresenter.m │ ├── ___FILEBASENAME___ViewRouter.h │ └── ___FILEBASENAME___ViewRouter.m │ ├── UIViewControllerseparate │ ├── Interactor │ │ ├── ___FILEBASENAME___Interactor.h │ │ ├── ___FILEBASENAME___Interactor.m │ │ ├── ___FILEBASENAME___InteractorDataSource.h │ │ ├── ___FILEBASENAME___InteractorEventHandler.h │ │ └── ___FILEBASENAME___InteractorInput.h │ ├── Presenter │ │ ├── ___FILEBASENAME___ViewPresenter.h │ │ └── ___FILEBASENAME___ViewPresenter.m │ ├── Router │ │ ├── ___FILEBASENAME___ViewRouter.h │ │ └── ___FILEBASENAME___ViewRouter.m │ └── View │ │ ├── ___FILEBASENAME___ViewController.h │ │ ├── ___FILEBASENAME___ViewController.m │ │ ├── ___FILEBASENAME___ViewDataSource.h │ │ ├── ___FILEBASENAME___ViewEventHandler.h │ │ └── ___FILEBASENAME___ViewInput.h │ └── UIViewseparate │ ├── Interactor │ ├── ___FILEBASENAME___Interactor.h │ ├── ___FILEBASENAME___Interactor.m │ ├── ___FILEBASENAME___InteractorDataSource.h │ ├── ___FILEBASENAME___InteractorEventHandler.h │ └── ___FILEBASENAME___InteractorInput.h │ ├── Presenter │ ├── ___FILEBASENAME___ViewPresenter.h │ └── ___FILEBASENAME___ViewPresenter.m │ ├── Router │ ├── ___FILEBASENAME___ViewRouter.h │ └── ___FILEBASENAME___ViewRouter.m │ └── View │ ├── ___FILEBASENAME___View.h │ ├── ___FILEBASENAME___View.m │ ├── ___FILEBASENAME___ViewDataSource.h │ ├── ___FILEBASENAME___ViewEventHandler.h │ └── ___FILEBASENAME___ViewInput.h ├── ZIKTViper.podspec ├── ZIKTViper.xcodeproj ├── project.pbxproj └── project.xcworkspace │ └── contents.xcworkspacedata ├── ZIKTViper ├── Info.plist ├── NSObject+ZIKTViperAssembly.h ├── NSObject+ZIKTViperAssembly.m ├── UIViewController+ZIKTViperRouter.h ├── UIViewController+ZIKTViperRouter.m ├── ZIKTViper.h ├── ZIKTViperInteractor.h ├── ZIKTViperInteractorPrivate.h ├── ZIKTViperPresenter.h ├── ZIKTViperPresenterPrivate.h ├── ZIKTViperRouter.h ├── ZIKTViperView.h ├── ZIKTViperViewEventHandler.h ├── ZIKTViperViewPrivate.h ├── ZIKTViperWireframe.h └── ZIKTViperWireframePrivate.h ├── ZIKViper.podspec ├── ZIKViper.xcodeproj ├── project.pbxproj └── project.xcworkspace │ └── contents.xcworkspacedata └── ZIKViper ├── Info.plist ├── ZIKViewRouter+ZIKViper.h ├── ZIKViewRouter+ZIKViper.m ├── ZIKViper.h ├── ZIKViperInteractor.h ├── ZIKViperInteractorPrivate.h ├── ZIKViperPresenter.h ├── ZIKViperPresenterPrivate.h ├── ZIKViperRouter.h ├── ZIKViperView.h ├── ZIKViperViewEventHandler.h └── ZIKViperViewPrivate.h /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "ZIKRouter"] 2 | path = ZIKRouter 3 | url = https://github.com/Zuikyo/ZIKRouter.git 4 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/15. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | @end 16 | 17 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-20-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-20-ipad.png -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad.png -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-29-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-29-ipad.png -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-29.png -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-29@2x-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-29@2x-ipad.png -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-40.png -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-50.png -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-50@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-50@2x.png -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-57.png -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-57@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-57@2x.png -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-72.png -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-72@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-72@2x.png -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-76.png -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/iTunesArtwork.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/iTunesArtwork.png -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/iTunesArtwork@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Assets.xcassets/iTunesArtwork@2x.png -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/EditorModule/EditorViper/ZIKTEditorBuilder.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTEditorBuilder.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/8/2. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol ZIKTEditorDelegate,ZIKTViperRouter; 12 | @interface ZIKTEditorBuilder : NSObject 13 | + (UIViewController *)viewForCreatingNoteWithDelegate:(id)delegate router:(id)router; 14 | + (UIViewController *)viewForEditingNoteWithUUID:(NSString *)uuid title:(NSString *)title content:(NSString *)content delegate:(id)delegate router:(id)router; 15 | @end 16 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/EditorModule/EditorViper/ZIKTEditorDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTEditorDelegate.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/16. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @class ZIKTNoteModel; 13 | @protocol ZIKTEditorDelegate 14 | - (void)editor:(UIViewController *)editor didFinishEditNote:(ZIKTNoteModel *)note; 15 | @end 16 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/EditorModule/EditorViper/ZIKTEditorInteractor.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTEditorInteractor.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/17. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | #import 9 | @import ZIKTViper.ZIKTViperInteractor; 10 | #import "ZIKTEditorInteractorInput.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol ZIKTEditorInteractorDataSource; 15 | @protocol ZIKTEditorInteractorEventHandler; 16 | @interface ZIKTEditorInteractor : NSObject 17 | @property (nonatomic, weak) id dataSource; 18 | @property (nonatomic, weak) id eventHandler; 19 | 20 | - (instancetype)initWithEditingNote:(nullable ZIKTNoteModel *)note; 21 | 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/EditorModule/EditorViper/ZIKTEditorInteractorDataSource.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTEditorInteractorDataSource.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/17. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol ZIKTEditorInteractorDataSource 12 | - (nullable NSString *)currentEditingNoteTitle; 13 | - (nullable NSString *)currentEditingNoteContent; 14 | @end 15 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/EditorModule/EditorViper/ZIKTEditorInteractorEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTEditorInteractorEventHandler.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/17. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol ZIKTEditorInteractorEventHandler 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/EditorModule/EditorViper/ZIKTEditorInteractorInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTEditorInteractorInput.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/17. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @class ZIKTNoteModel; 14 | @protocol ZIKTEditorInteractorInput 15 | - (nullable ZIKTNoteModel *)currentEditingNote; 16 | - (void)storeCurrentEditingNote; 17 | 18 | - (nullable NSString *)currentEditingNoteTitle; 19 | - (nullable NSString *)currentEditingNoteContent; 20 | @end 21 | 22 | NS_ASSUME_NONNULL_END 23 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/EditorModule/EditorViper/ZIKTEditorViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTEditorViewController 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/16. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | @import ZIKTViper.ZIKTViperView; 11 | #import "ZIKTEditorViewProtocol.h" 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @protocol ZIKTEditorDelegate; 16 | @interface ZIKTEditorViewController : UIViewController 17 | @property (nonatomic, weak) id delegate; 18 | @property (nonatomic, assign) ZIKTEditorMode editMode; 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/EditorModule/EditorViper/ZIKTEditorViewDataSource.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTEditorViewDataSource.h 3 | // ZIKthoroughViperDemo 4 | // 5 | // Created by zuik on 2017/8/3. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol ZIKTEditorViewDataSource 12 | - (NSString *)prefixStringForTextView; 13 | @end 14 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/EditorModule/EditorViper/ZIKTEditorViewEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTEditorViewEventHandler.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/16. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | @import ZIKTViper.ZIKTViperViewEventHandler; 11 | #import "ZIKTTextViewDataSource.h" 12 | 13 | @protocol ZIKTViperRouter; 14 | @protocol ZIKTEditorViewEventHandler 15 | - (void)didTouchNavigationBarDoneButton; 16 | - (id)router; 17 | @end 18 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/EditorModule/EditorViper/ZIKTEditorViewPresenter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTEditorViewPresenter 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/16. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | #import 9 | @import ZIKTViper.ZIKTViperPresenter; 10 | #import "ZIKTEditorViewEventHandler.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface ZIKTEditorViewPresenter : NSObject 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/EditorModule/EditorViper/ZIKTEditorViewProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTEditorViewProtocol.h 3 | // testTemplate 4 | // 5 | // Created by zuik on 2017/4/28. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | typedef NS_ENUM(NSInteger,ZIKTEditorMode) { 13 | ZIKTEditorModeCreate, 14 | ZIKTEditorModeModify 15 | }; 16 | 17 | @protocol ZIKTEditorDelegate; 18 | @protocol ZIKTEditorViewProtocol 19 | @property (nonatomic, weak) id delegate; 20 | @property (nonatomic, assign) ZIKTEditorMode editMode; 21 | - (nullable NSString *)titleString; 22 | - (nullable NSString *)contentString; 23 | 24 | - (void)updateTitleString:(NSString *)title; 25 | - (void)updateContentString:(NSString *)content; 26 | @end 27 | 28 | NS_ASSUME_NONNULL_END 29 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/EditorModule/EditorViper/ZIKTEditorWireframe.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTEditorWireframe.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/24. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | @import ZIKTViper.ZIKTViperWireframe; 11 | #import "ZIKTEditorWireframeInput.h" 12 | 13 | @interface ZIKTEditorWireframe : NSObject 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/EditorModule/EditorViper/ZIKTEditorWireframe.m: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTEditorWireframe.m 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/24. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import "ZIKTEditorWireframe.h" 10 | @import ZIKTViper.ZIKTViperWireframePrivate; 11 | @import ZIKTViper.ZIKTViperView; 12 | 13 | @interface ZIKTEditorWireframe () 14 | @property (nonatomic, weak) id view; 15 | @property (nonatomic, strong) id router; 16 | @end 17 | 18 | @implementation ZIKTEditorWireframe 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/EditorModule/EditorViper/ZIKTEditorWireframeInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTEditorWireframeInput.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/24. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol ZIKTViperRouter; 12 | @protocol ZIKTEditorWireframeInput 13 | - (id)router; 14 | @end 15 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/EditorModule/TextWidgetViper/ZIKTTextView.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTTextView.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/17. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | @import ZIKTViper.ZIKTViperView; 11 | #import "ZIKTTextWidgetViewProtocol.h" 12 | 13 | @protocol ZIKTTextViewDataSource; 14 | @interface ZIKTTextView : UITextView 15 | @property (nonatomic, weak) id dataSource; 16 | @property (nonatomic, strong) UIColor *colorForCopyright; 17 | 18 | - (void)setPrefixText:(NSString *)prefix; 19 | @end 20 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/EditorModule/TextWidgetViper/ZIKTTextViewBuilder.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTTextViewBuilder.h 3 | // ZIKthoroughViperDemo 4 | // 5 | // Created by zuik on 2017/8/3. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol ZIKTTextViewDataSource,ZIKTViperViewPrivate,ZIKTViperRouter; 12 | @interface ZIKTTextViewBuilder : NSObject 13 | 14 | + (UIView *)viewWithPrefixText:(NSString *)prefix colorForCopyright:(UIColor *)color dataSource:(id)dataSource router:(id)router; 15 | + (void)buildView:(id)view router:(id)router; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/EditorModule/TextWidgetViper/ZIKTTextViewDataSource.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTTextViewDataSource.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/18. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class ZIKTTextView; 12 | @protocol ZIKTTextViewDataSource 13 | - (NSString *)prefixStringForTextView:(ZIKTTextView *)textView; 14 | @end 15 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/EditorModule/TextWidgetViper/ZIKTTextViewWireframe.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTTextViewWireframe.h 3 | // ZIKthoroughViperDemo 4 | // 5 | // Created by zuik on 2017/8/3. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | @import ZIKTViper.ZIKTViperWireframe; 11 | 12 | @interface ZIKTTextViewWireframe : NSObject 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/EditorModule/TextWidgetViper/ZIKTTextViewWireframe.m: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTTextViewWireframe.m 3 | // ZIKthoroughViperDemo 4 | // 5 | // Created by zuik on 2017/8/3. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import "ZIKTTextViewWireframe.h" 10 | @import ZIKTViper.ZIKTViperWireframePrivate; 11 | @import ZIKTViper.ZIKTViperView; 12 | 13 | @interface ZIKTTextViewWireframe () 14 | @property (nonatomic, weak) id view; 15 | @property (nonatomic, strong) id router; 16 | @end 17 | 18 | @implementation ZIKTTextViewWireframe 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/EditorModule/TextWidgetViper/ZIKTTextWidgetInteractor.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTTextWidgetInteractor.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/17. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | #import 9 | @import ZIKTViper.ZIKTViperInteractor; 10 | #import "ZIKTTextWidgetInteractorInput.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol ZIKTTextWidgetInteractorDataSource; 15 | @protocol ZIKTTextWidgetInteractorEventHandler; 16 | @interface ZIKTTextWidgetInteractor : NSObject 17 | @property (nonatomic, weak) id dataSource; 18 | @property (nonatomic, weak) id eventHandler; 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/EditorModule/TextWidgetViper/ZIKTTextWidgetInteractor.m: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTTextWidgetInteractor.m 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/17. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import "ZIKTTextWidgetInteractor.h" 10 | @import ZIKTViper.ZIKTViperInteractorPrivate; 11 | #import "ZIKTTextWidgetInteractorDataSource.h" 12 | #import "ZIKTTextWidgetInteractorEventHandler.h" 13 | 14 | @interface ZIKTTextWidgetInteractor () 15 | @property (nonatomic, copy) NSString *loginedAccount; 16 | @end 17 | 18 | @implementation ZIKTTextWidgetInteractor 19 | 20 | - (NSString *)copyrightDescription { 21 | return @"© This is ZIKTTextView."; 22 | } 23 | 24 | - (BOOL)needValidateAccount { 25 | return self.loginedAccount == nil; 26 | } 27 | 28 | - (void)didLoginedWithAccount:(NSString *)account { 29 | self.loginedAccount = account; 30 | } 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/EditorModule/TextWidgetViper/ZIKTTextWidgetInteractorDataSource.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTTextWidgetInteractorDataSource.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/17. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol ZIKTTextWidgetInteractorDataSource 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/EditorModule/TextWidgetViper/ZIKTTextWidgetInteractorEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTTextWidgetInteractorEventHandler.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/17. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol ZIKTTextWidgetInteractorEventHandler 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/EditorModule/TextWidgetViper/ZIKTTextWidgetInteractorInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTTextWidgetInteractorInput.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/17. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol ZIKTTextWidgetInteractorInput 12 | - (NSString *)copyrightDescription; 13 | - (BOOL)needValidateAccount; 14 | - (void)didLoginedWithAccount:(NSString *)account; 15 | @end 16 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/EditorModule/TextWidgetViper/ZIKTTextWidgetViewEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTTextWidgetViewEventHandler.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/17. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | @import ZIKTViper.ZIKTViperViewEventHandler; 11 | 12 | @protocol ZIKTTextWidgetViewEventHandler 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/EditorModule/TextWidgetViper/ZIKTTextWidgetViewPresenter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTTextWidgetViewPresenter.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/17. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | #import 9 | @import ZIKTViper.ZIKTViperPresenter; 10 | #import "ZIKTTextWidgetViewEventHandler.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface ZIKTTextWidgetViewPresenter : NSObject 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/EditorModule/TextWidgetViper/ZIKTTextWidgetViewProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTTextWidgetViewProtocol.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/17. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | #import 9 | #import "ZIKTTextViewDataSource.h" 10 | 11 | @protocol ZIKTTextWidgetViewProtocol 12 | @property (nonatomic, weak) id dataSource; 13 | @property (nonatomic, strong) UIColor *colorForCopyright; 14 | - (void)setPrefixText:(NSString *)prefix; 15 | @end 16 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/LoginModule/LoginService/ZIKTLoginService.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTLoginService.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/15. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @class ZIKTUserModel; 14 | @interface ZIKTLoginService : NSObject 15 | + (instancetype)sharedInstance; 16 | - (nullable ZIKTUserModel *)loginedUser; 17 | - (void)loginWithAccount:(NSString *)account 18 | password:(NSString *)password 19 | success:(void(^_Nullable)(void))successHandler 20 | error:(void(^_Nullable)(void))errorHandler; 21 | @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/LoginModule/LoginViper/ZIKTLoginBuilder.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTLoginBuilder.h 3 | // ZIKthoroughViperDemo 4 | // 5 | // Created by zuik on 2017/8/3. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol ZIKTLoginViewDelegate,ZIKTViperRouter; 12 | @interface ZIKTLoginBuilder : NSObject 13 | + (UIViewController *)viewWithMessage:(NSString *)message delegate:(id)delegate router:(id)router; 14 | @end 15 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/LoginModule/LoginViper/ZIKTLoginInteractor.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTLoginInteractor.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/15. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | @import ZIKTViper.ZIKTViperInteractor; 11 | #import "ZIKTLoginInteractorInput.h" 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface ZIKTLoginInteractor : NSObject 16 | @property (nonatomic, weak) id dataSource; 17 | @property (nonatomic, weak) id eventHandler; 18 | - (void)loginWithAccount:(NSString *)account 19 | password:(NSString *)password 20 | success:(void(^_Nullable)(void))successHandler 21 | error:(void(^_Nullable)(void))errorHandler; 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/LoginModule/LoginViper/ZIKTLoginInteractor.m: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTLoginInteractor.m 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/15. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import "ZIKTLoginInteractor.h" 10 | @import ZIKTViper.ZIKTViperInteractorPrivate; 11 | #import "ZIKTLoginService.h" 12 | 13 | @interface ZIKTLoginInteractor () 14 | 15 | @end 16 | 17 | @implementation ZIKTLoginInteractor 18 | 19 | - (void)loginWithAccount:(NSString *)account 20 | password:(NSString *)password 21 | success:(void(^_Nullable)(void))successHandler 22 | error:(void(^_Nullable)(void))errorHandler { 23 | [[ZIKTLoginService sharedInstance] loginWithAccount:account password:password success:successHandler error:errorHandler]; 24 | } 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/LoginModule/LoginViper/ZIKTLoginInteractorInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTLoginInteractorInput.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/15. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ZIKTLoginInteractorInput 14 | - (void)loginWithAccount:(NSString *)account 15 | password:(NSString *)password 16 | success:(void(^_Nullable)(void))successHandler 17 | error:(void(^_Nullable)(void))errorHandler; 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/LoginModule/LoginViper/ZIKTLoginViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTLoginViewController.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/15. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | @import ZIKTViper.ZIKTViperView; 11 | #import "ZIKTLoginViewDelegate.h" 12 | #import "ZIKTLoginViewProtocol.h" 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | @interface ZIKTLoginViewController : UIViewController 17 | @property (nonatomic, weak) id delegate; 18 | @property (nonatomic, copy, nullable) NSString *message; 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/LoginModule/LoginViper/ZIKTLoginViewDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTLoginViewDelegate.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/15. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol ZIKTLoginViewDelegate 12 | @optional 13 | - (void)loginViewController:(UIViewController *)loginViewController didLoginWithAccount:(NSString *)account; 14 | @end 15 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/LoginModule/LoginViper/ZIKTLoginViewEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTLoginViewEventHandler.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/15. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | @import ZIKTViper.ZIKTViperViewEventHandler; 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol ZIKTLoginViewEventHandler 15 | - (void)didTouchLoginButton; 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/LoginModule/LoginViper/ZIKTLoginViewPresenter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTLoginViewPresenter.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/15. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | @import ZIKTViper.ZIKTViperPresenter; 11 | #import "ZIKTLoginViewEventHandler.h" 12 | 13 | @interface ZIKTLoginViewPresenter : NSObject 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/LoginModule/LoginViper/ZIKTLoginViewProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTLoginViewProtocol.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/15. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "ZIKTLoginViewDelegate.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | #define _ZIKTLoginViewProtocol_ (Protocol *)@protocol(ZIKTLoginViewProtocol) 15 | @protocol ZIKTLoginViewProtocol 16 | @property (nonatomic, weak) id delegate; 17 | @property (nonatomic, copy, nullable) NSString *message; 18 | - (nullable NSString *)account; 19 | - (nullable NSString *)password; 20 | @end 21 | 22 | NS_ASSUME_NONNULL_END 23 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/LoginModule/LoginViper/ZIKTLoginViewWireframe.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTLoginViewWireframe.h 3 | // ZIKthoroughViperDemo 4 | // 5 | // Created by zuik on 2017/8/3. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | @import ZIKTViper.ZIKTViperWireframe; 11 | 12 | @interface ZIKTLoginViewWireframe : NSObject 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/LoginModule/LoginViper/ZIKTLoginViewWireframe.m: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTLoginViewWireframe.m 3 | // ZIKthoroughViperDemo 4 | // 5 | // Created by zuik on 2017/8/3. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import "ZIKTLoginViewWireframe.h" 10 | @import ZIKTViper.ZIKTViperWireframePrivate; 11 | @import ZIKTViper.ZIKTViperView; 12 | 13 | @interface ZIKTLoginViewWireframe () 14 | @property (nonatomic, weak) id view; 15 | @property (nonatomic, strong) id router; 16 | @end 17 | 18 | @implementation ZIKTLoginViewWireframe 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/LoginModule/LoginViper/ZIKTLoginViewWireframeInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTLoginViewWireframeInput.h 3 | // ZIKthoroughViperDemo 4 | // 5 | // Created by zuik on 2017/8/3. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol ZIKTLoginViewWireframeInput 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/LoginModule/UserModel/ZIKTUserModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTUserModel.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/15. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ZIKTUserModel : NSObject 12 | @property (nonatomic, readonly, copy) NSString *account; 13 | @property (nonatomic, readonly, copy) NSString *password; 14 | - (instancetype)initWithAccount:(NSString *)account password:(NSString *)password NS_DESIGNATED_INITIALIZER; 15 | - (instancetype)init NS_UNAVAILABLE; 16 | @end 17 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/LoginModule/UserModel/ZIKTUserModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTUserModel.m 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/15. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import "ZIKTUserModel.h" 10 | 11 | @interface ZIKTUserModel () 12 | @property (nonatomic, copy) NSString *account; 13 | @property (nonatomic, copy) NSString *password; 14 | @end 15 | 16 | @implementation ZIKTUserModel 17 | - (instancetype)initWithAccount:(NSString *)account password:(NSString *)password { 18 | if (self = [super init]) { 19 | _account = account; 20 | _password = password; 21 | } 22 | return self; 23 | } 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/NoteListModule/NoteListViper/ZIKTNoteListDataService.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTNoteListDataService.h 3 | // ZIKThoroughViperDemo 4 | // 5 | // Created by zuik on 2017/8/4. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class ZIKTNoteModel; 12 | @protocol ZIKTNoteListDataService 13 | @property (nonatomic, readonly, strong) NSArray *noteList; 14 | - (void)fetchAllNotesWithCompletion:(void(^)(NSArray *notes))completion; 15 | - (void)storeNote:(ZIKTNoteModel *)note; 16 | - (void)deleteNote:(ZIKTNoteModel *)noteToDelete; 17 | @end 18 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/NoteListModule/NoteListViper/ZIKTNoteListInteractor.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTNoteListInteractor 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/16. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | #import 9 | @import ZIKTViper.ZIKTViperInteractor; 10 | #import "ZIKTNoteListInteractorInput.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @class ZIKTNoteModel; 15 | @protocol ZIKTNoteListDataService; 16 | @interface ZIKTNoteListInteractor : NSObject 17 | @property (nonatomic, weak) id dataSource; 18 | @property (nonatomic, weak) id eventHandler; 19 | - (void)loadAllNotes; 20 | - (instancetype)initWithNoteListDataService:(id)service NS_DESIGNATED_INITIALIZER; 21 | - (instancetype)init NS_UNAVAILABLE; 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/NoteListModule/NoteListViper/ZIKTNoteListInteractorInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTNoteListInteractorInput.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/16. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class ZIKTNoteModel; 12 | @protocol ZIKTNoteListInteractorInput 13 | - (void)loadAllNotes; 14 | - (NSInteger)noteCount; 15 | - (NSString *)titleForNoteAtIndex:(NSUInteger)idx; 16 | - (NSString *)contentForNoteAtIndex:(NSUInteger)idx; 17 | 18 | - (ZIKTNoteModel *)noteAtIndex:(NSUInteger)idx; 19 | - (NSString *)noteUUIDAtIndex:(NSUInteger)idx; 20 | - (NSString *)noteTitleAtIndex:(NSUInteger)idx; 21 | - (NSString *)noteContentAtIndex:(NSUInteger)idx; 22 | - (void)deleteNoteAtIndex:(NSUInteger)idx; 23 | @end 24 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/NoteListModule/NoteListViper/ZIKTNoteListModuleBuilder.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTNoteListModuleBuilder.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/31. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol ZIKTViperViewPrivate,ZIKTNoteListDataService,ZIKTNoteListRouter; 12 | 13 | @interface ZIKTNoteListModuleBuilder : NSObject 14 | + (UIViewController *)viewControllerWithNoteListDataService:(id)service router:(id)router; 15 | + (void)buildView:(id)view noteListDataService:(id)service router:(id)router; 16 | @end 17 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/NoteListModule/NoteListViper/ZIKTNoteListRouter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTNoteListRouter.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/8/2. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | @import ZIKTViper.ZIKTViperRouter; 11 | 12 | @protocol ZIKTLoginViewDelegate,ZIKTEditorDelegate; 13 | @protocol ZIKTNoteListRouter 14 | + (UIViewController *)loginViewWithMessage:(NSString *)message delegate:(id)delegate; 15 | + (UIViewController *)viewForCreatingNoteWithDelegate:(id)delegate; 16 | + (UIViewController *)viewForEditingNoteWithUUID:(NSString *)uuid title:(NSString *)title content:(NSString *)content delegate:(id)delegate; 17 | @end 18 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/NoteListModule/NoteListViper/ZIKTNoteListViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTNoteListViewController 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/16. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | @import ZIKTViper.ZIKTViperView; 11 | #import "ZIKTNoteListViewProtocol.h" 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface ZIKTNoteListViewController : UIViewController 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/NoteListModule/NoteListViper/ZIKTNoteListViewDataSource.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTNoteListViewDataSource.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/26. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol ZIKTNoteListViewDataSource 12 | - (NSInteger)numberOfRowsInSection:(NSInteger)section; 13 | - (NSString *)textOfCellForRowAtIndexPath:(NSIndexPath *)indexPath; 14 | - (NSString *)detailTextOfCellForRowAtIndexPath:(NSIndexPath *)indexPath; 15 | @end 16 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/NoteListModule/NoteListViper/ZIKTNoteListViewEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTNoteListViewEventHandler.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/16. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | @import ZIKTViper.ZIKTViperViewEventHandler; 12 | 13 | @protocol ZIKTNoteListViewEventHandler 14 | - (void)didTouchNavigationBarAddButton; 15 | 16 | - (BOOL)canEditRowAtIndexPath:(NSIndexPath *)indexPath; 17 | - (void)handleDeleteCellForRowAtIndexPath:(NSIndexPath *)indexPath; 18 | - (void)handleDidSelectRowAtIndexPath:(NSIndexPath *)indexPath; 19 | @end 20 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/NoteListModule/NoteListViper/ZIKTNoteListViewPresenter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTNoteListViewPresenter 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/16. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | #import 9 | @import ZIKTViper.ZIKTViperPresenter; 10 | #import "ZIKTNoteListViewEventHandler.h" 11 | #import "ZIKTNoteListViewDataSource.h" 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface ZIKTNoteListViewPresenter : NSObject 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/NoteListModule/NoteListViper/ZIKTNoteListViewProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTNoteListViewProtocol.h 3 | // testTemplate 4 | // 5 | // Created by zuik on 2017/4/28. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | #import 9 | 10 | #define _ZIKTNoteListViewProtocol_ (Protocol *)@protocol(ZIKTNoteListViewProtocol) 11 | @protocol ZIKTNoteListViewProtocol 12 | - (UITableView *)noteListTableView; 13 | - (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath 14 | text:(NSString *)text 15 | detailText:(NSString *)detailText; 16 | @end 17 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/NoteListModule/NoteListViper/ZIKTNoteListWireframe.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTNoteListWireframe.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/24. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | @import ZIKTViper.ZIKTViperWireframe; 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol ZIKTLoginViewDelegate,ZIKTEditorDelegate; 15 | @interface ZIKTNoteListWireframe : NSObject 16 | - (void)presentLoginViewWithMessage:(NSString *)message delegate:(id)delegate completion:(void (^ __nullable)(void))completion; 17 | - (void)dismissLoginView:(UIViewController *)viewController animated:(BOOL)animated completion:(void (^ __nullable)(void))completion; 18 | - (void)presentEditorForCreatingNewNoteWithDelegate:(id)delegate completion:(void (^ __nullable)(void))completion; 19 | - (void)pushEditorViewForEditingNoteWithUUID:(NSString *)uuid title:(NSString *)title content:(NSString *)content delegate:(id)delegate; 20 | - (UIViewController *)editorViewForEditingNoteWithUUID:(NSString *)uuid title:(NSString *)title content:(NSString *)content delegate:(id)delegate; 21 | - (void)pushEditorViewController:(UIViewController *)destination fromViewController:(UIViewController *)source animated:(BOOL)animated; 22 | - (void)quitEditorViewWithAnimated:(BOOL)animated; 23 | @end 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/NoteListModule/NoteListViper/ZIKTNoteListWireframeInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTNoteListWireframeInput.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/24. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ZIKTLoginViewDelegate,ZIKTEditorDelegate; 14 | @protocol ZIKTNoteListWireframeInput 15 | - (void)presentLoginViewWithMessage:(NSString *)message delegate:(id)delegate completion:(void (^ __nullable)(void))completion; 16 | - (void)dismissLoginView:(UIViewController *)viewController animated:(BOOL)animated completion:(void (^ __nullable)(void))completion; 17 | 18 | - (void)presentEditorForCreatingNewNoteWithDelegate:(id)delegate completion:(void (^ __nullable)(void))completion; 19 | - (void)pushEditorViewForEditingNoteWithUUID:(NSString *)uuid title:(NSString *)title content:(NSString *)content delegate:(id)delegate; 20 | - (UIViewController *)editorViewForEditingNoteWithUUID:(NSString *)uuid title:(NSString *)title content:(NSString *)content delegate:(id)delegate; 21 | - (void)pushEditorViewController:(UIViewController *)destination fromViewController:(UIViewController *)source animated:(BOOL)animated; 22 | - (void)quitEditorViewWithAnimated:(BOOL)animated; 23 | @end 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/NoteModel/ZIKTNoteModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTNoteModel.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/16. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface ZIKTNoteModel : NSObject 14 | @property (nonatomic, readonly, copy) NSString *uuid; 15 | @property (nonatomic, readonly, copy) NSString *title; 16 | @property (nonatomic, readonly, copy) NSString *content; 17 | - (instancetype)initWithUUID:(NSString *)uuid title:(NSString *)title content:(NSString *)content NS_DESIGNATED_INITIALIZER; 18 | - (instancetype)initWithNewNoteForTitle:(NSString *)title content:(NSString *)content; 19 | - (nullable instancetype)initWithCoder:(NSCoder *)aDecoder NS_DESIGNATED_INITIALIZER; 20 | - (instancetype)init NS_UNAVAILABLE; 21 | @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/NoteService/NoteDataManager/ZIKTNoteDataManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTNoteDataManager.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/16. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "ZIKTNoteListDataService.h" 11 | 12 | @class ZIKTNoteModel; 13 | @interface ZIKTNoteDataManager : NSObject 14 | @property (nonatomic, readonly, strong) NSArray *noteList; 15 | + (instancetype)sharedInsatnce; 16 | - (void)fetchAllNotesWithCompletion:(void(^)(NSArray *notes))completion; 17 | - (void)storeNote:(ZIKTNoteModel *)note; 18 | - (void)deleteNote:(ZIKTNoteModel *)noteToDelete; 19 | @end 20 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Router/UIApplication+ZIKTViperRouter.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIApplication+ZIKTViperRouter.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/8/2. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class ZIKTRouter; 12 | @interface UIApplication (ZIKTViperRouter) 13 | 14 | - (ZIKTRouter *)ZIKT_router; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Router/UIApplication+ZIKTViperRouter.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIApplication+ZIKTViperRouter.m 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/8/2. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import "UIApplication+ZIKTViperRouter.h" 10 | #import "ZIKTRouter.h" 11 | 12 | @implementation UIApplication (ZIKTViperRouter) 13 | 14 | - (ZIKTRouter *)ZIKT_router { 15 | return [ZIKTRouter new]; 16 | } 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Router/ZIKTRouter+ZIKTEditor.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTRouter+ZIKTEditor.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/8/2. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import "ZIKTRouter.h" 10 | 11 | @protocol ZIKTEditorDelegate; 12 | @interface ZIKTRouter (ZIKTEditor) 13 | + (UIViewController *)viewForCreatingNoteWithDelegate:(id)delegate; 14 | + (UIViewController *)viewForEditingNoteWithUUID:(NSString *)uuid title:(NSString *)title content:(NSString *)content delegate:(id)delegate; 15 | @end 16 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Router/ZIKTRouter+ZIKTEditor.m: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTRouter+ZIKTEditor.m 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/8/2. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import "ZIKTRouter+ZIKTEditor.h" 10 | #import "ZIKTEditorBuilder.h" 11 | 12 | @implementation ZIKTRouter (ZIKTEditor) 13 | 14 | + (UIViewController *)viewForCreatingNoteWithDelegate:(id)delegate { 15 | return [ZIKTEditorBuilder viewForCreatingNoteWithDelegate:delegate router:[self new]]; 16 | } 17 | 18 | + (UIViewController *)viewForEditingNoteWithUUID:(NSString *)uuid title:(NSString *)title content:(NSString *)content delegate:(id)delegate { 19 | return [ZIKTEditorBuilder viewForEditingNoteWithUUID:uuid title:title content:content delegate:delegate router:[self new]]; 20 | } 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Router/ZIKTRouter+ZIKTLogin.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTRouter+ZIKTLogin.h 3 | // ZIKThoroughViperDemo 4 | // 5 | // Created by zuik on 2017/8/3. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import "ZIKTRouter.h" 10 | 11 | @protocol ZIKTLoginViewDelegate; 12 | @interface ZIKTRouter (ZIKTLogin) 13 | + (UIViewController *)loginViewWithMessage:(NSString *)message delegate:(id)delegate; 14 | @end 15 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Router/ZIKTRouter+ZIKTLogin.m: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTRouter+ZIKTLogin.m 3 | // ZIKThoroughViperDemo 4 | // 5 | // Created by zuik on 2017/8/3. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import "ZIKTRouter+ZIKTLogin.h" 10 | #import "ZIKTLoginBuilder.h" 11 | 12 | @implementation ZIKTRouter (ZIKTLogin) 13 | + (UIViewController *)loginViewWithMessage:(NSString *)message delegate:(id)delegate { 14 | return [ZIKTLoginBuilder viewWithMessage:message delegate:delegate router:[self new]]; 15 | } 16 | @end 17 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Router/ZIKTRouter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTRouter.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/8/2. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | @import ZIKTViper.ZIKTViperRouter; 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface ZIKTRouter : NSObject 15 | + (void)pushViewController:(UIViewController *)destination fromViewController:(UIViewController *)source animated:(BOOL)animated; 16 | + (void)popViewController:(UIViewController *)viewController animated:(BOOL)animated; 17 | 18 | + (void)presentViewController:(UIViewController *)viewControllerToPresent fromViewController:(UIViewController *)source animated:(BOOL)animated completion:(void (^ __nullable)(void))completion; 19 | + (void)dismissViewController:(UIViewController *)viewController animated:(BOOL)animated completion:(void (^ __nullable)(void))completion; 20 | @end 21 | 22 | NS_ASSUME_NONNULL_END 23 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Router/ZIKTRouter.m: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTRouter.m 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/8/2. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import "ZIKTRouter.h" 10 | 11 | @implementation ZIKTRouter 12 | 13 | + (void)pushViewController:(UIViewController *)destination fromViewController:(UIViewController *)source animated:(BOOL)animated { 14 | NSParameterAssert([destination isKindOfClass:[UIViewController class]]); 15 | NSParameterAssert(source.navigationController); 16 | [source.navigationController pushViewController:destination animated:animated]; 17 | } 18 | 19 | + (void)popViewController:(UIViewController *)viewController animated:(BOOL)animated { 20 | NSParameterAssert(viewController.navigationController); 21 | [viewController.navigationController popViewControllerAnimated:animated]; 22 | } 23 | 24 | + (void)presentViewController:(UIViewController *)viewControllerToPresent fromViewController:(UIViewController *)source animated:(BOOL)animated completion:(void (^ __nullable)(void))completion { 25 | NSParameterAssert(viewControllerToPresent); 26 | NSParameterAssert(source); 27 | [source presentViewController:viewControllerToPresent animated:animated completion:completion]; 28 | } 29 | 30 | + (void)dismissViewController:(UIViewController *)viewController animated:(BOOL)animated completion:(void (^ __nullable)(void))completion { 31 | NSParameterAssert(viewController); 32 | [viewController dismissViewControllerAnimated:animated completion:completion]; 33 | } 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Templete-UIView/___FILEBASENAME___Interactor.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILEBASENAMEASIDENTIFIER___Interactor.h 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | #import 9 | #import "ZIKViperInteractor.h" 10 | #import "___FILEBASENAME___InteractorProtocol.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol ___FILEBASENAME___InteractorDataSource; 15 | @protocol ___FILEBASENAME___InteractorEventHandler; 16 | @interface ___FILEBASENAMEASIDENTIFIER___Interactor : NSObject 17 | @property (nonatomic, weak) id<___FILEBASENAME___InteractorDataSource> dataSource; 18 | @property (nonatomic, weak) id<___FILEBASENAME___InteractorEventHandler> eventHandler; 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Templete-UIView/___FILEBASENAME___Interactor.m: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILEBASENAMEASIDENTIFIER___Interactor.m 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import "___FILEBASENAME___Interactor.h" 10 | #import "ZIKViperInteractorPrivate.h" 11 | #import "___FILEBASENAME___InteractorDataSource.h" 12 | #import "___FILEBASENAME___InteractorEventHandler.h" 13 | 14 | @interface ___FILEBASENAMEASIDENTIFIER___Interactor () 15 | 16 | @end 17 | 18 | @implementation ___FILEBASENAMEASIDENTIFIER___Interactor 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Templete-UIView/___FILEBASENAME___InteractorDataSource.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILEBASENAME___InteractorDataSource.h 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | @protocol ___FILEBASENAME___InteractorDataSource 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Templete-UIView/___FILEBASENAME___InteractorEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILEBASENAME___InteractorEventHandler.h 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | @protocol ___FILEBASENAME___InteractorEventHandler 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Templete-UIView/___FILEBASENAME___InteractorProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILEBASENAME___InteractorProtocol.h 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | @protocol ___FILEBASENAME___InteractorProtocol 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Templete-UIView/___FILEBASENAME___View.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILEBASENAME___View.h 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | #import "ZIKViperView.h" 11 | #import "___FILEBASENAME___ViewProtocol.h" 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface ___FILEBASENAMEASIDENTIFIER___View : UIView 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Templete-UIView/___FILEBASENAME___ViewEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILEBASENAME___ViewEventHandler.h 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | @protocol ___FILEBASENAME___ViewEventHandler 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Templete-UIView/___FILEBASENAME___ViewPresenter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILEBASENAMEASIDENTIFIER___ViewPresenter.h 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | #import 9 | #import "ZIKViperPresenter.h" 10 | #import "___FILEBASENAME___ViewEventHandler.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface ___FILEBASENAMEASIDENTIFIER___ViewPresenter : NSObject 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Templete-UIView/___FILEBASENAME___ViewProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILEBASENAME___ViewProtocol.h 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | #import 9 | 10 | @protocol ___FILEBASENAME___ViewProtocol 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Templete-UIViewController/___FILEBASENAME___Interactor.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILEBASENAMEASIDENTIFIER___Interactor.h 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | #import 9 | #import "ZIKViperInteractor.h" 10 | #import "___FILEBASENAME___InteractorProtocol.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol ___FILEBASENAME___InteractorDataSource; 15 | @protocol ___FILEBASENAME___InteractorEventHandler; 16 | @interface ___FILEBASENAMEASIDENTIFIER___Interactor : NSObject 17 | @property (nonatomic, weak) id<___FILEBASENAME___InteractorDataSource> dataSource; 18 | @property (nonatomic, weak) id<___FILEBASENAME___InteractorEventHandler> eventHandler; 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Templete-UIViewController/___FILEBASENAME___Interactor.m: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILEBASENAMEASIDENTIFIER___Interactor.m 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import "___FILEBASENAME___Interactor.h" 10 | #import "ZIKViperInteractorPrivate.h" 11 | #import "___FILEBASENAME___InteractorDataSource.h" 12 | #import "___FILEBASENAME___InteractorEventHandler.h" 13 | 14 | @interface ___FILEBASENAMEASIDENTIFIER___Interactor () 15 | 16 | @end 17 | 18 | @implementation ___FILEBASENAMEASIDENTIFIER___Interactor 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Templete-UIViewController/___FILEBASENAME___InteractorDataSource.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILEBASENAME___InteractorDataSource.h 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | @protocol ___FILEBASENAME___InteractorDataSource 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Templete-UIViewController/___FILEBASENAME___InteractorEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILEBASENAME___InteractorEventHandler.h 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | @protocol ___FILEBASENAME___InteractorEventHandler 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Templete-UIViewController/___FILEBASENAME___InteractorProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILEBASENAME___InteractorProtocol.h 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | @protocol ___FILEBASENAME___InteractorProtocol 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Templete-UIViewController/___FILEBASENAME___ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILEBASENAMEASIDENTIFIER___ViewController.h 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | #import "ZIKViperView.h" 11 | #import "___FILEBASENAME___ViewProtocol.h" 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface ___FILEBASENAMEASIDENTIFIER___ViewController : UIViewController 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Templete-UIViewController/___FILEBASENAME___ViewEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILEBASENAME___ViewEventHandler.h 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | @protocol ___FILEBASENAME___ViewEventHandler 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Templete-UIViewController/___FILEBASENAME___ViewPresenter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILEBASENAMEASIDENTIFIER___ViewPresenter.h 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | #import 9 | #import "ZIKViperPresenter.h" 10 | #import "___FILEBASENAME___ViewEventHandler.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface ___FILEBASENAMEASIDENTIFIER___ViewPresenter : NSObject 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/Templete-UIViewController/___FILEBASENAME___ViewProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILEBASENAME___ViewProtocol.h 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | #import 9 | 10 | @protocol ___FILEBASENAME___ViewProtocol 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /Demo/ZIKThoroughViperDemo/ZIKThoroughViperDemo/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/15. 6 | // Copyright © 2017年 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/Adapters/EditorAdapter/ZIKEditorAdapter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKEditorAdapter.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/24. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "NoteListRequiredNoteEditorProtocol.h" 11 | @import ZIKRouter; 12 | 13 | //Adapte reqiured interface (NoteListRequiredNoteEditorProtocol) with provided interface (ZIKEditorConfigProtocol) 14 | @interface ZIKEditorAdapter : ZIKViewRouteAdapter 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/Adapters/EditorAdapter/ZIKEditorAdapter.m: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKEditorAdapter.m 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/24. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import "ZIKEditorAdapter.h" 10 | #import "ZIKEditorViewRouter.h" 11 | @import ZIKRouter.Internal; 12 | 13 | @interface ZIKEditorViewConfiguration (NoteEditorProtocol) 14 | 15 | @end 16 | 17 | @implementation ZIKEditorViewConfiguration (NoteEditorProtocol) 18 | 19 | - (void)constructForEditingNote:(ZIKNoteModel *)note { 20 | [self constructForModifyingNote:note]; 21 | } 22 | 23 | @end 24 | 25 | @implementation ZIKEditorAdapter 26 | 27 | + (void)registerRoutableDestination { 28 | [ZIKEditorViewRouter registerModuleProtocol:ZIKRoutable(NoteListRequiredNoteEditorProtocol)]; 29 | } 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/Application/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/15. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-20-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-20-ipad.png -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad.png -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-29-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-29-ipad.png -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-29.png -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-29@2x-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-29@2x-ipad.png -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-40.png -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-50.png -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-50@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-50@2x.png -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-57.png -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-57@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-57@2x.png -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-72.png -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-72@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-72@2x.png -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-76.png -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/iTunesArtwork.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/iTunesArtwork.png -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/iTunesArtwork@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Demo/ZIKViperDemo/ZIKViperDemo/Application/Assets.xcassets/iTunesArtwork@2x.png -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/EditorModule/EditorViper/ZIKEditorConfigProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKEditorConfigProtocol.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/17. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "ZIKEditorViewProtocol.h" 11 | @import ZIKRouter; 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | //If ZIKEditorConfigProtocol is not registered as routable protocol, remember to remove this macro 16 | #define ZIKEditorConfigProtocol_configRoutable @protocol(ZIKEditorConfigProtocol) 17 | 18 | @class ZIKNoteModel; 19 | @protocol ZIKEditorConfigProtocol 20 | @property (nonatomic, assign) BOOL previewing; 21 | @property (nonatomic, weak) id delegate; 22 | - (void)constructForCreatingNewNote; 23 | - (void)constructForModifyingNote:(ZIKNoteModel *)note; 24 | @end 25 | 26 | NS_ASSUME_NONNULL_END 27 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/EditorModule/EditorViper/ZIKEditorDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKEditorDelegate.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/16. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @class ZIKNoteModel; 13 | @protocol ZIKEditorDelegate 14 | - (void)editor:(UIViewController *)editor didFinishEditNote:(ZIKNoteModel *)note; 15 | @end 16 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/EditorModule/EditorViper/ZIKEditorInteractor.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKEditorInteractor.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/17. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | #import 9 | #import 10 | #import "ZIKEditorInteractorInput.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol ZIKEditorInteractorDataSource; 15 | @protocol ZIKEditorInteractorEventHandler; 16 | @interface ZIKEditorInteractor : NSObject 17 | @property (nonatomic, weak) id dataSource; 18 | @property (nonatomic, weak) id eventHandler; 19 | 20 | - (instancetype)initWithEditingNote:(nullable ZIKNoteModel *)note; 21 | 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/EditorModule/EditorViper/ZIKEditorInteractorDataSource.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKEditorInteractorDataSource.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/17. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol ZIKEditorInteractorDataSource 12 | - (nullable NSString *)currentEditingNoteTitle; 13 | - (nullable NSString *)currentEditingNoteContent; 14 | @end 15 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/EditorModule/EditorViper/ZIKEditorInteractorEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKEditorInteractorEventHandler.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/17. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol ZIKEditorInteractorEventHandler 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/EditorModule/EditorViper/ZIKEditorInteractorInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKEditorInteractorInput.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/17. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @class ZIKNoteModel; 14 | @protocol ZIKEditorInteractorInput 15 | - (nullable ZIKNoteModel *)currentEditingNote; 16 | - (void)storeCurrentEditingNote; 17 | 18 | - (nullable NSString *)currentEditingNoteTitle; 19 | - (nullable NSString *)currentEditingNoteContent; 20 | @end 21 | 22 | NS_ASSUME_NONNULL_END 23 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/EditorModule/EditorViper/ZIKEditorViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKEditorViewController 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/16. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | #import "ZIKEditorViewProtocol.h" 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @protocol ZIKEditorDelegate; 16 | @interface ZIKEditorViewController : UIViewController 17 | @property (nonatomic, weak) id delegate; 18 | @property (nonatomic, assign) ZIKEditorMode editMode; 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/EditorModule/EditorViper/ZIKEditorViewDataSource.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKEditorViewDataSource.h 3 | // ZIKthoroughViperDemo 4 | // 5 | // Created by zuik on 2017/8/3. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol ZIKEditorViewDataSource 12 | - (NSString *)prefixStringForTextView; 13 | @end 14 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/EditorModule/EditorViper/ZIKEditorViewEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKEditorViewEventHandler.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/16. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @protocol ZIKEditorViewEventHandler 13 | - (void)didTouchNavigationBarDoneButton; 14 | - (BOOL)previewing; 15 | @end 16 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/EditorModule/EditorViper/ZIKEditorViewPresenter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKEditorViewPresenter 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/16. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | #import 9 | #import 10 | #import "ZIKEditorViewEventHandler.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface ZIKEditorViewPresenter : NSObject 15 | @property (nonatomic, assign) BOOL previewing; 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/EditorModule/EditorViper/ZIKEditorViewProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKEditorViewProtocol.h 3 | // testTemplate 4 | // 5 | // Created by zuik on 2017/4/28. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | typedef NS_ENUM(NSInteger,ZIKEditorMode) { 13 | ZIKEditorModeCreate, 14 | ZIKEditorModeModify 15 | }; 16 | 17 | @protocol ZIKEditorDelegate; 18 | @protocol ZIKEditorViewProtocol 19 | @property (nonatomic, weak) id delegate; 20 | @property (nonatomic, assign) ZIKEditorMode editMode; 21 | - (nullable NSString *)titleString; 22 | - (nullable NSString *)contentString; 23 | 24 | - (void)updateTitleString:(NSString *)title; 25 | - (void)updateContentString:(NSString *)content; 26 | @end 27 | 28 | NS_ASSUME_NONNULL_END 29 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/EditorModule/EditorViper/ZIKEditorViewRouter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKEditorViewRouter 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/16. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | @import ZIKRouter; 10 | #import "ZIKEditorConfigProtocol.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface ZIKEditorViewConfiguration : ZIKViewRouteConfiguration 15 | @property (nonatomic, assign) BOOL previewing; 16 | @property (nonatomic, weak) id delegate; 17 | - (void)constructForCreatingNewNote; 18 | - (void)constructForModifyingNote:(ZIKNoteModel *)note; 19 | @end 20 | 21 | @interface ZIKEditorViewRouter : ZIKViewRouter 22 | 23 | @end 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/EditorModule/TextWidgetViper/ZIKTextView.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTextView.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/17. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | #import "ZIKTextWidgetViewProtocol.h" 12 | 13 | @protocol ZIKTextViewDataSource; 14 | @interface ZIKTextView : UITextView 15 | @property (nonatomic, weak) id dataSource; 16 | @property (nonatomic, strong) UIColor *colorForCopyright; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/EditorModule/TextWidgetViper/ZIKTextViewDataSource.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTextViewDataSource.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/18. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class ZIKTextView; 12 | @protocol ZIKTextViewDataSource 13 | - (NSString *)prefixStringForTextView:(ZIKTextView *)textView; 14 | - (BOOL)previewing; 15 | @end 16 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/EditorModule/TextWidgetViper/ZIKTextWidgetInteractor.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTextWidgetInteractor.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/17. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | #import 9 | #import 10 | #import "ZIKTextWidgetInteractorInput.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol ZIKTextWidgetInteractorDataSource; 15 | @protocol ZIKTextWidgetInteractorEventHandler; 16 | @interface ZIKTextWidgetInteractor : NSObject 17 | @property (nonatomic, weak) id dataSource; 18 | @property (nonatomic, weak) id eventHandler; 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/EditorModule/TextWidgetViper/ZIKTextWidgetInteractor.m: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTextWidgetInteractor.m 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/17. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import "ZIKTextWidgetInteractor.h" 10 | #import 11 | #import "ZIKTextWidgetInteractorDataSource.h" 12 | #import "ZIKTextWidgetInteractorEventHandler.h" 13 | 14 | @interface ZIKTextWidgetInteractor () 15 | @property (nonatomic, copy) NSString *loginedAccount; 16 | @end 17 | 18 | @implementation ZIKTextWidgetInteractor 19 | 20 | - (NSString *)copyrightDescription { 21 | return @"© This is ZIKTextView."; 22 | } 23 | 24 | - (BOOL)needValidateAccount { 25 | return self.loginedAccount == nil; 26 | } 27 | 28 | - (void)didLoginedWithAccount:(NSString *)account { 29 | self.loginedAccount = account; 30 | } 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/EditorModule/TextWidgetViper/ZIKTextWidgetInteractorDataSource.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTextWidgetInteractorDataSource.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/17. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol ZIKTextWidgetInteractorDataSource 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/EditorModule/TextWidgetViper/ZIKTextWidgetInteractorEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTextWidgetInteractorEventHandler.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/17. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol ZIKTextWidgetInteractorEventHandler 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/EditorModule/TextWidgetViper/ZIKTextWidgetInteractorInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTextWidgetInteractorInput.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/17. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol ZIKTextWidgetInteractorInput 12 | - (NSString *)copyrightDescription; 13 | - (BOOL)needValidateAccount; 14 | - (void)didLoginedWithAccount:(NSString *)account; 15 | @end 16 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/EditorModule/TextWidgetViper/ZIKTextWidgetViewEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTextWidgetViewEventHandler.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/17. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @protocol ZIKTextWidgetViewEventHandler 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/EditorModule/TextWidgetViper/ZIKTextWidgetViewPresenter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTextWidgetViewPresenter.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/17. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | #import 9 | #import 10 | #import "ZIKTextWidgetViewEventHandler.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface ZIKTextWidgetViewPresenter : NSObject 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/EditorModule/TextWidgetViper/ZIKTextWidgetViewProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTextWidgetViewProtocol.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/17. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | #import 9 | #import "ZIKTextViewDataSource.h" 10 | @import ZIKRouter; 11 | 12 | @protocol ZIKTextWidgetViewProtocol 13 | @property (nonatomic, weak) id dataSource; 14 | @property (nonatomic, strong) UIColor *colorForCopyright; 15 | - (void)setPrefixText:(NSString *)prefix; 16 | @end 17 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/EditorModule/TextWidgetViper/ZIKTextWidgetViewRouter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTextWidgetViewRouter.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/17. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | @import ZIKRouter; 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface ZIKTextWidgetViewRouter : ZIKViewRouter 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/LoginModule/LoginService/ZIKLoginService.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKLoginService.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/15. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "ZIKLoginServiceInput.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @class ZIKUserModel; 15 | @interface ZIKLoginService : NSObject 16 | + (instancetype)sharedInstance; 17 | - (nullable ZIKUserModel *)loginedUser; 18 | - (void)loginWithAccount:(NSString *)account 19 | password:(NSString *)password 20 | success:(void(^_Nullable)(void))successHandler 21 | error:(void(^_Nullable)(void))errorHandler; 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/LoginModule/LoginService/ZIKLoginServiceInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKLoginServiceInput.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/8/9. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | @import ZIKRouter; 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | //If ZIKLoginServiceInput is not registered as routable protocol, remember to remove this macro 15 | #define _ZIKLoginServiceInput_ (Protocol *)@protocol(ZIKLoginServiceInput) 16 | 17 | @protocol ZIKLoginServiceInput 18 | - (void)loginWithAccount:(NSString *)account 19 | password:(NSString *)password 20 | success:(void(^_Nullable)(void))successHandler 21 | error:(void(^_Nullable)(void))errorHandler; 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/LoginModule/LoginService/ZIKLoginServiceRouter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKLoginServiceRouter.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/8/9. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | @import ZIKRouter; 10 | 11 | @interface ZIKLoginServiceRouter : ZIKServiceRouter 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/LoginModule/LoginService/ZIKLoginServiceRouter.m: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKLoginServiceRouter.m 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/8/9. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import "ZIKLoginServiceRouter.h" 10 | #import "ZIKLoginService.h" 11 | 12 | @interface ZIKLoginService (ZIKLoginServiceRouter) 13 | @end 14 | @implementation ZIKLoginService (ZIKLoginServiceRouter) 15 | @end 16 | 17 | @implementation ZIKLoginServiceRouter 18 | 19 | + (void)registerRoutableDestination { 20 | [self registerService:[ZIKLoginService class]]; 21 | [self registerServiceProtocol:ZIKRoutable(ZIKLoginServiceInput)]; 22 | } 23 | 24 | - (id)destinationWithConfiguration:(ZIKPerformRouteConfiguration *)configuration { 25 | ZIKLoginService *destination = [ZIKLoginService sharedInstance]; 26 | return destination; 27 | } 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/LoginModule/LoginViper/ZIKLoginInteractor.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKLoginInteractor.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/15. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | #import "ZIKLoginInteractorInput.h" 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface ZIKLoginInteractor : NSObject 16 | @property (nonatomic, weak) id dataSource; 17 | @property (nonatomic, weak) id eventHandler; 18 | - (void)loginWithAccount:(NSString *)account 19 | password:(NSString *)password 20 | success:(void(^_Nullable)(void))successHandler 21 | error:(void(^_Nullable)(void))errorHandler; 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/LoginModule/LoginViper/ZIKLoginInteractorInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKLoginInteractorInput.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/15. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ZIKLoginInteractorInput 14 | - (void)loginWithAccount:(NSString *)account 15 | password:(NSString *)password 16 | success:(void(^_Nullable)(void))successHandler 17 | error:(void(^_Nullable)(void))errorHandler; 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/LoginModule/LoginViper/ZIKLoginViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKLoginViewController.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/15. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | #import "ZIKLoginViewDelegate.h" 12 | #import "ZIKLoginViewProtocol.h" 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | @interface ZIKLoginViewController : UIViewController 17 | @property (nonatomic, weak) id delegate; 18 | @property (nonatomic, copy, nullable) NSString *message; 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/LoginModule/LoginViper/ZIKLoginViewDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKLoginViewDelegate.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/15. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol ZIKLoginViewDelegate 12 | @optional 13 | - (void)loginViewController:(UIViewController *)loginViewController didLoginWithAccount:(NSString *)account; 14 | @end 15 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/LoginModule/LoginViper/ZIKLoginViewEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKLoginViewEventHandler.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/15. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol ZIKLoginViewEventHandler 15 | - (void)didTouchLoginButton; 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/LoginModule/LoginViper/ZIKLoginViewPresenter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKLoginViewPresenter.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/15. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | #import "ZIKLoginViewEventHandler.h" 12 | 13 | @interface ZIKLoginViewPresenter : NSObject 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/LoginModule/LoginViper/ZIKLoginViewProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKLoginViewProtocol.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/15. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "ZIKLoginViewDelegate.h" 11 | @import ZIKRouter; 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @protocol ZIKLoginViewProtocol 16 | @property (nonatomic, weak) id delegate; 17 | @property (nonatomic, copy, nullable) NSString *message; 18 | - (nullable NSString *)account; 19 | - (nullable NSString *)password; 20 | @end 21 | 22 | NS_ASSUME_NONNULL_END 23 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/LoginModule/LoginViper/ZIKLoginViewRouter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKLoginViewRouter.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/15. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | @import ZIKRouter; 10 | 11 | @interface ZIKLoginViewRouter : ZIKViewRouter 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/LoginModule/UserModel/ZIKUserModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKUserModel.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/15. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ZIKUserModel : NSObject 12 | @property (nonatomic, readonly, copy) NSString *account; 13 | @property (nonatomic, readonly, copy) NSString *password; 14 | - (instancetype)initWithAccount:(NSString *)account password:(NSString *)password NS_DESIGNATED_INITIALIZER; 15 | - (instancetype)init NS_UNAVAILABLE; 16 | @end 17 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/LoginModule/UserModel/ZIKUserModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKUserModel.m 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/15. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import "ZIKUserModel.h" 10 | 11 | @interface ZIKUserModel () 12 | @property (nonatomic, copy) NSString *account; 13 | @property (nonatomic, copy) NSString *password; 14 | @end 15 | 16 | @implementation ZIKUserModel 17 | - (instancetype)initWithAccount:(NSString *)account password:(NSString *)password { 18 | if (self = [super init]) { 19 | _account = account; 20 | _password = password; 21 | } 22 | return self; 23 | } 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/NoteListModule/NoteListViper/NoteListRequiredNoteEditorDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // NoteListRequiredNoteEditorDelegate.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/24. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class ZIKNoteModel; 12 | //If you need to replace ZIKEditorDelegate with NoteListRequiredNoteEditorDelegate, and their methods' name is different, you need to forward ZIKEditorDelegate to NoteListRequiredNoteEditorDelegate in ZIKEditorAdapter 13 | @protocol NoteListRequiredNoteEditorDelegate 14 | - (void)editor:(UIViewController *)editor didFinishEditNote:(ZIKNoteModel *)note; 15 | @end 16 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/NoteListModule/NoteListViper/NoteListRequiredNoteEditorProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // NoteListRequiredNoteEditorProtocol.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/24. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "NoteListRequiredNoteEditorDelegate.h" 11 | @import ZIKRouter; 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @class ZIKNoteModel; 16 | ///Reqiured interface of editor module for notelist module 17 | @protocol NoteListRequiredNoteEditorProtocol 18 | @property (nonatomic, assign) BOOL previewing; 19 | @property (nonatomic, weak) id delegate; 20 | - (void)constructForCreatingNewNote; 21 | - (void)constructForEditingNote:(ZIKNoteModel *)note; 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/NoteListModule/NoteListViper/ZIKNoteListInteractor.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKNoteListInteractor 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/16. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | #import 9 | #import 10 | #import "ZIKNoteListInteractorInput.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @class ZIKNoteModel; 15 | @interface ZIKNoteListInteractor : NSObject 16 | @property (nonatomic, weak) id dataSource; 17 | @property (nonatomic, weak) id eventHandler; 18 | - (void)loadAllNotes; 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/NoteListModule/NoteListViper/ZIKNoteListInteractorInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKNoteListInteractorInput.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/16. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class ZIKNoteModel; 12 | @protocol ZIKNoteListInteractorInput 13 | - (BOOL)needValidateAccount; 14 | - (void)didLoginedWithAccount:(NSString *)account; 15 | - (void)loadAllNotes; 16 | - (NSInteger)noteCount; 17 | - (NSString *)titleForNoteAtIndex:(NSUInteger)idx; 18 | - (NSString *)contentForNoteAtIndex:(NSUInteger)idx; 19 | 20 | - (ZIKNoteModel *)noteAtIndex:(NSUInteger)idx; 21 | - (void)deleteNoteAtIndex:(NSUInteger)idx; 22 | @end 23 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/NoteListModule/NoteListViper/ZIKNoteListViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKNoteListViewController 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/16. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | #import "ZIKNoteListViewProtocol.h" 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface ZIKNoteListViewController : UIViewController 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/NoteListModule/NoteListViper/ZIKNoteListViewDataSource.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKNoteListViewDataSource.h 3 | // ZIKTViperDemo 4 | // 5 | // Created by zuik on 2017/7/26. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol ZIKNoteListViewDataSource 12 | - (NSInteger)numberOfRowsInSection:(NSInteger)section; 13 | - (NSString *)textOfCellForRowAtIndexPath:(NSIndexPath *)indexPath; 14 | - (NSString *)detailTextOfCellForRowAtIndexPath:(NSIndexPath *)indexPath; 15 | @end 16 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/NoteListModule/NoteListViper/ZIKNoteListViewEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKNoteListViewEventHandler.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/16. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | #import 12 | 13 | @protocol ZIKNoteListViewEventHandler 14 | - (void)didTouchNavigationBarAddButton; 15 | - (BOOL)canEditRowAtIndexPath:(NSIndexPath *)indexPath; 16 | - (void)handleDeleteCellForRowAtIndexPath:(NSIndexPath *)indexPath; 17 | - (void)handleDidSelectRowAtIndexPath:(NSIndexPath *)indexPath; 18 | @end 19 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/NoteListModule/NoteListViper/ZIKNoteListViewPresenter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKNoteListViewPresenter 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/16. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | #import 9 | #import 10 | #import "ZIKNoteListViewEventHandler.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface ZIKNoteListViewPresenter : NSObject 15 | @property (nonatomic, strong) id wireframe; 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/NoteListModule/NoteListViper/ZIKNoteListViewProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKNoteListViewProtocol.h 3 | // testTemplate 4 | // 5 | // Created by zuik on 2017/4/28. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | #import 9 | @import ZIKRouter; 10 | 11 | #define ZIKNoteListViewProtocol_routable @protocol(ZIKNoteListViewProtocol) 12 | @protocol ZIKNoteListViewProtocol 13 | - (UITableView *)noteListTableView; 14 | @end 15 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/NoteListModule/NoteListViper/ZIKNoteListViewRouter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKNoteListViewRouter 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/16. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | @import ZIKRouter; 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface ZIKNoteListViewRouter : ZIKViewRouter 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/NoteModel/ZIKNoteModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKNoteModel.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/16. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface ZIKNoteModel : NSObject 14 | @property (nonatomic, readonly, copy) NSString *uuid; 15 | @property (nonatomic, readonly, copy) NSString *title; 16 | @property (nonatomic, readonly, copy) NSString *content; 17 | - (instancetype)initWithUUID:(NSString *)uuid title:(NSString *)title content:(NSString *)content NS_DESIGNATED_INITIALIZER; 18 | - (instancetype)initWithNewNoteForTitle:(NSString *)title content:(NSString *)content; 19 | - (nullable instancetype)initWithCoder:(NSCoder *)aDecoder NS_DESIGNATED_INITIALIZER; 20 | - (instancetype)init NS_UNAVAILABLE; 21 | @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/NoteModel/ZIKNoteModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKNoteModel.m 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/16. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import "ZIKNoteModel.h" 10 | 11 | @interface ZIKNoteModel () 12 | @property (nonatomic, copy) NSString *uuid; 13 | @property (nonatomic, copy) NSString *title; 14 | @property (nonatomic, copy) NSString *content; 15 | @end 16 | 17 | @implementation ZIKNoteModel 18 | 19 | - (instancetype)initWithUUID:(NSString *)uuid title:(NSString *)title content:(NSString *)content { 20 | NSParameterAssert(uuid.length > 0); 21 | NSParameterAssert(title); 22 | NSParameterAssert(content); 23 | if (self = [super init]) { 24 | _uuid = uuid; 25 | _title = title; 26 | _content = content; 27 | } 28 | return self; 29 | } 30 | 31 | - (instancetype)initWithNewNoteForTitle:(NSString *)title content:(NSString *)content { 32 | return [self initWithUUID:[NSUUID UUID].UUIDString title:title content:content]; 33 | } 34 | 35 | - (void)encodeWithCoder:(NSCoder *)aCoder { 36 | [aCoder encodeObject:self.uuid forKey:@"uuid"]; 37 | [aCoder encodeObject:self.title forKey:@"title"]; 38 | [aCoder encodeObject:self.content forKey:@"content"]; 39 | } 40 | 41 | - (nullable instancetype)initWithCoder:(NSCoder *)aDecoder { 42 | self.uuid = [aDecoder decodeObjectForKey:@"uuid"]; 43 | self.title = [aDecoder decodeObjectForKey:@"title"]; 44 | self.content = [aDecoder decodeObjectForKey:@"content"]; 45 | return self; 46 | } 47 | 48 | @end 49 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/NoteService/NoteDataManager/ZIKNoteDataManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKNoteDataManager.h 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/16. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class ZIKNoteModel; 12 | @interface ZIKNoteDataManager : NSObject 13 | @property (nonatomic, readonly, strong) NSArray *noteList; 14 | + (instancetype)sharedInsatnce; 15 | - (void)fetchAllNotesWithCompletion:(void(^)(NSArray *notes))completion; 16 | - (void)storeNote:(ZIKNoteModel *)note; 17 | - (void)deleteNote:(ZIKNoteModel *)noteToDelete; 18 | @end 19 | -------------------------------------------------------------------------------- /Demo/ZIKViperDemo/ZIKViperDemo/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // ZIKViperDemo 4 | // 5 | // Created by zuik on 2017/7/15. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Docs/CleanArchitecture.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Docs/CleanArchitecture.jpg -------------------------------------------------------------------------------- /Docs/final_viper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Docs/final_viper.png -------------------------------------------------------------------------------- /Docs/thorough_viper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Docs/thorough_viper.png -------------------------------------------------------------------------------- /Docs/viper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Docs/viper.png -------------------------------------------------------------------------------- /Docs/viper_mutualmobile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Docs/viper_mutualmobile.png -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Zuik 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/TemplateIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Templates/ZIKTViperModule.xctemplate/TemplateIcon.png -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/TemplateIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Templates/ZIKTViperModule.xctemplate/TemplateIcon@2x.png -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIView/___FILEBASENAME___Builder.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ZIKTViperViewPrivate,___VARIABLE_productName___RouterInput; 14 | @interface ___VARIABLE_productName___Builder : NSObject 15 | 16 | ///Change this method, add your arguments for initializing the module 17 | + (UIView *)viewWithRouteSource:(nullable UIViewController *)routeSource router:(id<___VARIABLE_productName___RouterInput>)router; 18 | + (void)buildView:(id)view 19 | routeSource:(nullable UIViewController *)routeSource 20 | router:(id<___VARIABLE_productName___RouterInput>)router; 21 | 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIView/___FILEBASENAME___Interactor.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | #import 9 | #import 10 | #import "___VARIABLE_productName___InteractorInput.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol ___VARIABLE_productName___InteractorDataSource; 15 | @protocol ___VARIABLE_productName___InteractorEventHandler; 16 | @interface ___VARIABLE_productName___Interactor : NSObject 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIView/___FILEBASENAME___Interactor.m: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import "___VARIABLE_productName___Interactor.h" 10 | #import 11 | #import "___VARIABLE_productName___InteractorDataSource.h" 12 | #import "___VARIABLE_productName___InteractorEventHandler.h" 13 | 14 | @interface ___VARIABLE_productName___Interactor () 15 | @property (nonatomic, weak) id<___VARIABLE_productName___InteractorDataSource> dataSource; 16 | @property (nonatomic, weak) id<___VARIABLE_productName___InteractorEventHandler> eventHandler; 17 | @end 18 | 19 | @implementation ___VARIABLE_productName___Interactor 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIView/___FILEBASENAME___InteractorDataSource.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___InteractorDataSource 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIView/___FILEBASENAME___InteractorEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___InteractorEventHandler 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIView/___FILEBASENAME___InteractorInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___InteractorInput 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIView/___FILEBASENAME___RouterInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___RouterInput 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIView/___FILEBASENAME___View.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | #import 11 | #import "___VARIABLE_productName___ViewInput.h" 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface ___VARIABLE_productName___View : UIView 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIView/___FILEBASENAME___ViewDataSource.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___ViewDataSource 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIView/___FILEBASENAME___ViewEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol ___VARIABLE_productName___ViewEventHandler 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIView/___FILEBASENAME___ViewInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @protocol ___VARIABLE_productName___ViewInput 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIView/___FILEBASENAME___ViewPresenter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | #import 9 | #import 10 | #import "___VARIABLE_productName___ViewEventHandler.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface ___VARIABLE_productName___ViewPresenter : NSObject 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIView/___FILEBASENAME___Wireframe.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | #import 11 | #import "___VARIABLE_productName___WireframeInput.h" 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface ___VARIABLE_productName___Wireframe : NSObject 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIView/___FILEBASENAME___Wireframe.m: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import "___VARIABLE_productName___Wireframe.h" 10 | #import 11 | #import 12 | 13 | @interface ___VARIABLE_productName___Wireframe () 14 | @property (nonatomic, weak) id view; 15 | @end 16 | 17 | @implementation ___VARIABLE_productName___Wireframe 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIView/___FILEBASENAME___WireframeInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___WireframeInput 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewController/___FILEBASENAME___Builder.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ZIKTViperViewPrivate,___VARIABLE_productName___RouterInput; 14 | @interface ___VARIABLE_productName___Builder : NSObject 15 | 16 | ///Change this method, add your arguments for initializing the module 17 | + (UIViewController *)viewControllerWithRouter:(id<___VARIABLE_productName___RouterInput>)router; 18 | + (void)buildView:(id)view router:(id<___VARIABLE_productName___RouterInput>)router; 19 | 20 | @end 21 | 22 | NS_ASSUME_NONNULL_END 23 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewController/___FILEBASENAME___Interactor.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | #import 9 | #import 10 | #import "___VARIABLE_productName___InteractorInput.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol ___VARIABLE_productName___InteractorDataSource; 15 | @protocol ___VARIABLE_productName___InteractorEventHandler; 16 | @interface ___VARIABLE_productName___Interactor : NSObject 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewController/___FILEBASENAME___Interactor.m: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import "___VARIABLE_productName___Interactor.h" 10 | #import 11 | #import "___VARIABLE_productName___InteractorDataSource.h" 12 | #import "___VARIABLE_productName___InteractorEventHandler.h" 13 | 14 | @interface ___VARIABLE_productName___Interactor () 15 | @property (nonatomic, weak) id<___VARIABLE_productName___InteractorDataSource> dataSource; 16 | @property (nonatomic, weak) id<___VARIABLE_productName___InteractorEventHandler> eventHandler; 17 | @end 18 | 19 | @implementation ___VARIABLE_productName___Interactor 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewController/___FILEBASENAME___InteractorDataSource.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___InteractorDataSource 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewController/___FILEBASENAME___InteractorEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___InteractorEventHandler 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewController/___FILEBASENAME___InteractorInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___InteractorInput 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewController/___FILEBASENAME___RouterInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___RouterInput 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewController/___FILEBASENAME___ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | #import 11 | #import "___VARIABLE_productName___ViewInput.h" 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface ___VARIABLE_productName___ViewController : UIViewController 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewController/___FILEBASENAME___ViewDataSource.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___ViewDataSource 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewController/___FILEBASENAME___ViewEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol ___VARIABLE_productName___ViewEventHandler 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewController/___FILEBASENAME___ViewInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @protocol ___VARIABLE_productName___ViewInput 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewController/___FILEBASENAME___ViewPresenter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | #import 9 | #import 10 | #import "___VARIABLE_productName___ViewEventHandler.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface ___VARIABLE_productName___ViewPresenter : NSObject 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewController/___FILEBASENAME___Wireframe.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | #import 11 | #import "___VARIABLE_productName___WireframeInput.h" 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface ___VARIABLE_productName___Wireframe : NSObject 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewController/___FILEBASENAME___Wireframe.m: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import "___VARIABLE_productName___Wireframe.h" 10 | #import 11 | #import 12 | 13 | @interface ___VARIABLE_productName___Wireframe () 14 | @property (nonatomic, weak) id view; 15 | @property (nonatomic, strong) id router; 16 | @end 17 | 18 | @implementation ___VARIABLE_productName___Wireframe 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewController/___FILEBASENAME___WireframeInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___WireframeInput 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewControllerseparate/Builder/___FILEBASENAME___Builder.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ZIKTViperViewPrivate,___VARIABLE_productName___RouterInput; 14 | @interface ___VARIABLE_productName___Builder : NSObject 15 | 16 | ///Change this method, add your arguments for initializing the module 17 | + (UIViewController *)viewControllerWithRouter:(id<___VARIABLE_productName___RouterInput>)router; 18 | + (void)buildView:(id)view router:(id<___VARIABLE_productName___RouterInput>)router; 19 | 20 | @end 21 | 22 | NS_ASSUME_NONNULL_END 23 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewControllerseparate/Interactor/___FILEBASENAME___Interactor.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | #import 9 | #import 10 | #import "___VARIABLE_productName___InteractorInput.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol ___VARIABLE_productName___InteractorDataSource; 15 | @protocol ___VARIABLE_productName___InteractorEventHandler; 16 | @interface ___VARIABLE_productName___Interactor : NSObject 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewControllerseparate/Interactor/___FILEBASENAME___Interactor.m: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import "___VARIABLE_productName___Interactor.h" 10 | #import 11 | #import "___VARIABLE_productName___InteractorDataSource.h" 12 | #import "___VARIABLE_productName___InteractorEventHandler.h" 13 | 14 | @interface ___VARIABLE_productName___Interactor () 15 | @property (nonatomic, weak) id<___VARIABLE_productName___InteractorDataSource> dataSource; 16 | @property (nonatomic, weak) id<___VARIABLE_productName___InteractorEventHandler> eventHandler; 17 | @end 18 | 19 | @implementation ___VARIABLE_productName___Interactor 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewControllerseparate/Interactor/___FILEBASENAME___InteractorDataSource.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___InteractorDataSource 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewControllerseparate/Interactor/___FILEBASENAME___InteractorEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___InteractorEventHandler 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewControllerseparate/Interactor/___FILEBASENAME___InteractorInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___InteractorInput 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewControllerseparate/Presenter/___FILEBASENAME___ViewPresenter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | #import 9 | #import 10 | #import "___VARIABLE_productName___ViewEventHandler.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface ___VARIABLE_productName___ViewPresenter : NSObject 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewControllerseparate/View/___FILEBASENAME___ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | #import 11 | #import "___VARIABLE_productName___ViewInput.h" 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface ___VARIABLE_productName___ViewController : UIViewController 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewControllerseparate/View/___FILEBASENAME___ViewDataSource.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___ViewDataSource 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewControllerseparate/View/___FILEBASENAME___ViewEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol ___VARIABLE_productName___ViewEventHandler 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewControllerseparate/View/___FILEBASENAME___ViewInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @protocol ___VARIABLE_productName___ViewInput 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewControllerseparate/Wireframe/___FILEBASENAME___RouterInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___RouterInput 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewControllerseparate/Wireframe/___FILEBASENAME___Wireframe.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | #import 11 | #import "___VARIABLE_productName___WireframeInput.h" 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface ___VARIABLE_productName___Wireframe : NSObject 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewControllerseparate/Wireframe/___FILEBASENAME___Wireframe.m: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import "___VARIABLE_productName___Wireframe.h" 10 | #import 11 | #import 12 | 13 | @interface ___VARIABLE_productName___Wireframe () 14 | @property (nonatomic, weak) id view; 15 | @property (nonatomic, strong) id router; 16 | @end 17 | 18 | @implementation ___VARIABLE_productName___Wireframe 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewControllerseparate/Wireframe/___FILEBASENAME___WireframeInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___WireframeInput 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewseparate/Builder/___FILEBASENAME___Builder.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ZIKTViperViewPrivate,___VARIABLE_productName___RouterInput; 14 | @interface ___VARIABLE_productName___Builder : NSObject 15 | 16 | ///Change this method, add your arguments for initializing the module 17 | + (UIView *)viewWithRouteSource:(nullable UIViewController *)routeSource router:(id<___VARIABLE_productName___RouterInput>)router; 18 | + (void)buildView:(id)view 19 | routeSource:(nullable UIViewController *)routeSource 20 | router:(id<___VARIABLE_productName___RouterInput>)router; 21 | 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewseparate/Interactor/___FILEBASENAME___Interactor.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | #import 9 | #import 10 | #import "___VARIABLE_productName___InteractorInput.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol ___VARIABLE_productName___InteractorDataSource; 15 | @protocol ___VARIABLE_productName___InteractorEventHandler; 16 | @interface ___VARIABLE_productName___Interactor : NSObject 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewseparate/Interactor/___FILEBASENAME___Interactor.m: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import "___VARIABLE_productName___Interactor.h" 10 | #import 11 | #import "___VARIABLE_productName___InteractorDataSource.h" 12 | #import "___VARIABLE_productName___InteractorEventHandler.h" 13 | 14 | @interface ___VARIABLE_productName___Interactor () 15 | @property (nonatomic, weak) id<___VARIABLE_productName___InteractorDataSource> dataSource; 16 | @property (nonatomic, weak) id<___VARIABLE_productName___InteractorEventHandler> eventHandler; 17 | @end 18 | 19 | @implementation ___VARIABLE_productName___Interactor 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewseparate/Interactor/___FILEBASENAME___InteractorDataSource.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___InteractorDataSource 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewseparate/Interactor/___FILEBASENAME___InteractorEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___InteractorEventHandler 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewseparate/Interactor/___FILEBASENAME___InteractorInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___InteractorInput 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewseparate/Presenter/___FILEBASENAME___ViewPresenter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | #import 9 | #import 10 | #import "___VARIABLE_productName___ViewEventHandler.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface ___VARIABLE_productName___ViewPresenter : NSObject 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewseparate/View/___FILEBASENAME___View.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | #import 11 | #import "___VARIABLE_productName___ViewInput.h" 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface ___VARIABLE_productName___View : UIView 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewseparate/View/___FILEBASENAME___ViewDataSource.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___ViewDataSource 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewseparate/View/___FILEBASENAME___ViewEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol ___VARIABLE_productName___ViewEventHandler 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewseparate/View/___FILEBASENAME___ViewInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @protocol ___VARIABLE_productName___ViewInput 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewseparate/Wireframe/___FILEBASENAME___RouterInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___RouterInput 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewseparate/Wireframe/___FILEBASENAME___Wireframe.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | #import 11 | #import "___VARIABLE_productName___WireframeInput.h" 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface ___VARIABLE_productName___Wireframe : NSObject 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewseparate/Wireframe/___FILEBASENAME___Wireframe.m: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import "___VARIABLE_productName___Wireframe.h" 10 | #import 11 | #import 12 | 13 | @interface ___VARIABLE_productName___Wireframe () 14 | @property (nonatomic, weak) id view; 15 | @end 16 | 17 | @implementation ___VARIABLE_productName___Wireframe 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /Templates/ZIKTViperModule.xctemplate/UIViewseparate/Wireframe/___FILEBASENAME___WireframeInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___WireframeInput 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/TemplateIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Templates/ZIKViperModule.xctemplate/TemplateIcon.png -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/TemplateIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zuikyo/ZIKViper/8f66ca757c247b3528869cfacb1ee70c790dff2b/Templates/ZIKViperModule.xctemplate/TemplateIcon@2x.png -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIView/___FILEBASENAME___Interactor.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | #import 9 | #import 10 | #import "___VARIABLE_productName___InteractorInput.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol ___VARIABLE_productName___InteractorDataSource; 15 | @protocol ___VARIABLE_productName___InteractorEventHandler; 16 | @interface ___VARIABLE_productName___Interactor : NSObject 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIView/___FILEBASENAME___Interactor.m: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import "___VARIABLE_productName___Interactor.h" 10 | #import 11 | #import "___VARIABLE_productName___InteractorDataSource.h" 12 | #import "___VARIABLE_productName___InteractorEventHandler.h" 13 | 14 | @interface ___VARIABLE_productName___Interactor () 15 | @property (nonatomic, weak) id<___VARIABLE_productName___InteractorDataSource> dataSource; 16 | @property (nonatomic, weak) id<___VARIABLE_productName___InteractorEventHandler> eventHandler; 17 | @end 18 | 19 | @implementation ___VARIABLE_productName___Interactor 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIView/___FILEBASENAME___InteractorDataSource.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___InteractorDataSource 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIView/___FILEBASENAME___InteractorEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___InteractorEventHandler 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIView/___FILEBASENAME___InteractorInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___InteractorInput 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIView/___FILEBASENAME___View.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | #import 11 | #import "___VARIABLE_productName___ViewInput.h" 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface ___VARIABLE_productName___View : UIView 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIView/___FILEBASENAME___ViewDataSource.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___ViewDataSource 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIView/___FILEBASENAME___ViewEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol ___VARIABLE_productName___ViewEventHandler 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIView/___FILEBASENAME___ViewInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | #import 9 | //#import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | //You can use ZIKViewRoutable to make ___VARIABLE_productName___ViewInput routable 14 | 15 | @protocol ___VARIABLE_productName___ViewInput 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIView/___FILEBASENAME___ViewPresenter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | #import 9 | #import 10 | #import "___VARIABLE_productName___ViewEventHandler.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface ___VARIABLE_productName___ViewPresenter : NSObject 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIView/___FILEBASENAME___ViewRouter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | /* 14 | //Create ___VARIABLE_productName___ConfigInput.h file for your configuration 15 | // if this viewController need custom arguments to initialize, use a custom view configuration to require those arguments 16 | @interface ___VARIABLE_productName___ViewRouteConfiguration : ZIKViewRouteConfiguration 17 | @property (nonatomic, strong) id argument; 18 | @end 19 | */ 20 | 21 | @interface ___VARIABLE_productName___ViewRouter : ZIKViewRouter 22 | 23 | @end 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewController/___FILEBASENAME___Interactor.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | #import 9 | #import 10 | #import "___VARIABLE_productName___InteractorInput.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol ___VARIABLE_productName___InteractorDataSource; 15 | @protocol ___VARIABLE_productName___InteractorEventHandler; 16 | @interface ___VARIABLE_productName___Interactor : NSObject 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewController/___FILEBASENAME___Interactor.m: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import "___VARIABLE_productName___Interactor.h" 10 | #import 11 | #import "___VARIABLE_productName___InteractorDataSource.h" 12 | #import "___VARIABLE_productName___InteractorEventHandler.h" 13 | 14 | @interface ___VARIABLE_productName___Interactor () 15 | @property (nonatomic, weak) id<___VARIABLE_productName___InteractorDataSource> dataSource; 16 | @property (nonatomic, weak) id<___VARIABLE_productName___InteractorEventHandler> eventHandler; 17 | @end 18 | 19 | @implementation ___VARIABLE_productName___Interactor 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewController/___FILEBASENAME___InteractorDataSource.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___InteractorDataSource 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewController/___FILEBASENAME___InteractorEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___InteractorEventHandler 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewController/___FILEBASENAME___InteractorInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___InteractorInput 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewController/___FILEBASENAME___ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | #import 11 | #import "___VARIABLE_productName___ViewInput.h" 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface ___VARIABLE_productName___ViewController : UIViewController 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewController/___FILEBASENAME___ViewDataSource.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___ViewDataSource 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewController/___FILEBASENAME___ViewEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol ___VARIABLE_productName___ViewEventHandler 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewController/___FILEBASENAME___ViewInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | #import 9 | //#import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | //You can use ZIKViewRoutable to make ___VARIABLE_productName___ViewInput routable 14 | 15 | @protocol ___VARIABLE_productName___ViewInput 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewController/___FILEBASENAME___ViewPresenter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | #import 9 | #import 10 | #import "___VARIABLE_productName___ViewEventHandler.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface ___VARIABLE_productName___ViewPresenter : NSObject 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewController/___FILEBASENAME___ViewRouter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | /* 14 | //Create ___VARIABLE_productName___ConfigInput.h file for your configuration 15 | // if this viewController need custom arguments to initialize, use a custom view configuration to require those arguments 16 | @interface ___VARIABLE_productName___ViewRouteConfiguration : ZIKViewRouteConfiguration 17 | @property (nonatomic, strong) id argument; 18 | @end 19 | */ 20 | 21 | @interface ___VARIABLE_productName___ViewRouter : ZIKViewRouter 22 | 23 | @end 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewControllerseparate/Interactor/___FILEBASENAME___Interactor.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | #import 9 | #import 10 | #import "___VARIABLE_productName___InteractorInput.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol ___VARIABLE_productName___InteractorDataSource; 15 | @protocol ___VARIABLE_productName___InteractorEventHandler; 16 | @interface ___VARIABLE_productName___Interactor : NSObject 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewControllerseparate/Interactor/___FILEBASENAME___Interactor.m: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import "___VARIABLE_productName___Interactor.h" 10 | #import 11 | #import "___VARIABLE_productName___InteractorDataSource.h" 12 | #import "___VARIABLE_productName___InteractorEventHandler.h" 13 | 14 | @interface ___VARIABLE_productName___Interactor () 15 | @property (nonatomic, weak) id<___VARIABLE_productName___InteractorDataSource> dataSource; 16 | @property (nonatomic, weak) id<___VARIABLE_productName___InteractorEventHandler> eventHandler; 17 | @end 18 | 19 | @implementation ___VARIABLE_productName___Interactor 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewControllerseparate/Interactor/___FILEBASENAME___InteractorDataSource.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___InteractorDataSource 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewControllerseparate/Interactor/___FILEBASENAME___InteractorEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___InteractorEventHandler 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewControllerseparate/Interactor/___FILEBASENAME___InteractorInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___InteractorInput 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewControllerseparate/Presenter/___FILEBASENAME___ViewPresenter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | #import 9 | #import 10 | #import "___VARIABLE_productName___ViewEventHandler.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface ___VARIABLE_productName___ViewPresenter : NSObject 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewControllerseparate/Router/___FILEBASENAME___ViewRouter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | /* 14 | //Create ___VARIABLE_productName___ConfigInput.h file for your configuration 15 | // if this viewController need custom arguments to initialize, use a custom view configuration to require those arguments 16 | @interface ___VARIABLE_productName___ViewRouteConfiguration : ZIKViewRouteConfiguration 17 | @property (nonatomic, strong) id argument; 18 | @end 19 | */ 20 | 21 | @interface ___VARIABLE_productName___ViewRouter : ZIKViewRouter 22 | 23 | @end 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewControllerseparate/View/___FILEBASENAME___ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | #import 11 | #import "___VARIABLE_productName___ViewInput.h" 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface ___VARIABLE_productName___ViewController : UIViewController 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewControllerseparate/View/___FILEBASENAME___ViewDataSource.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___ViewDataSource 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewControllerseparate/View/___FILEBASENAME___ViewEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol ___VARIABLE_productName___ViewEventHandler 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewControllerseparate/View/___FILEBASENAME___ViewInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | #import 9 | //#import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | //You can use ZIKViewRoutable to make ___VARIABLE_productName___ViewInput routable 14 | 15 | @protocol ___VARIABLE_productName___ViewInput 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewseparate/Interactor/___FILEBASENAME___Interactor.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | #import 9 | #import 10 | #import "___VARIABLE_productName___InteractorInput.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol ___VARIABLE_productName___InteractorDataSource; 15 | @protocol ___VARIABLE_productName___InteractorEventHandler; 16 | @interface ___VARIABLE_productName___Interactor : NSObject 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewseparate/Interactor/___FILEBASENAME___Interactor.m: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import "___VARIABLE_productName___Interactor.h" 10 | #import 11 | #import "___VARIABLE_productName___InteractorDataSource.h" 12 | #import "___VARIABLE_productName___InteractorEventHandler.h" 13 | 14 | @interface ___VARIABLE_productName___Interactor () 15 | @property (nonatomic, weak) id<___VARIABLE_productName___InteractorDataSource> dataSource; 16 | @property (nonatomic, weak) id<___VARIABLE_productName___InteractorEventHandler> eventHandler; 17 | @end 18 | 19 | @implementation ___VARIABLE_productName___Interactor 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewseparate/Interactor/___FILEBASENAME___InteractorDataSource.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___InteractorDataSource 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewseparate/Interactor/___FILEBASENAME___InteractorEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___InteractorEventHandler 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewseparate/Interactor/___FILEBASENAME___InteractorInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___InteractorInput 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewseparate/Presenter/___FILEBASENAME___ViewPresenter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | #import 9 | #import 10 | #import "___VARIABLE_productName___ViewEventHandler.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface ___VARIABLE_productName___ViewPresenter : NSObject 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewseparate/Router/___FILEBASENAME___ViewRouter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | /* 14 | //Create ___VARIABLE_productName___ConfigInput.h file for your configuration 15 | // if this viewController need custom arguments to initialize, use a custom view configuration to require those arguments 16 | @interface ___VARIABLE_productName___ViewRouteConfiguration : ZIKViewRouteConfiguration 17 | @property (nonatomic, strong) id argument; 18 | @end 19 | */ 20 | 21 | @interface ___VARIABLE_productName___ViewRouter : ZIKViewRouter 22 | 23 | @end 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewseparate/View/___FILEBASENAME___View.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | #import 11 | #import "___VARIABLE_productName___ViewInput.h" 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface ___VARIABLE_productName___View : UIView 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewseparate/View/___FILEBASENAME___ViewDataSource.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ___VARIABLE_productName___ViewDataSource 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewseparate/View/___FILEBASENAME___ViewEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | 9 | #import 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol ___VARIABLE_productName___ViewEventHandler 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Templates/ZIKViperModule.xctemplate/UIViewseparate/View/___FILEBASENAME___ViewInput.h: -------------------------------------------------------------------------------- 1 | // 2 | // ___FILENAME___ 3 | // ___PROJECTNAME___ 4 | // 5 | // Created by ___FULLUSERNAME___ on ___DATE___. 6 | //___COPYRIGHT___ 7 | // 8 | #import 9 | //#import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | //You can use ZIKViewRoutable to make ___VARIABLE_productName___ViewInput routable 14 | 15 | @protocol ___VARIABLE_productName___ViewInput 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /ZIKTViper.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | 3 | s.name = "ZIKTViper" 4 | s.version = "1.0" 5 | s.summary = "Thorough iOS VIPER implementation." 6 | s.description = <<-DESC 7 | Thorough iOS VIPER implementation, consisting of view, presenter, interactor, wireframe, router, adapter. 8 | DESC 9 | s.homepage = "https://github.com/Zuikyo/ZIKRouter" 10 | s.license = "MIT" 11 | s.author = { "Zuikyo" => "zuilongzhizhu@gmail.com" } 12 | 13 | s.platform = :ios, "7.0" 14 | s.ios.deployment_target = "7.0" 15 | 16 | s.source = { :git => "https://github.com/Zuikyo/ZIKViper.git", :tag => "#{s.version}" } 17 | 18 | s.source_files = "ZIKTViper/*.{h,m}" 19 | 20 | s.frameworks = "Foundation", "UIKit" 21 | s.requires_arc = true 22 | 23 | end 24 | -------------------------------------------------------------------------------- /ZIKTViper.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ZIKTViper/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | $(CURRENT_PROJECT_VERSION) 21 | NSPrincipalClass 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /ZIKTViper/NSObject+ZIKTViperAssembly.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSObject+ZIKTViperAssembly.h 3 | // ZIKTViper 4 | // 5 | // Created by zuik on 2017/8/10. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol ZIKTViperViewPrivate,ZIKTViperPresenterPrivate,ZIKTViperInteractorPrivate,ZIKTViperWireframePrivate,ZIKTViperRouter; 12 | @interface NSObject (ZIKTViperAssembly) 13 | 14 | + (void)assembleViperForView:(id)view 15 | presenter:(id)presenter 16 | interactor:(id)interactor 17 | wireframe:(id)wireframe 18 | router:(id)router; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /ZIKTViper/UIViewController+ZIKTViperRouter.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+ZIKTViperRouter.h 3 | // ZIKTViper 4 | // 5 | // Created by zuik on 2017/8/3. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIViewController (ZIKTViperRouter) 12 | - (BOOL)ZIK_isRemoving; 13 | @end 14 | -------------------------------------------------------------------------------- /ZIKTViper/UIViewController+ZIKTViperRouter.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+ZIKTViperRouter.m 3 | // ZIKTViper 4 | // 5 | // Created by zuik on 2017/8/3. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import "UIViewController+ZIKTViperRouter.h" 10 | 11 | @implementation UIViewController (ZIKTViperRouter) 12 | 13 | - (BOOL)ZIK_isAppRootViewController { 14 | NSAssert([UIApplication sharedApplication].delegate.window.rootViewController, @"Can't find rootViewController"); 15 | return [UIApplication sharedApplication].delegate.window.rootViewController == self; 16 | } 17 | 18 | - (BOOL)ZIK_isRemoving { 19 | UIViewController *destination = (UIViewController *)self; 20 | UIViewController *node = destination; 21 | while (node) { 22 | if (node.isMovingFromParentViewController || 23 | (!node.parentViewController && !node.presentingViewController && ![node ZIK_isAppRootViewController])) { 24 | return YES; 25 | } else if (node.isBeingDismissed) { 26 | return YES; 27 | } else { 28 | node = node.parentViewController; 29 | continue; 30 | } 31 | break; 32 | } 33 | return NO; 34 | } 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /ZIKTViper/ZIKTViper.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTViper.h 3 | // ZIKTViper 4 | // 5 | // Created by zuik on 2017/8/11. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "ZIKTViperView.h" 11 | #import "ZIKTViperViewEventHandler.h" 12 | #import "ZIKTViperPresenter.h" 13 | #import "ZIKTViperInteractor.h" 14 | #import "ZIKTViperWireframe.h" 15 | #import "ZIKTViperRouter.h" 16 | #import "ZIKTViperViewPrivate.h" 17 | #import "ZIKTViperPresenterPrivate.h" 18 | #import "ZIKTViperInteractorPrivate.h" 19 | #import "ZIKTViperWireframePrivate.h" 20 | #import "NSObject+ZIKTViperAssembly.h" 21 | #import "UIViewController+ZIKTViperRouter.h" 22 | 23 | //! Project version number for ZIKTViper. 24 | FOUNDATION_EXPORT double ZIKTViperVersionNumber; 25 | 26 | //! Project version string for ZIKTViper. 27 | FOUNDATION_EXPORT const unsigned char ZIKTViperVersionString[]; 28 | 29 | // In this header, you should import all the public headers of your framework using statements like #import 30 | 31 | 32 | -------------------------------------------------------------------------------- /ZIKTViper/ZIKTViperInteractor.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTViperInteractor.h 3 | // ZIKTViper 4 | // 5 | // Created by zuik on 2017/5/24. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ZIKTViperInteractor 14 | @property (nonatomic, readonly, weak) id dataSource; 15 | @property (nonatomic, readonly, weak) id eventHandler; 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /ZIKTViper/ZIKTViperInteractorPrivate.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTViperInteractorPrivate.h 3 | // ZIKTViper 4 | // 5 | // Created by zuik on 2017/7/17. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import "ZIKTViperInteractor.h" 10 | 11 | @protocol ZIKTViperInteractorPrivate 12 | - (void)setEventHandler:(id)eventHandler; 13 | - (void)setDataSource:(id)dataSource; 14 | @end 15 | -------------------------------------------------------------------------------- /ZIKTViper/ZIKTViperPresenter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTViperPresenter.h 3 | // ZIKTViper 4 | // 5 | // Created by zuik on 2017/5/24. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "ZIKTViperViewEventHandler.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol ZIKTViperView; 15 | 16 | @protocol ZIKTViperPresenter 17 | ///UIViewController or UIView, conform to view protocol 18 | @property (nonatomic, readonly, weak) id view; 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /ZIKTViper/ZIKTViperPresenterPrivate.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTViperPresenterPrivate.h 3 | // ZIKTViper 4 | // 5 | // Created by zuik on 2017/7/3. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "ZIKTViperPresenter.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol ZIKTViperWireframe,ZIKTViperView,ZIKTViperInteractor; 15 | 16 | ///Private getter/setter to configure ZIKTViperPresenter. Should only be used inside presenter or assembly. 17 | @protocol ZIKTViperPresenterPrivate 18 | 19 | - (id)wireframe; 20 | - (void)setWireframe:(id)wireframe; 21 | 22 | - (void)setView:(id)view; 23 | 24 | - (id)interactor; 25 | - (void)setInteractor:(id)interactor; 26 | 27 | @end 28 | 29 | NS_ASSUME_NONNULL_END 30 | -------------------------------------------------------------------------------- /ZIKTViper/ZIKTViperRouter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTViperRouter.h 3 | // ZIKTViper 4 | // 5 | // Created by zuik on 2017/5/31. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol ZIKTViperView; 15 | @protocol ZIKTViperPresenter; 16 | @protocol ZIKTViperInteractor; 17 | 18 | @protocol ZIKTViperRouter 19 | + (void)pushViewController:(UIViewController *)destination fromViewController:(UIViewController *)source animated:(BOOL)animated; 20 | + (void)popViewController:(UIViewController *)viewController animated:(BOOL)animated; 21 | + (void)presentViewController:(UIViewController *)viewControllerToPresent fromViewController:(UIViewController *)source animated:(BOOL)animated completion:(void (^ __nullable)(void))completion; 22 | + (void)dismissViewController:(UIViewController *)viewController animated:(BOOL)animated completion:(void (^ __nullable)(void))completion; 23 | @end 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /ZIKTViper/ZIKTViperView.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTViperView.h 3 | // ZIKTViper 4 | // 5 | // Created by zuik on 2017/4/28. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ZIKTViperViewEventHandler; 14 | 15 | @protocol ZIKTViperView 16 | 17 | - (nullable UIViewController *)routeSource; 18 | @property (nonatomic, readonly, strong) id eventHandler; 19 | @optional 20 | @property (nonatomic, readonly, strong) id viewDataSource; 21 | 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /ZIKTViper/ZIKTViperViewEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTViperViewEventHandler.h 3 | // ZIKTViper 4 | // 5 | // Created by zuik on 2017/5/24. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | ///Handle event from ZIKTViperView 12 | @protocol ZIKTViperViewEventHandler 13 | 14 | @optional 15 | - (void)handleViewReady; 16 | - (void)handleViewRemoved; 17 | - (void)handleViewWillAppear:(BOOL)animated; 18 | - (void)handleViewDidAppear:(BOOL)animated; 19 | - (void)handleViewWillDisappear:(BOOL)animated; 20 | - (void)handleViewDidDisappear:(BOOL)animated; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /ZIKTViper/ZIKTViperViewPrivate.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTViperViewPrivate.h 3 | // ZIKTViper 4 | // 5 | // Created by zuik on 2017/7/3. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "ZIKTViperView.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol ZIKTViperViewEventHandler; 15 | 16 | ///Private getter/setter to configure ZIKTViperView. Should only be used inside view or assembly. 17 | @protocol ZIKTViperViewPrivate 18 | 19 | - (id)eventHandler; 20 | - (void)setEventHandler:(id)eventHandler; 21 | 22 | @optional 23 | - (id)viewDataSource; 24 | - (void)setViewDataSource:(id)viewDataSource; 25 | - (void)setRouteSource:(UIViewController *)routeSource; 26 | 27 | @end 28 | 29 | NS_ASSUME_NONNULL_END 30 | -------------------------------------------------------------------------------- /ZIKTViper/ZIKTViperWireframe.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTViperWireframe.h 3 | // ZIKTViper 4 | // 5 | // Created by zuik on 2017/8/2. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol ZIKTViperView; 12 | @protocol ZIKTViperWireframe 13 | @property (nonatomic, readonly, weak) id view; 14 | @end 15 | -------------------------------------------------------------------------------- /ZIKTViper/ZIKTViperWireframePrivate.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKTViperWireframePrivate.h 3 | // ZIKTViper 4 | // 5 | // Created by zuik on 2017/8/3. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "ZIKTViperWireframe.h" 11 | #import "ZIKTViperRouter.h" 12 | 13 | @protocol ZIKTViperWireframePrivate 14 | - (void)setView:(id)view; 15 | - (id)router; 16 | - (void)setRouter:(id)router; 17 | @end 18 | -------------------------------------------------------------------------------- /ZIKViper.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | 3 | s.name = "ZIKViper" 4 | s.version = "1.1" 5 | s.summary = "iOS VIPER implementation, relying on ZIKRouter." 6 | s.description = <<-DESC 7 | iOS VIPER implementation, relying on ZIKRouter. Designed for discovering modules and dependency injection with protocol. 8 | DESC 9 | s.homepage = "https://github.com/Zuikyo/ZIKRouter" 10 | s.license = "MIT" 11 | s.author = { "Zuikyo" => "zuilongzhizhu@gmail.com" } 12 | 13 | s.platform = :ios, "7.0" 14 | s.ios.deployment_target = "7.0" 15 | 16 | s.source = { :git => "https://github.com/Zuikyo/ZIKViper.git", :tag => "#{s.version}" } 17 | 18 | s.source_files = "ZIKViper/*.{h,m}" 19 | 20 | s.frameworks = "Foundation", "UIKit" 21 | s.requires_arc = true 22 | 23 | s.dependency "ZIKRouter", '>= 0.6' 24 | 25 | end 26 | -------------------------------------------------------------------------------- /ZIKViper.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ZIKViper/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.1 19 | CFBundleVersion 20 | $(CURRENT_PROJECT_VERSION) 21 | NSPrincipalClass 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /ZIKViper/ZIKViewRouter+ZIKViper.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKViewRouter+ZIKViper.h 3 | // ZIKViper 4 | // 5 | // Created by zuik on 2017/6/15. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ZIKViperViewPrivate; 14 | @protocol ZIKViperPresenterPrivate; 15 | @protocol ZIKViperInteractorPrivate; 16 | 17 | @interface ZIKViewRouter (ZIKViper) 18 | - (nullable ZIKViewRouter *)parentRouter; 19 | - (BOOL)isViperAssembled; 20 | + (BOOL)isViperAssembledForView:(id)view; 21 | - (void)assembleViperForView:(id)view 22 | presenter:(id)presenter 23 | interactor:(id)interactor; 24 | - (void)attachRouterForView:(id)view; 25 | @end 26 | 27 | NS_ASSUME_NONNULL_END 28 | -------------------------------------------------------------------------------- /ZIKViper/ZIKViper.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKViper.h 3 | // ZIKViper 4 | // 5 | // Created by zuik on 2017/8/11. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "ZIKViperView.h" 11 | #import "ZIKViperViewEventHandler.h" 12 | #import "ZIKViperPresenter.h" 13 | #import "ZIKViperInteractor.h" 14 | #import "ZIKViperRouter.h" 15 | #import "ZIKViperViewPrivate.h" 16 | #import "ZIKViperPresenterPrivate.h" 17 | #import "ZIKViperInteractorPrivate.h" 18 | #import "ZIKViewRouter+ZIKViper.h" 19 | 20 | //! Project version number for ZIKViper. 21 | FOUNDATION_EXPORT double ZIKViperVersionNumber; 22 | 23 | //! Project version string for ZIKViper. 24 | FOUNDATION_EXPORT const unsigned char ZIKViperVersionString[]; 25 | 26 | 27 | -------------------------------------------------------------------------------- /ZIKViper/ZIKViperInteractor.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKViperInteractor.h 3 | // ZIKViper 4 | // 5 | // Created by zuik on 2017/5/24. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ZIKViperInteractor 14 | @property (nonatomic, readonly, weak) id dataSource; 15 | @property (nonatomic, readonly, weak) id eventHandler; 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /ZIKViper/ZIKViperInteractorPrivate.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKViperInteractorPrivate.h 3 | // ZIKViper 4 | // 5 | // Created by zuik on 2017/7/17. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import "ZIKViperInteractor.h" 10 | 11 | @protocol ZIKViperInteractorPrivate 12 | - (void)setEventHandler:(id)eventHandler; 13 | - (void)setDataSource:(id)dataSource; 14 | @end 15 | -------------------------------------------------------------------------------- /ZIKViper/ZIKViperPresenter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKViperPresenter.h 3 | // ZIKViper 4 | // 5 | // Created by zuik on 2017/5/24. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "ZIKViperViewEventHandler.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @protocol ZIKViperView; 15 | 16 | @protocol ZIKViperPresenter 17 | ///UIViewController or UIView, conform to view protocol 18 | @property (nonatomic, readonly, weak) id view; 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /ZIKViper/ZIKViperPresenterPrivate.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKViperPresenterPrivate.h 3 | // ZIKViper 4 | // 5 | // Created by zuik on 2017/7/3. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "ZIKViperPresenter.h" 11 | #import "ZIKViperInteractor.h" 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | ///Private getter/setter to configure ZIKViperPresenter. Should only be used inside presenter or assembly. 16 | @protocol ZIKViperPresenterPrivate 17 | 18 | - (id)router; 19 | - (void)setRouter:(id)router; 20 | 21 | - (void)setView:(id)view; 22 | 23 | - (id)interactor; 24 | - (void)setInteractor:(id)interactor; 25 | 26 | @end 27 | 28 | NS_ASSUME_NONNULL_END 29 | -------------------------------------------------------------------------------- /ZIKViper/ZIKViperRouter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKViperRouter.h 3 | // ZIKViper 4 | // 5 | // Created by zuik on 2017/5/31. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol ZIKViperView; 12 | @protocol ZIKViperPresenter; 13 | @protocol ZIKViperInteractor; 14 | 15 | @protocol ZIKViperRouter 16 | - (void)assembleViper; 17 | - (void)assembleViperForView:(id)view 18 | presenter:(id)presenter 19 | interactor:(id)interactor; 20 | @optional 21 | @property (nonatomic, readonly, weak) id presenter; 22 | @end 23 | -------------------------------------------------------------------------------- /ZIKViper/ZIKViperView.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKViperView.h 3 | // ZIKViper 4 | // 5 | // Created by zuik on 2017/4/28. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol ZIKViperViewEventHandler; 14 | 15 | ///viper 的 view 模块 16 | @protocol ZIKViperView 17 | 18 | - (nullable UIViewController *)routeSource; 19 | @property (nonatomic, readonly, strong) id eventHandler; 20 | @optional 21 | @property (nonatomic, readonly, strong) id viewDataSource; 22 | 23 | @end 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /ZIKViper/ZIKViperViewEventHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKViperViewEventHandler.h 3 | // ZIKViper 4 | // 5 | // Created by zuik on 2017/5/24. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | ///Handle event from ZIKViperView 12 | @protocol ZIKViperViewEventHandler 13 | 14 | @optional 15 | - (void)handleViewReady; 16 | - (void)handleViewRemoved; 17 | - (void)handleViewWillAppear:(BOOL)animated; 18 | - (void)handleViewDidAppear:(BOOL)animated; 19 | - (void)handleViewWillDisappear:(BOOL)animated; 20 | - (void)handleViewDidDisappear:(BOOL)animated; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /ZIKViper/ZIKViperViewPrivate.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZIKViperViewPrivate.h 3 | // ZIKViper 4 | // 5 | // Created by zuik on 2017/7/3. 6 | // Copyright © 2017 zuik. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "ZIKViperView.h" 11 | #import "ZIKViperPresenterPrivate.h" 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @protocol ZIKViperViewEventHandler; 16 | 17 | ///Private getter/setter to configure ZIKViperView. Should only be used inside view or assembly. 18 | @protocol ZIKViperViewPrivate 19 | 20 | - (void)setEventHandler:(id)eventHandler; 21 | @optional 22 | - (void)setViewDataSource:(id)viewDataSource; 23 | 24 | @end 25 | 26 | NS_ASSUME_NONNULL_END 27 | --------------------------------------------------------------------------------