abdullahselek / Viperc
Licence: mit
Xcode template for VIPER Architecture for both Objective-C and Swift.
Stars: ✭ 75
Programming Languages
swift
15916 projects
Projects that are alternatives of or similar to Viperc
Swift Viper Module
Xcode template for VIPER Architecture written in Swift 4
Stars: ✭ 527 (+602.67%)
Mutual labels: viper
Viper
[WIP] A Pythonesque language with a design that focuses on efficiency and expressiveness. Compiles to WebAssembly
Stars: ✭ 23 (-69.33%)
Mutual labels: viper
Ocmockito
Mockito for Objective-C: creation, verification and stubbing of mock objects
Stars: ✭ 972 (+1196%)
Mutual labels: xctest
Ochamcrest
Hamcrest for Objective-C: Powerful, combinable, extensible matchers for verification
Stars: ✭ 701 (+834.67%)
Mutual labels: xctest
Ios Architecture
A collection of iOS architectures - MVC, MVVM, MVVM+RxSwift, VIPER, RIBs and many others
Stars: ✭ 901 (+1101.33%)
Mutual labels: viper
Xctesthtmlreport
Xcode-like HTML report for Unit and UI Tests
Stars: ✭ 489 (+552%)
Mutual labels: xctest
Xctestextensions
XCTestExtensions is a Swift extension that provides convenient assertions for writing Unit Test.
Stars: ✭ 19 (-74.67%)
Mutual labels: xctest
Rx.observe
Transform any method to an Rx Observable ! (VIPER)
Stars: ✭ 34 (-54.67%)
Mutual labels: viper
Go Gin Api
基于 Gin 进行模块化设计的 API 框架,封装了常用功能,使用简单,致力于进行快速的业务研发。比如,支持 cors 跨域、jwt 签名验证、zap 日志收集、panic 异常捕获、trace 链路追踪、prometheus 监控指标、swagger 文档生成、viper 配置文件解析、gorm 数据库组件、gormgen 代码生成工具、graphql 查询语言、errno 统一定义错误码、gRPC 的使用 等等。
Stars: ✭ 730 (+873.33%)
Mutual labels: viper
Pxctest
Execute tests in parallel on multiple iOS Simulators
Stars: ✭ 800 (+966.67%)
Mutual labels: xctest
Replacer
An easy-to-use library to stub HTTP requests using URLSession and to swizzle methods
Stars: ✭ 30 (-60%)
Mutual labels: xctest
Ios Viper Architecture
This repository contains a detailed sample app that implements VIPER architecture in iOS using libraries and frameworks like Alamofire, AlamofireImage, PKHUD, CoreData etc.
Stars: ✭ 578 (+670.67%)
Mutual labels: viper
Vipera
Project is now called Swift template, check the link ➡️
Stars: ✭ 57 (-24%)
Mutual labels: viper
Modelassistant
Elegant library to manage the interactions between view and model in Swift
Stars: ✭ 26 (-65.33%)
Mutual labels: viper
Rgviperchat
An iOS chat app written following a VIPER architecture and BDD
Stars: ✭ 65 (-13.33%)
Mutual labels: viper
Uitestingexample
Example code from my blog post about UI testing
Stars: ✭ 57 (-24%)
Mutual labels: xctest
Viper Templates
Swift Xcode templates for creating VIPER architecture stacks
Stars: ✭ 33 (-56%)
Mutual labels: viper
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 the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].