A dynamic mocking library for Swift that replicates backend APIs and logic for testing and prototyping.
Kakapo is a dynamic mocking library for Swift that allows developers to replicate backend APIs and logic. It enables mocking server behaviors and responses for testing and prototyping iOS applications without relying on a live backend. The library provides tools for intercepting network requests, serializing Swift objects to JSON, and managing dynamic data states.
iOS and macOS developers who need to test network-dependent code or prototype applications before backend services are available. It is particularly useful for those writing unit tests that involve network requests or building UI prototypes that require API interactions.
Developers choose Kakapo because it offers dynamic, state-aware mocking instead of static response files, allowing for more realistic testing and prototyping. Its protocol-oriented design and support for JSONAPI make it flexible and easy to integrate with existing Swift codebases.
🐤Dynamically Mock server behaviors and responses in Swift
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The Store enables creating, updating, and deleting entities to simulate backend state changes, moving beyond static responses for realistic testing and prototyping.
Protocol-oriented with Serializable and CustomSerializable allows easy integration of custom types and key transformations, such as using SnakecaseTransformer for snake_case keys.
Includes JSONAPISerializer for entities conforming to JSONAPIEntity, simplifying mocking of APIs that follow the JSONAPI specification without manual serialization.
Router system with wildcard matching lets developers register endpoints to intercept network requests and return mocked Serializable objects, compatible with standard URLSession.
Explicitly stated as not meant for App Store deployment in the roadmap, limiting use to development and testing phases with potential overhead in production-like environments.
Requires manual URLSessionConfiguration setup for libraries like Alamofire, adding complexity and potential integration issues compared to plug-and-play solutions.
Roadmap lists pending issues such as full JSON API support and reverse relationships, indicating gaps for advanced API mocking scenarios that need comprehensive compliance.