My problem is that all these alternatives require the devices to be on the same local network.
One beauty of Airdrop is that it creates and handles that local network automatically under the hood (as far as I understand). So you could be out on a hike with friends and Airdrop something.
The workaround I've found after switching to an Android device has been to teather my connection to my friend's device, which ends up creating a LAN that Localsend can work through, but this is not as nice an experience.
That's why we worked very hard to create the ultimate, nothing held back tool and recently launched it. Works across any device/user/platform.
UI, CLI, Local network, over the internet, anything. P2P + E2EE.
https://mbarlow.github.io/thinair/
Device to device transfer, just a static github page.
gh repo: https://github.com/mbarlow/thinair
Creates QR codes for each device to scan for webrtc. Android to android will do an audible chirp that lets the devices know to switch from qr code mode to opening the camera to scan each others codes. Tested android to apple and working, the audio chirp doesn't get caught by apple. Just wait and eventually the qr code will dissolve to allow scanning step.
Just threw this together. I was playing with audio handshake using bird-like chirp "songs" or old school modem between smartphones. Fun putting phones together as they send audio frames and confirm to start transfer, but unreliable and slow to handshake. I would like to cleanup the flow to improve. I've started using it for sending files between iphone/android/pc without having to deal with apps, emails, accounts, etc. blah.
For true crossplatform p2p the closest I have found is FlyingCarpet [1].
But it is not super reliable or friendly.
Indeed, Localsend only does the last step of what Airdrop does. With Localsend, you need to:
- Create an ad-hoc Wi-Fi network on one device.
- Connect the other device(s) to that Wi-Fi network.
- Now run Localsend.
The first two steps are a bit of a drag, and the fact that Airdrop handles it is what makes it so frictionless to use.
Airdrop is also pretty weird: sometimes it can’t find other phones (probably when a previous transfer failed silently in the background). Also, it had some issues searching for contacts when there was no mobile/Wi-Fi connection (tried to send photos to another phone in the mountains). Sometimes it could just freeze and not work… Apple magic here isn’t really useful.
Not only that, but with iOS 17.1 or later, AirDrop transfers will continue to work if you go out of Wi-Fi range during the transfer. It seamlessly switches to an Internet-based relay.
I think nowadays on Android it's called QuickShare, and it works. But I believe the fragmentation and awareness is a part of the problem for Android.
This. Localsend may be very useful for a set of devices you control or influence. The USP of Airdrop is ad hoc sharing with people you don't really know. Classic case is meeting strangers on holiday and you want to swap some photos of the trip you're on. One or both of you doesn't have data or time to install anything, or it's just too hard to persuade someone they should install random app. Pairing Bluetooth or setting up local networks is way too convoluted and time consuming.
With Airdrop you have trivially easy, "just works" sharing with people in proximity. It works great between iPhones and Pixel phones now they support it. It just needs support to spread to more Android devices.
Speaking of ad-hoc communication channels that do not require shared infrastructure: I like the idea of https://github.com/divan/txqr which sends data using animated QR codes. An ultimate guarantee of physical proximity. The bandwidth is not comparable to WiFi 6, of course, but no OS support is required.
Iroh is a relay protocol for peer to peer transfers over the Internet so it doesn't have this problem, check out my other comment here about wrappers around the protocol for sending files, Sendme is the one I use.
I just use blip to send files to anyone on any device but it requires an account
Feem is the only reliable one I've found that doesn't rely on being on the same local network
It works on iOS and Android
I just use blip to send files to anyone on any device
I've recently started using blip, which works very similarly to airdrop after the initial pairing has happened. The devices do not need to be on the same network etc.
I am usually able to coerce a Localsend connection by using a WiFi hotspot on the target device.
Usually, but not always.
try out this app called "Blip". It doesn't require you to be on the same network.
Wireguard VPN to your home network, and then you can do anything
Yes exactly, that's why another RCE which will be found in Airdrop, if found by bad actor. Will be pretty fun to watch.
Last RCE in Airdrop, could be made into worm, it was found by whitehat, luckily for Apple there are still people, which are willing report exploits for little money, so billionaires can enjoy their life on yachts.
If you're on a hike you can get on the same network by joining your friend's phone WiFi hotspot.
The protocol Apple uses under the hood is AWDL (Apple Wireless Direct Link), which is a proprietary peer-to-peer layer that runs alongside your existing WiFi connection without dropping it. It uses a time-sliced channel-hopping mechanism so the radio can serve both infrastructure WiFi and the direct peer link simultaneously.
That's the part that's hard to replicate. LocalSend and most alternatives need an existing shared network because they're just TCP/IP, they have no way to negotiate a direct radio link without OS-level support. Even Android's QuickShare, which does peer-to-peer via WiFi Direct, drops your existing WiFi connection on older devices because the radio can only be associated with one BSS at a time.
The EU interoperability mandate lxgr mentions would theoretically require Apple to expose this, but AWDL interop would mean licensing or reverse-engineering some fairly deep radio scheduling logic, so I'd expect compliance via a different (probably slower) path.