The guide at http://www.objc.io/issues/13-architecture/viper/#using-viper-to-build-modules was highly instructive and while none of this is groundbreaking, I thought it was well-done.
The author suggested that the glue between layers ought to be the ReactiveCocoa
library. I downloaded this via CocoaPods
but I am bit stuck. I cannot find an example of ReactiveCocoa
+ the VIPER pattern.
My question: should I a) make sure to not expose the ReactiveCocoa
classes in my interfaces, b) expose them because of their relevance, or c) not worry about it?
Compare a and b examples of my DetailsViewInteractorInputOutput.h
/* Eg A */
@protocol DetailsViewInteractorInput<NSObject>
- (void)requestDetails;
@end
/* Eg B */
@protocol DetailsViewInteractorInput<NSObject>
- (RACSignal *)requestDetails;
@end
/* Eg A */
@protocol DetailsViewInteractorOutput<NSObject>
- (void)foundDetails:(MyDetails *)details;
@end
/* Eg B */
@protocol DetailsViewInteractorOutput<NSObject>
- (RACSignal *)foundDetails;
@end