WhyFi is a macOS Menu Bar application that monitors your Wi-Fi connection quality in real-time. It translates complex technical metrics like RSSI, Jitter, and Packet Loss into human-readable insights, helping you understand why your internet might be slow or unstable.
- Real-time Monitoring: Constantly tracks connection health.
- Menu Bar Icon:
- 🟢 Normal: Standard Wi-Fi icon.
- 🟠 Warning: Orange icon when metrics drop below thresholds.
- 🔴 Critical: Red icon for severe issues or disconnection.
- Detailed Metrics (Popover):
- Wi-Fi Link: Link Rate, Signal Strength (RSSI), Noise Level.
- Router: Ping to gateway, Jitter, Packet Loss.
- Internet: Ping to public DNS (1.1.1.1/8.8.8.8), DNS lookup time.
- Visualizations: Sparkline graphs showing history for the last 60 seconds.
- Speed Test: Built-in download/upload speed test.
- Smart Advice: Context-aware suggestions when issues are detected.
- Language: Swift
- Framework: SwiftUI
- Platform: macOS 12.0+
- Architecture: MVVM with Service Layer
- Clone the repository:
git clone <repository-url>
- Open
WhyFi.xcodeprojin Xcode. - Ensure you have the necessary signing capabilities enabled (Location Services are required for SSID reading).
- Build and Run (⌘R).
The project follows a clean MVVM architecture:
- Services:
WiFiMonitor: Wraps CoreWLAN to fetch Wi-Fi interface data.NetworkProbe: Handles ICMP pings and packet loss calculation.LocationManager: Manages permissions required to read Wi-Fi SSID.
- ViewModels:
NetworkStatsViewModelaggregates data from services and prepares it for the UI. - Views: SwiftUI views for the Menu Bar popover and specific components like
SparklineGraphandMetricRow.
- macOS 12.0 or later.
- Location Services permission (required by Apple to access Wi-Fi SSID information).
Project created to demystify network issues for everyday users.