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.
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.
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.
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.
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.
Being able to quickly squirt all of that, including photos, to another crew is a literal lifesaver.
> 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.
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.
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 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