A runtime-configurable local server for iOS apps that intercepts network traffic to return predefined responses for development and testing.
MMBarricade is an iOS framework that creates a runtime-configurable local server by intercepting network traffic via NSURLProtocol. It allows developers to define multiple responses for API endpoints and switch between them at runtime, simulating various server states like success, errors, or offline conditions without changing networking code.
iOS developers and QA engineers who need to test network-dependent features, edge cases, and failure scenarios during development, unit testing, integration testing, or UI testing.
Developers choose MMBarricade for its ability to simulate complex network responses on-device, its seamless integration with existing networking code, and its runtime configurability—enabling comprehensive testing without server dependencies.
Runtime configurable local server for iOS apps.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports multiple predefined responses per request that can be switched at runtime via a shake-to-present interface or programmatically, enabling easy testing of edge cases without server changes, as shown in the README's gif and code examples.
Works with NSURLSession, NSURLConnection, AFNetworking, and any library using Apple's URL Loading System, ensuring compatibility with most iOS networking code, as explicitly stated in the README overview.
Provides an in-app selection interface via MMBarricadeShakeWindow or MMBarricadeViewController, allowing developers to manually toggle responses during development, simplifying debugging workflows.
Optional integration with Facebook Tweaks lets developers manage response selections within the Tweaks UI, adding configurability for those already using Tweaks, as detailed in the Tweaks subsection.
Exclusively designed for iOS, so it cannot be used for testing network layers in cross-platform applications or other operating systems, limiting its scope compared to universal tools.
All responses must be predefined as static files or fixed errors, lacking support for dynamically generating responses based on request data, which can restrict testing of complex, parameter-dependent APIs.
Requires careful NSURLProtocol registration and build configuration management to avoid shipping with enabled barricade in App Store builds, adding overhead and potential for misconfiguration, as warned in the 'App Store Submission' section.
May fail to intercept network calls from libraries that bypass NSURLProtocol, such as those using custom URLSession configurations or low-level sockets, reducing reliability in some edge cases.