A lightweight, pure Swift library for implementing A/B and split testing in iOS apps without requiring an HTTP client.
ABKit is an open-source A/B testing framework specifically designed for iOS applications. It enables developers to implement split tests directly within their Swift code, allowing them to experiment with different feature versions or UI changes without relying on external HTTP-based services. The library helps teams validate hypotheses and optimize user experiences through controlled, in-app experimentation.
iOS developers and mobile engineering teams who need to conduct A/B tests or split tests within their Swift-based applications, particularly those preferring a lightweight, offline-capable solution.
Developers choose ABKit for its simplicity, pure Swift implementation, and lack of external dependencies, making it easy to integrate and control compared to heavier, cloud-based A/B testing platforms.
AB testing framework for iOS
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Built entirely in Swift, ensuring seamless compatibility with modern iOS projects and leveraging Swift's type safety, as highlighted in the README's key features.
Operates locally without requiring an HTTP client or network calls, making tests fast and reliable even offline, which is emphasized in the philosophy and usage examples.
Allows setting custom weights for each test variant, enabling precise version distribution control, as demonstrated in the split test with weighted probabilities example.
Supports running specific versions based on user attributes like age, through conditional tests, as shown in the conditional test example with user data.
Lacks integrated reporting or analytics tools, requiring developers to manually track and analyze experiment results outside the library, which is not addressed in the README.
Limited to Swift and iOS, making it unsuitable for projects that require A/B testing on other platforms, as it's a pure Swift implementation with no cross-platform support mentioned.
Experiments are defined in code, so changes require app updates, unlike cloud-based services that allow dynamic configuration remotely, a trade-off for its simplicity.