mirror of
https://github.com/sudosylabs/vnidrop.git
synced 2026-08-05 10:29:58 +02:00
Add a native SwiftUI VniDrop app (Send/Receive/Settings) talking to the Rust core via generated UniFFI Swift bindings, plus the uniffi-bindgen helper crate. iOS uses a TabView, macOS a NavigationSplitView sidebar.
32 lines
852 B
Swift
32 lines
852 B
Swift
import Foundation
|
|
|
|
/// Platform environment, ported from `Platform.kt` (`PlatformEnvironment`).
|
|
struct PlatformEnvironment {
|
|
let name: String
|
|
let appVersion: String
|
|
let defaultCoreDataDir: String
|
|
var defaultUsername: String = "Receiver"
|
|
}
|
|
|
|
/// Device info for diagnostics/about, ported from `DeviceInfo`.
|
|
struct DeviceInfo {
|
|
let deviceName: String?
|
|
let deviceModel: String?
|
|
let operatingSystem: String
|
|
let network: String?
|
|
let batteryLevel: String?
|
|
}
|
|
|
|
protocol DeviceInfoProvider {
|
|
func load() async -> DeviceInfo
|
|
}
|
|
|
|
/// Bundle of platform dependencies, ported from `AppDependencies`.
|
|
struct AppDependencies {
|
|
let environment: PlatformEnvironment
|
|
let deviceInfoProvider: DeviceInfoProvider
|
|
let fileSystemService: FileSystemService
|
|
let notificationService: LocalNotificationService
|
|
let externalInvitations: ExternalInvitationController
|
|
}
|