Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WhyFi 📶

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.

🚀 Features

  • 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.

🛠 Tech Stack

  • Language: Swift
  • Framework: SwiftUI
  • Platform: macOS 12.0+
  • Architecture: MVVM with Service Layer

📦 Installation & Build

  1. Clone the repository:
    git clone <repository-url>
  2. Open WhyFi.xcodeproj in Xcode.
  3. Ensure you have the necessary signing capabilities enabled (Location Services are required for SSID reading).
  4. Build and Run (⌘R).

🧩 Architecture Overview

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: NetworkStatsViewModel aggregates data from services and prepares it for the UI.
  • Views: SwiftUI views for the Menu Bar popover and specific components like SparklineGraph and MetricRow.

📝 Requirements

  • 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.

About

Native macOS Menu Bar app for real-time Wi-Fi monitoring. Visualize signal quality, jitter, and packet loss with human-readable insights. Built with SwiftUI.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages