afc526d6e8
- KMP проект: Kotlin 2.3.21, Compose 1.11.1, Gradle 8.13, AGP 8.13.2 - Обнаружение устройств: mDNS (JMDNS/Android NSD) + Wi-Fi Direct P2P - Передача файлов: Java Socket, стриминг чанками, SHA-256 checksum - UI: HomeScreen, SendScreen, ReceiveScreen, навигация - Защита: санитизация имён файлов (path traversal) - 65+ тестов (WireProtocol, Transfer, FileUtils, Wi-Fi Direct)
31 lines
834 B
Kotlin
31 lines
834 B
Kotlin
package com.aerotoss
|
|
|
|
import androidx.compose.runtime.*
|
|
import androidx.compose.ui.window.Window
|
|
import androidx.compose.ui.window.application
|
|
import com.aerotoss.core.AeroTossManager
|
|
import com.aerotoss.discovery.JmdnsDiscovery
|
|
import com.aerotoss.transfer.DesktopFileTransferManager
|
|
import com.aerotoss.ui.App
|
|
|
|
fun main() = application {
|
|
val transferManager = remember { DesktopFileTransferManager() }
|
|
val discoveryManager = remember { JmdnsDiscovery() }
|
|
val manager = remember { AeroTossManager(discoveryManager, transferManager) }
|
|
|
|
LaunchedEffect(Unit) {
|
|
val port = transferManager.startServer(0)
|
|
manager.start(port)
|
|
}
|
|
|
|
Window(
|
|
onCloseRequest = {
|
|
manager.dispose()
|
|
exitApplication()
|
|
},
|
|
title = "AeroToss"
|
|
) {
|
|
App(manager)
|
|
}
|
|
}
|