Viper Module Generator G version¶ ↑
Gem to generate VIPER modules to use them in your Swift projects The implementation scheme returned by this generator is hardly inspired in the example and post of Objc.io, www.objc.io/issue-13/viper.html .
Features¶ ↑
-
Generates the module in Swift
-
Ready to be installed as a gem rubygems.org/gems/vipergeng
Changelog 0.2.23¶ ↑
-
날짜 포맷을 바꿈.
Changelog 1.0.1¶ ↑
-
g command 추가.
-
generate or g 사용시 –path 인자를 지정하지 않으면 현재 폴더에 생성하도록 수정
Changelog 1.0.2¶ ↑
-
g/generate command에 –base 추가. base에는 ViewController의 base class를 지정한다. 디폴트값은 UIViewController이다.
-
ViewController 소스에 viewWill/DidAppear, viewWill/DidDisappear 추가
Viper files structure¶ ↑
.swift +-- DataManager | +-- VIPERDataManager.swift +-- Interactor | +-- VIPERInteractor.swift +-- Presenter | +-- VIPERPresenter.swift +-- ViewController | +-- VIPERViewController.swift +-- WireFrame | +-- VIPERWireFrame.swift +-- Protocols | +-- VIPERProtocols.swift
How to install vipergeng ?¶ ↑
You can install it easily as using the gem. With ruby installed in your OSX execute:
sudo gem install vipergeng
If everything were right, you should have now the vipergeng command available in your system console
How to generate a VIPER module with a given name?¶ ↑
You have just to execute the following command
–path 지정을 하지 않으면 현재 폴더에 생성.
vipergeng generate MyFirstViperModule --path=~/myproject/shared
or
vipergeng g MyFirstViperModule
Another example:
vipergeng generate MySecondViperModule --path=~/myproject/shared --author='My Name' --company='My Company' --project='project name --base=MyBaseViewController'
And then the files structure will be automatically created. Don't forget to add this folder to your project dragging it into the XCode/Appcode inspector
Developer tips¶ ↑
Update the gem¶ ↑
When the gem is updated it has to be reported to the gem repository. I followed this tutorial amaras-tech.co.uk/article/43/Creating_executable_gems that basically says that once you have your gem ready execute:
gem build vipergeng.gemspec gem install vipergeng-0.1.gem gem push vipergeng-0.1.gem
Then you'll be asked for your credentials in order to make the update in the repo (guides.rubygems.org/publishing/) ` ### Add a new template Are you interested in VIPER and you would like to contribute with this gem adding new templates? Feel free to do it. It's pretty easy. You've just to: - Create a folder inside
templates` with the name of your template - You'll have to create inside the templates in Swift (get inspired from existing templates) - Use the word VIPER where you want the name to be replaced in. - Remember to add the file viperspec.yml with the description of your template as below:
author: pepi author_email: pepibumur@gmail.com template_description: Default template with the simplest structure using VIPER updated_at: 2014-08-24
-
Report it as a PR in this repo updating the gem version in Gemspec.
VIPER 참조 사이트¶ ↑
Resources¶ ↑
-
Rspec documentation: rubydoc.info/gems/rspec-expectations/frames
-
XCode Plugins: nshipster.com/xcode-plugins/
-
XCodeProj gem (to modify project groups structure): github.com/CocoaPods/Xcodeproj
-
Thor, powerful Ruby library for command line: whatisthor.com/
-
Cocoa Design Patterns: developer.apple.com/legacy/library/documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaDesignPatterns/CocoaDesignPatterns.html
Contact¶ ↑
If you have any doubt about the gem or even if you want to make any suggestion you can do it directly to my email address, pedro@redbooth.com . You can use the issues Github page too