RapiDrop uses pure platform-native frameworks on each operating system to achieve high performance, low resource consumption, and native OS integration without third-party cross-platform abstractions.
- Language: Swift 6 (Strict Concurrency)
- UI: AppKit
NSStatusItem/ Menu Bar Extra with SwiftUI popover - Networking: Apple
Network.framework(NWListener,NWBrowser,NWConnection) - Security: Apple
CryptoKit(Curve25519,AES.GCM,HKDF<SHA256>) & Apple Keychain Services - Clipboard:
NSPasteboardchange count polling (400ms connected / 1500ms idle)
macos/
├── Package.swift # SPM manifest
├── package.sh # App bundle & DMG packager
├── Sources/
│ ├── App/ # AppState & App entry point
│ ├── UI/ # MenuBarView SwiftUI interface
│ ├── Clipboard/ # PasteboardMonitor & ClipItem
│ ├── Network/ # NetworkEngine & WireFrame
│ └── Security/ # CryptoEngine
└── Tests/RapiDropTests/ # Swift Testing suites
- Language: Kotlin 2.0+ / JVM 17
- UI: Jetpack Compose (Material 3)
- Service:
connectedDeviceForeground Service with Status Bar notification - Networking: Non-blocking
java.nioTCP Sockets &NsdManager - Security:
javax.crypto.Cipher+ Pure Kotlin RFC 7748Curve25519& Hardware-backed Android Keystore - Storage: Scoped Storage (
MediaStore.Downloads) viaMediaStorageHelper
android/app/src/main/java/com/prabotics/rapidrop/
├── ui/ # MainActivity, MainScreen, Components, Themes
├── service/ # SyncService, TileService, ShareActivity, BootReceiver
├── network/ # SocketClient, ClientSocketServer, WireFrame, NsdDiscovery
├── clipboard/ # MediaStorageHelper, ClipboardManagerHelper, ClipItem
├── security/ # CryptoEngine, Curve25519
└── preference/ # PreferencesManager (rapidrop_secure_prefs)
| Platform | Foundation & Token Locations | Key Visual Principles |
|---|---|---|
| macOS | macos/Sources/UI/Theme/AppTheme.swift |
Semantic system colors (AppColors), SF Pro typography hierarchy (AppTypography), standard spacing scale (AppSpacing), and native corner radii (AppRadius). |
| Android | android/app/src/main/java/com/prabotics/rapidrop/ui/theme/ (Color.kt, Type.kt, Shape.kt, Theme.kt) |
Material 3 color schemes (LightColorScheme, DarkColorScheme), dynamic color integration on Android 12+, semantic LocalStatusColors, Inter/JetBrains Mono typography tokens, and standard Spacing/TouchTarget scales. |