ViperC alternatives and similar libraries
Based on the "Other Xcode" category.
Alternatively, view ViperC alternatives based on common mentions on social networks and blogs.
-
Xcode Developer Disk Images
Quick fix your Xcode with the missing developer disk images. iOS, tvOS, watchOS files available. -
Sample Project
A starter project for Sample Project in Objective C. Objective C version of https://github.com/xeieshan/SwiftySampleProject -
awesome-gitignore-templates
A curated collection of useful gitignore templates for different programming languages while pushing your code to git. ๐ ๐ -
dsnip
Tool to generate (native) Xcode code snippets from all protocols/delegate methods of UIKit (UITableView, ...) -
Xcode Template Manager
DISCONTINUED. Xcode Template Manager is a Swift command line tool that helps you manage your Xcode project templates. -
Xcode Keymap for Visual Studio Code
This extension ports popular Xcode keyboard shortcuts to Visual Studio Code.
CodeRabbit: AI Code Reviews for Developers

* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of ViperC or a related project?
README
ViperC
Xcode template for VIPER Architecture for both Objective-C and Swift.
- ViperC creates modules for you when you want to use VIPER architecture in your projects. You can choose your language for the VIPER modules that will be created.
Installation
- Clone this repository
- Go to repository main folder
./install.sh ViperC
installs ViperC module for Objective-C or Swift../install.sh ViperC-Quick
installs ViperC unit tests module for Objective-C or Swift. It uses Quick and Expecta for Objective-C and Quick and Nimble for Swift../install.sh ViperC-XCTest
installs ViperC unit tests module for Objective-C or Swift. It uses default XCTest.
Template Path
You can find ViperC under /Users/USER_NAME/Library/Developer/Xcode/Templates/File Templates/ViperC/ViperC.xctemplate
Usage
VIPER Diagram
Generated Source Code
Example for a ToDO module:
Protocols
#pragma mark - WireFrameProtocol
@protocol ToDoWireframeProtocol <NSObject>
@end
#pragma mark - PresenterProtocol
@protocol ToDoPresenterProtocol <NSObject>
@end
#pragma mark - InteractorProtocol
@protocol ToDoInteractorOutputProtocol <NSObject>
@end
@protocol ToDoInteractorInputProtocol <NSObject>
- (void)setOutput:(id<ToDoInteractorOutputProtocol>)output;
- (id<ToDoInteractorOutputProtocol>)getOutputProtocol;
@end
#pragma mark - ViewProtocol
@protocol ToDoViewProtocol <NSObject>
@end
Interactor
NS_ASSUME_NONNULL_BEGIN
@interface ToDoInteractor: NSObject<ToDoInteractorInputProtocol>
@property (nonatomic, weak, nullable) id<ToDoInteractorOutputProtocol> output;
@end
NS_ASSUME_NONNULL_END
Presenter
NS_ASSUME_NONNULL_BEGIN
@interface ToDoPresenter: NSObject<ToDoInteractorOutputProtocol>
@property (nonatomic, weak, nullable) id<ToDoViewProtocol> view;
@property (nonatomic) id<ToDoInteractorInputProtocol> interactor;
@property (nonatomic, weak) id<ToDoWireframeProtocol> router;
- (instancetype)initWithInterface:(id<ToDoViewProtocol>)interface
interactor:(id<ToDoInteractorInputProtocol>)interactor
router:(id<ToDoWireframeProtocol>)router;
@end
NS_ASSUME_NONNULL_END
WireFrame
@interface ToDoRouter: NSObject<ToDoWireframeProtocol>
@property (nonatomic, weak) ToDoViewController *viewController;
+ (UIViewController *)createModule;
@end
View
NS_ASSUME_NONNULL_BEGIN
@interface ToDoViewController: UIViewController<ToDoViewProtocol>
@property (nonatomic) ToDoPresenter *presenter;
@end
NS_ASSUME_NONNULL_END
License
ViperC is released under the MIT license. See LICENSE for details.
*Note that all licence references and agreements mentioned in the ViperC README section above
are relevant to that project's source code only.