Skip to content
Go to file

Latest commit


* add a MockClient for help in testing code that makes network requests

* Regenerate xcodeproj to fix Nimble building for tests

* Create Swoosh target/product

* Simplify RequestMatcher implementations

* Adds unit tests for Swoosh's MockClient

* swiftformat

* PR Cleanup, more `MockClient` unit tests (#130)

* Fixed an issue with the `EqRequestMatcher`
* Adds `expectResponse` helper functions
* Adds unit tests around multiple requests being registered with `MockClient`

* swiftformat

* Move `MockClientSpec.swift` under `SwishTests`

Maybe this should have its own test target?

For now, they're all a part of the same target. This way, if Swish changes,
the Swoosh tests will fail on CI until they're appropriately modified.

Also, `swift test` only runs tests under `SwishTests/`, so this change
ensures CLI + CI both run Swish + Swoosh tests.

Prior to this change, Cmd+U in Xcode would run all tests, but CLI/CI only
ran tests under `SwishTests/`.

Git stats


Failed to load latest commit information.

Swish CircleCI Carthage compatible CocoaPods Compatible

Nothing but net(working).

Swish is a networking library that is particularly meant for requesting and decoding JSON via Decodable. It is protocol based, and so aims to be easy to test and customize.

Version Compatibility

Here is the current Swift compatibility breakdown:

Swift Version Swish Version
5.X >= 4.0.0
4.X >= 3.0.0
3.X > 2.0, < 3.0
2.X 1.X



Add the following to your Cartfile:

github "thoughtbot/Swish"

Then run carthage update.

Follow the current instructions in Carthage's README for up to date installation instructions.


Add the following to your Podfile:

pod 'Swish'

You will also need to make sure you're opting into using frameworks:


Then run pod install with CocoaPods 0.36 or newer.

Git Submodules

I guess you could do it this way if that's your thing.

Add this repo as a submodule, and add the Swish project file along with the dependency project files to your workspace. You can then link against Swish.framework along with the dependency frameworks for your application target.


Basic Playground

You can see an example of Swish in action via the included SwishExamples.playground.

To use that, clone this repository and run carthage bootstrap --platform iOS. When that finishes, open the Swish.xcworkspace and click the SwishExamples playground on the left.



Swish is Copyright (c) 2019 thoughtbot, inc. It is free software, and may be redistributed under the terms specified in the LICENSE file.



Swish is maintained and funded by thoughtbot, inc. The names and logos for thoughtbot are trademarks of thoughtbot, inc.

We love open source software! See our other projects or look at our product case studies and hire us to help build your iOS app.

You can’t perform that action at this time.