I'm new to Moya, and I want to use it for my networking API, but I don't want RxSwift or ReactiveSwift or any of the rest of the many reactive libraries that are being pulled down by Carthage. Are those things required?
Hey @JetForMe! This is a good one. We do not require you to use any reactive library at all. Now, you still download & build these while installing Moya with Carthage... because of how Carthage works. It builds all the schemes that are marked public.
There were lots of threads about this topic on Carthage repo (https://github.com/Carthage/Carthage/pull/1990, https://github.com/Carthage/Carthage/issues/2529 and more), but in short there is no option to exclude/include specific schemes and so Carthage builds everything. I think @Dschee has built a new dependency manager for this specific scenario that we also support (see Accio section).
Ah, well, it seems the way Moya is structured, it requires all those additional dependencies be downloaded. I see that using CocoaPods you have three options (according to the readme), perhaps Moya could be built as multiple Frameworks, so the core Moya can be set up with fewer external dependencies.
PromiseKit does this, for example. You can get the core PromiseKit library, and then you can add on PK extensions for Alamofire and others.
Hey @JetForMe, this topic on Carthage support has been discussed multiple times:
(and probably in some other issues I didn't find)
Our conclusion is that the actual problem is on Carthage side, and they made it clear multiple times that including/excluding schemes won't be supported.
We could work around this limitation with the suggestion you gave, but that adds more complexity on our side and, unless someone else from @Moya/core-team changed their view, is not something we want to take.
Fair enough. I've decided that's too much baggage, so I'll stick to PromiseKit and Alamofire.
Most helpful comment
Hey @JetForMe, this topic on Carthage support has been discussed multiple times:
1125
345
215
169
(and probably in some other issues I didn't find)
Our conclusion is that the actual problem is on Carthage side, and they made it clear multiple times that including/excluding schemes won't be supported.
We could work around this limitation with the suggestion you gave, but that adds more complexity on our side and, unless someone else from @Moya/core-team changed their view, is not something we want to take.