A Swift framework for robust Internet connectivity detection, including captive portal and Wi-Fi without Internet scenarios.
Connectivity is a Swift framework that provides robust Internet connectivity detection for iOS applications. It extends Apple's Reachability by identifying captive portals and Wi-Fi networks without Internet access, solving common connectivity issues in public and restricted networks. The framework offers multiple monitoring approaches including callbacks, Combine publishers, and notifications.
iOS developers building applications that require accurate network status detection, particularly those needing to handle captive portals, offline scenarios, or unreliable Wi-Fi connections.
Developers choose Connectivity over basic Reachability because it accurately detects real Internet availability rather than just interface presence, includes captive portal identification, and offers modern APIs like Combine support with flexible configuration options.
๐ Makes Internet connectivity detection more robust by detecting Wi-Fi networks without Internet access.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Accurately identifies Wi-Fi networks requiring login by replicating iOS's internal WISPr 2.0 protocol mechanism, solving a common pain point in public networks.
Supports callbacks, Combine publishers, notifications, and one-off checks, as documented in the Usage section, making it adaptable to various app architectures.
Allows customization of connectivity URLs, success thresholds, and multiple response validation modes including regex and custom validators, providing fine-grained control.
Offers optional polling for constant network awareness, with configurable intervals, essential for apps that need immediate reactions to connectivity changes.
Requires manual inclusion of Apple's Reachability files and compliance with Apple's licensing, adding complexity and potential legal considerations to integration.
The README notes Swift concurrency support is 'coming shortly,' indicating it's not yet available, which delays adoption in modern Swift projects using async/await.
Acknowledges issues with network state changes on simulator, requiring physical device testing for accurate behavior, as stated in the Known Issues section.