Free and Open Source Alternative to Airdrop
sharedrop.io
sharedrop.io
With Airdrop, if you are on the moon and meet a stranger there who also has an iphone, you can perform the high-speed transfer of large files.
https://www.theverge.com/2024/1/8/24029806/boeing-737-max-9-...
I don’t think there’s anything in a phone that’d stop its core functions in a vacuum. The human trying to use it, not so much.
But that was just before they decided everything had to go via their cloud.
Curiously if you used a London bus in around 2005 with bluetooth on you would experience a lot of files being sent to you via ad hoc networks.
Apple simplifies this stage.
If not, I'd guess that Apple devices maybe come with 2 WiFi adapters inside?
Apple devices can detect out of network devices as well.
That this is possible, and allows to maintain a dual connection to an AP and an ad-hoc connection to another device for AirDrop, sounds amazing. Now I want to learn more about that technique and where/how it can be applied to non-Apple devices!
And yes, I’m being sarcastic.
For example, my Lenovo T14s (2023 AMD version running the latest kernel) connects to my (5.2 version of BT) headphones really well. Similarly, my android phone connects to the same headphones and whatever device sends data, that's what I hear.
Similarly, my Steam Deck connects to two of the headphones I'm using (Sennheiser and Apple Airpods) seamlessly.
Why?
er yes, Apple seemingly eliminated the "everyone/forever" option because it was being used to slightly-anonymously[0] spread stuff the chinese government didn't like [1]
0: https://arstechnica.com/security/2024/01/hackers-can-id-uniq... 1: https://techcrunch.com/2022/11/09/apple-limits-airdrop-every...
Resilio Sync is also incredibly slow when the two devices are not connected to the same network. Like kb/s slow.
I’ve moved ~500-800GB via air drop in one go before.
> create an ad-hoc wireless connection.
Every Android device I've used has had "Send via Bluetooth" functionality built in. Is the WiFi connection just significantly faster or does it provide other additional benefits?Apple Watches used to update over Bluetooth and it would take hours, literally. And someone discovered a trick to turn off Bluetooth to force it to update over Wi-Fi, and then the download took just minutes.
For the server, on Android I use "Share via HTTP". On desktop running a lightweight HTTP server is easy too.
Edit:
Apparently that sounded complicated, here is how I can share a file from my phone to any other phone in the same Wifi.
- Click Share -> Share with HTTP.
- The app opens and shows a QR code.
- Other person scans the code. Their browser opens the file and they can do whatever they want with it.
If you have no Wifi:
- Open QR code for hotspot
- Other person scans QR code for hotspot, then for file.
If you still think it is too complicated, surely there is an opportunity create a simpler UI! From a technology perspective it does not have to be complicated.
Only if you are outside without Wifi you have to do another step, setting up a Wifi hotspot, but that is not hard. And in most situations I have been in both devices were in the same network anyways.
This assumes that the user has a level of technical knowledge that most people don’t have.
Edit: Ah maybe you thought setting up the server is an additional step. It is not. Share via HTTP is the server. It runs directly on your phone. The URL points directly to your device.
You scan a QR code to connect to someone's wifi.
All your traffic can now be captured. DNS requests will be logged. Some traffic might be redirected. When will the connection be closed? What if someone shows you a different QR code, and you're not that tech-savvy. For example a phishing webpage which asks for the user's password. Many many many people will still just enter their single-password-for-everything. What if the QR code is a deeplink to an app.. for example to a conversation on or whatever. Or maybe someone was previously logged in into some account.
https://play.google.com/store/apps/details?id=com.MarcosDiez...
The device then will do the "run a server with the file, create the QR Code for access, display it". Your mum has no need to learn how to run it, just how she doesn't need to know anything about how airdrop works to use it.
This will not work on many public and corporate networks. A common place where you’d want to share.
> surely there is an opportunity create a simpler UI!
It’ll still suck compared to Airdrop. Apple has gone to a lot of trouble to make that work as well as it does. Trying to setup something relying on temporary hotspots will be sub par UX. (And a nonstarter for Apple devices - user apps can’t touch the WiFi settings).
Here is but one vendor doc. https://documentation.meraki.com/MR/Firewall_and_Traffic_Sha...
It is standard practice to enable this these days in public networks and it is so common that even consumer grade shit router now come with an option to enable.
There was an app called "Wifi File Transfer" which would expose a web UI in the local network to download and upload files to the phone's storage.
First I only used it to upload music to my phone (faster than USB1.1 or even USB2).
Then I found out it also works fine when creating a WiFI AP/Hotspot and allowing other peers to connect to it.
If the UI was simpler and more "Apple-like" (hate to say this) I could convince my non-tech coworkers/family/friends to use it.
Also, could you auto detect the other peer's OS? You could skip an extra step and UI element. Do you need it to know which WiFi bandwidth to use?
And no, it can't detect anything about the other device until they're on a WiFi network together, and that can't happen until it knows the peer's OS because it has to know whether it or the peer should be hosting the hotspot. Windows has precedence, then Linux, then Android. (The iOS version doesn't need to know the peer's OS because iOS and macOS can't stand up a hotspot programmatically anymore, so it always has to join.)
I thought Bluetooth might be viable, as beacons and GattServers seem to be designed for this purpose. Android's implementation was painful, yet doable. However, after wading into Microsoft's codebase, I suspect it will be slog.
Question: With an agreed upon network name or configuration, and agreed upon access parameters, how much change do you think it would take for FlyingCarpet to instead by used as a semi-anonymous, dynamic membership mesh network?
Ex: A laptop and a phone get near each other, they recognize their proximity, and that they are both offering the known network, they then check for the presence of known filetypes in a known folder location, and exchange small updates with each other. The same with any number of desktops, laptops, or phones that get near each other. If I was in a mall with 11 other similarly configured phones nearby, and 5 people working on laptops, then my phone would call the 16 other devices, and they would each get a file from my phone, and I would get a file from their phones.
But Android offers a Airdrop-Like-Feature natively called "Nearby Share" but what still sucks in my POV that there is still no Cross-Plattform-Solution between iPhones and Android out there
Being able to quickly squirt all of that, including photos, to another crew is a literal lifesaver.
Not all of them.
"Airdrop isn't just a nice UI for sending files between people, it allows a wi-fi speed transfer between two [Apple] devices that aren't connected to an existing network of that speed."
More precisely, WiFi Direct allows it.
There is no reason why one should not be able to use WiFi Direct to transfer files between Apple hardware and non-Apple hardware.
But Apple and Google, via iOS and Android, stop users from using WiFi Direct to do it.
WiFi Direct does not belong to Apple, or Google.
https://en.wikipedia.org/wiki/Wi-Fi_Direct
Everyone who buys a computer from these companies should be able to write applications that use WiFi Direct. The chips support it. The buyers own the hardware, not Apple or Google.
[1]: https://en.m.wikipedia.org/wiki/Bonjour_(software)
[2]: https://en.m.wikipedia.org/wiki/Multicast_DNS
[3]: https://en.m.wikipedia.org/wiki/Avahi_(software)
[4]: https://github.com/localsend/localsend/tree/main/app/lib/pro...
Am I understanding it correctly?
EDIT
> This makes it a great solution for sending sensitive or large files without third-party servers in the middle.
It clearly says the opposite. I don't know where I got that idea from.
There is a coordination server that sets up the initial connection, but after that both devices are connected directly to each other.
There's encryption overhead though, I can't saturate a 1Gbps over Tailscale on M1, while direct connection works (iperf3).
> Taildrop is currently limited to sending files between your own personal devices. You cannot send files to devices owned by other users even on the same Tailscale network.
On my tablet, however, it works flawlessly.
So my guess is that such feature can be easily added.
By the way, if you're using chrome, you can take share text directly via the clipboard. So that you can share from your phone, and immediately paste it in your computer, or vice versa.
By using kdeconnect (it has an Android app and a gnome extension), you have this done automatically. This means that you can copy a text in your phone, and paste it in your computer, as well as the other way around.
Apps are available for all platforms, and it's possible to achieve transfer over a LAN connection.
https://f-droid.org/en/packages/net.nitroshare.android/
For third-party transfers:
https://www.swisstransfer.com/ [up to 50mb]
https://filetransfer.io/ [much bigger limit]
I am using the latest Firefox though
Also, making it free for Android but not PC seems... Wrong.
Some apps out there are even capable of opening a small HTTP server, so you can technically serve files on tether.
I couldn’t get the “local network” feature to work though despite devices on both networks. Probably missing something. Had to send the link to myself.
Show HN: I made an app people call "Airdrop for Android" - https://news.ycombinator.com/item?id=39067040 - Jan 2024 (97 comments)
Another example for AirDrop use cases is transferring large media files to another device. People use that all the time for moving recordings to their editing computer, for example. Even if you have all your stuff in the cloud (which not everyone does) - it‘s much faster to do a local transfer than uploading and downloading something like a high res raw video from a modern phone.
If you are capable of sharing a resource in a message or album, it is also automatically shareable via airdrop. iOS treats them all the same via the share sheet.
When I go on a vacation with friends, they want a bunch of photos and videos that I took. So I can easily just airdrop them to my friends.
I have my local sync'd to my cloud storage and just pull it down if/when I need it. I'll just email/text people around me if they don't have airdrop compatibility.
Especially when you might want to upload from multiple devices.
One thing that it beats the cloud / centralized sync on is because the connection is direct between devices when the initial transfer is completed the file is completely there on the other device. With a cloud type of sync you do the transfer twice. I've seen stack up on large media or with the structure of cloud services pricing making it expensive depending on how your workflow is setup with inside and outside parties. For example, Dropbox deduction from all parties' storage limits not just the sharer.
You can also point Syncthing at a local sync of Dropbox or Google drive and then forward the files to other recipients from that for some purposes.
For gifs or a funny photo or whatever, yeah I'll just text it.
I used to set up a local http server with `python -m http.server` until one of my student told me about sharedrop.io
Email/Text has very small files size limits so that's not an option for me.