
Library detects internet connection status for Wi-Fi, Cellular, and VPN. Offers unified API for network status checks and real-time updates, supporting Android and iOS platforms.
Библиотека для определения статуса интернет-подключения (Wi-Fi, Cellular, VPN) в проектах на Compose Multiplatform для Android и iOS.
Предоставляет единый API для проверки текущего состояния сети и отслеживания изменений в реальном времени.
Добавьте зависимость из Maven Central:
sourceSets {
commonMain.dependencies {
implementation("io.github.romanmarinov.netpulse:netpulse:<version>")
}
}
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
import app.romanmarinov.netpulse.ConnectivityTypeManager
import app.romanmarinov.netpulse.factory.connectivityManagerFactory
import util.AppContextPlatform
actual fun connectivityManagerPlatform(): ConnectivityTypeManager {
val context = AppContextPlatform.get() // ваш способ получения context
return connectivityManagerFactory(context = context)
}
import app.romanmarinov.netpulse.ConnectivityTypeManager
import app.romanmarinov.netpulse.factory.connectivityManagerFactory
actual fun connectivityManagerPlatform(): ConnectivityTypeManager {
return connectivityManagerFactory()
}
val connectivityTypeManager: ConnectivityTypeManager = connectivityManagerPlatform()
var stateNetworkSync by remember { mutableStateOf<ConnectivityType?>(null) }
// Получение текущего типа подключения по кнопке
Button(onClick = { stateNetworkSync = connectivityTypeManager.getType() }) {
Text("Проверить сеть")
}
LaunchedEffect(stateNetworkSync) {
Logger.d("VPN: ${stateNetworkSync?.vpn}")
Logger.d("Wi-Fi: ${stateNetworkSync?.wifi}")
Logger.d("Cellular: ${stateNetworkSync?.cellular}")
}
val connectivityTypeManager: ConnectivityTypeManager = connectivityManagerPlatform()
var stateNetworkAsync by remember { mutableStateOf<ConnectivityType?>(null) }
LaunchedEffect(connectivityTypeManager) {
connectivityTypeManager.observeType().collectLatest { connectivityType ->
stateNetworkAsync = connectivityType
}
}
LaunchedEffect(stateNetworkAsync) {
Logger.d("VPN: ${stateNetworkAsync?.vpn}")
Logger.d("Wi-Fi: ${stateNetworkAsync?.wifi}")
Logger.d("Cellular: ${stateNetworkAsync?.cellular}")
}
Android: minSdk 24
iOS: iOS 14.1+
Apache 2.0
Библиотека для определения статуса интернет-подключения (Wi-Fi, Cellular, VPN) в проектах на Compose Multiplatform для Android и iOS.
Предоставляет единый API для проверки текущего состояния сети и отслеживания изменений в реальном времени.
Добавьте зависимость из Maven Central:
sourceSets {
commonMain.dependencies {
implementation("io.github.romanmarinov.netpulse:netpulse:<version>")
}
}
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
import app.romanmarinov.netpulse.ConnectivityTypeManager
import app.romanmarinov.netpulse.factory.connectivityManagerFactory
import util.AppContextPlatform
actual fun connectivityManagerPlatform(): ConnectivityTypeManager {
val context = AppContextPlatform.get() // ваш способ получения context
return connectivityManagerFactory(context = context)
}
import app.romanmarinov.netpulse.ConnectivityTypeManager
import app.romanmarinov.netpulse.factory.connectivityManagerFactory
actual fun connectivityManagerPlatform(): ConnectivityTypeManager {
return connectivityManagerFactory()
}
val connectivityTypeManager: ConnectivityTypeManager = connectivityManagerPlatform()
var stateNetworkSync by remember { mutableStateOf<ConnectivityType?>(null) }
// Получение текущего типа подключения по кнопке
Button(onClick = { stateNetworkSync = connectivityTypeManager.getType() }) {
Text("Проверить сеть")
}
LaunchedEffect(stateNetworkSync) {
Logger.d("VPN: ${stateNetworkSync?.vpn}")
Logger.d("Wi-Fi: ${stateNetworkSync?.wifi}")
Logger.d("Cellular: ${stateNetworkSync?.cellular}")
}
val connectivityTypeManager: ConnectivityTypeManager = connectivityManagerPlatform()
var stateNetworkAsync by remember { mutableStateOf<ConnectivityType?>(null) }
LaunchedEffect(connectivityTypeManager) {
connectivityTypeManager.observeType().collectLatest { connectivityType ->
stateNetworkAsync = connectivityType
}
}
LaunchedEffect(stateNetworkAsync) {
Logger.d("VPN: ${stateNetworkAsync?.vpn}")
Logger.d("Wi-Fi: ${stateNetworkAsync?.wifi}")
Logger.d("Cellular: ${stateNetworkAsync?.cellular}")
}
Android: minSdk 24
iOS: iOS 14.1+
Apache 2.0