0xWDG/NetworkMonitor
NetworkMonitor wraps NWPathMonitor into an Obervable object.
Requirements
- Swift 5.9+ (Xcode 15+)
- iOS 12.0+, iPadOS 12.0+, macOS 10.15+, tvOS 12.0+, visionOS 1.0+, watchOS 6.0+,
Installation (Pakage.swift)
dependencies: [
.package(url: "https://github.com/0xWDG/NetworkMonitor.git", branch: "main"),
],
targets: [
.target(name: "MyTarget", dependencies: [
.product(name: "NetworkMonitor", package: "NetworkMonitor"),
]),
]Installation (Xcode)
- In Xcode, open your project and navigate to File β Swift Packages β Add Package Dependency...
- Paste the repository URL (
https://github.com/0xWDG/NetworkMonitor) and click Next. - Click Finish.
Usage
import SwiftUI
import NetworkMonitor
struct ContentView: View {
@ObservedObject
private var network = NetworkMonitor()
var body: some View {
VStack {
Text("Hello!")
Text("The network status is \(network.isConnected ? "Connected" : "Disconnected")")
Text("You are using a \"\(network.isExpensive ? "Expensive" : "Normal")\" internet connection")
HStack(spacing: 0) {
Text("You are using \"")
switch (network.networkType) {
case .cellular:
Text("Celluar")
case .wifi:
Text("Wifi")
case .loopback:
Text("Loopback")
case .other:
Text("Other")
case .wiredEthernet:
Text("Wired")
default:
Text("Unknown")
}
Text("\" to connect to the internet")
}
}.task {
print(network.nwPath)
}
}
}Contact
π¦ @0xWDG π mastodon.social/@0xWDG π¦ @0xWDG π§΅ @0xWDG π wesleydegroot.nl π€ Discord
Interested learning more about Swift? Check out my blog.
Package Metadata
Repository: 0xWDG/NetworkMonitor
Homepage: https://0xwdg.github.io/NetworkMonitor/
Stars: 2
Forks: 0
Open issues: 0
Default branch: main
Primary language: swift
License: MIT
Topics: 0xwdg, networkmonitor, nwpathmonitor, obervable, swift, swiftui
README: README.md