- macOS support (macOS 10.15+) via
NWPathMonitorfrom theNetworkframework. - macOS ships both CocoaPods (
macos/connectivity_control.podspec) and Swift Package Manager (macos/connectivity_control/Package.swift) support, matching the iOS side. - CI: new
build-macosjob onmacos-latestthat runsflutter build macoson the example app to guard against native compilation regressions.
- macOS:
typereports wifi, ethernet, and other. Cellular and VPN are not reported (platform limitation —NWPathMonitorexposes no VPN interface type, and no Mac hardware has a cellular radio). - macOS
isMetered: mapped toNWPath.isExpensive || NWPath.isConstrained— covers both shared connections (e.g. iPhone tethering) and user-enabled Low Data Mode. - macOS bandwidth:
downLinkKbpsandupLinkKbpsare alwaysnull(no macOS API available).
- BREAKING:
listenToActiveNetworks()renamed toonActiveNetworksChangedstream getter. - Exported
NetworkInfoandNetworkTypefrom the barrel file — single import gives access to all public types. - Added
topicsandissue_trackerto pubspec for pub.dev discoverability.
- Android: Full support (API 24+).
- iOS: Full support (iOS 13+).
downLinkKbps/upLinkKbpsunavailable (no iOS API). VPN not reported as a separate type (platform limitation).
- Real-time network change stream (
listenToActiveNetworks) on iOS viaNWPathMonitor. isMeteredfield on iOS, mapped fromNWPath.isExpensive.isValidatedfield on iOS, mapped fromNWPath.status == .satisfied.- Proper resource cleanup on iOS via
detachFromEngine.
- Updated README to reflect full iOS platform support.
- Android: Full implementation (unchanged).
- iOS: Full implementation — both
getActiveNetworksandlistenToActiveNetworksnow supported withisMeteredandisValidatedfields populated.downLinkKbps/upLinkKbpsremain unavailable (no iOS API). VPN not reported as a separate type (platform limitation).
- Swift Package Manager (SPM) support for iOS.
- Migrated iOS source files to SPM-compatible directory structure.
- Updated podspec to reference new source paths while maintaining CocoaPods compatibility.
- Initial iOS platform support.
- iOS implementation of
getActiveNetworks, enabling retrieval of currently active network interfaces on iOS devices.
- This release intentionally exposes only the
getActiveNetworksAPI on iOS.
- Android: Full implementation using modern
ConnectivityManagerAPIs. - iOS: Partial implementation focused on active network discovery, designed to maintain Dart API consistency and enable future feature parity.
- Detect all active network interfaces (Wi-Fi, cellular, VPN) on the device.
- Real-time stream of active network changes.
- Per-network metadata including:
- Internet capability
- Validation status
- Metered / unmetered state
- Upstream and downstream bandwidth estimates.
- Android implementation using modern
ConnectivityManagerAPIs. - Flutter API designed for extensibility and future platform parity.