If you’ve ever lived deep within the Apple ecosystem, you know the magic of Continuity. The ability to copy a link on your iPhone and instantly paste it on your Mac, or use your phone’s camera as a wireless webcam, feels like living in the future. Apple built these features seamlessly into their OS, giving their users a cohesive multi-device experience.
But what if you love your Mac, but prefer an Android phone? Out of the box, you get nothing. The wall around Apple's garden is tall, and cross-platform continuity has historically been clunky, relying on a patchwork of third-party apps that drain battery and feel decidedly un-magical.
Eunify (https://github.com/FredrickOdondi/eunify) changes that.
What is Eunify?
Eunify is an open-source "Continuity Bridge" designed specifically for users who split their digital lives between macOS and Android. It consists of a native macOS host app (built with Swift and SwiftUI) and an Android client (built with Flutter), tied together by a clever cloud relay system.
The goal? To give Android users the exact same seamless, real-time continuity features that were previously exclusive to the Apple ecosystem.
Bringing Apple Magic to Android
Eunify doesn't just mimic one or two features; it aims to replicate the entire Continuity suite:
Universal Clipboard: Copy text or a block of code on your Mac, and it instantly lands in your Android clipboard.
Tab & URL Push: Drag a Chrome or Safari tab onto the Eunify Mac app, and it opens instantly on your phone. You can also send links in reverse, from your Android back to your Mac browser.
Notification Mirroring: See your Android push notifications appear on your Mac in real-time, complete with actionable quick replies.
File Transfer: Drag any file onto the Mac app to send it directly to your Android device via high-speed P2P WebRTC.
Continuity Camera: Stream your Android phone's camera feed directly to your Mac to use as a wireless webcam.
Biometric Mac Unlock: Tap your fingerprint on your Android phone to unlock your Mac remotely.
Media Sync: See what's playing on your Android and control it right from your Mac desktop.
How It Works Under the Hood
Achieving this level of synergy across fundamentally different operating systems requires a robust technical foundation.
The Handshake: It starts with a simple QR code. The macOS app generates a QR code encoding a unique room ID. Scanning this with the Android app connects both devices to the same Supabase Realtime (WebSocket) channel.
Signaling: Standard events—like URL pushes, clipboard syncs, and notification mirroring—are securely transmitted as structured JSON payloads over the Supabase cloud relay.
Peer-to-Peer Streaming: For heavy lifting (binary data like files and live camera frames), the WebSocket channel is used to negotiate a direct WebRTC DataChannel. This ensures fast, secure, peer-to-peer data streaming without routing massive payloads through a cloud server.
Conquering Android Background Restrictions
One of the biggest hurdles for an app like this is keeping the connection alive while the mobile app is in the background. Modern Android is notoriously aggressive about killing background processes to save battery.
Eunify solves this with a two-layer approach:
A Foreground Service keeps the Supabase WebSocket connection alive with a WakeLock.
A separate Background Isolate written in Dart re-initializes the connection independently, handling message delivery even if the main UI is completely killed by the OS.
(It even employs clever workarounds, like using FlutterForegroundTask to briefly trampoline the app to the foreground on Android 10+ just to bypass background clipboard-writing restrictions.)
Get Started
If you're tired of emailing yourself links and want to bring your Android device into your Mac's ecosystem, Eunify is open source and ready to try.
Check out the code, read the full protocol design, and download the latest releases directly from the GitHub repository:
Explore Eunify on GitHub: https://github.com/FredrickOdondi/eunify
Built with Swift, SwiftUI, Flutter, Dart, and Supabase.