├── .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