Quilon runs on Windows, iOS, and Android. Each platform has its own clipboard APIs, background processing rules, and security models. Making them work together seamlessly was one of our biggest engineering challenges.
The Windows Challenge: Background Access
On Windows, we built Quilon using Electron, which gives us full access to system APIs. The app runs in the system tray and monitors clipboard changes in real-time using native Win32 APIs.
The challenge? Detecting clipboard changes without polling. We use clipboard format listeners that notify us immediately when the clipboard contents change, keeping CPU usage near zero when idle.
The iOS Challenge: Background Restrictions
iOS is notoriously restrictive about background processing. Apps can't just run forever monitoring the clipboard — Apple designed it this way for battery life and privacy.
Our solution involves multiple approaches:
- Share Extension: Users can share content directly to Quilon from any app
- Keyboard Extension: Quick access to recent clips while typing
- Background App Refresh: Periodic syncs when iOS allows
- Push Notifications: Silent pushes to wake the app for incoming clips
It's not as seamless as Windows, but it's the best possible experience within iOS's constraints — and it respects your battery.
The Android Challenge: Fragmentation
Android gives us more freedom than iOS, but comes with its own challenge: fragmentation. Different manufacturers modify Android differently, and background process handling varies wildly.
Samsung, Xiaomi, Huawei, OnePlus — each has aggressive battery optimization that kills background apps. We implemented:
- Foreground service with persistent notification
- Workarounds for manufacturer-specific battery optimizations
- Accessibility service option for clipboard monitoring
- Firebase Cloud Messaging for reliable push delivery
Unified Protocol
Despite the platform differences, all Quilon clients speak the same protocol. Our WebSocket-based sync layer handles:
- Device authentication and pairing
- Encrypted payload transmission
- Presence detection (knowing which devices are online)
- Automatic reconnection and message queuing
This means a clip copied on Windows arrives on iOS and Android simultaneously, with the same encryption and the same format — whether it's text, an image, or a URL.
Image Handling Across Platforms
Images were particularly tricky. Each platform represents images differently:
- Windows uses DIB/DIBV5 formats in the clipboard
- iOS uses UIImage with various backing stores
- Android uses Bitmap with different color spaces
We normalize everything to PNG for transmission, then convert back to the native format on the receiving device. This ensures screenshots and images look identical everywhere.
Lessons Learned
Cross-platform development is hard, but not impossible. The key is understanding each platform's constraints and working within them, rather than fighting against them. Users don't care about technical limitations — they just want it to work.
With Quilon, we've made it work.