Over that, filetransfer.io.
I've been this close to building my own version of something like this, multiple times over (and actually built a browser-based one as a way to learn .net core when that first started), because - like I said - it's a really handy utility.
But I could only justify paying for something premium, like wide area sharing or torrent-like sharing for faster and resumable transfers. To get a file from one device to another can be cumbersome, for sure. But a cable and and an adapter would cost less than your solution, and have benefits (and drawbacks!) of its own. So I just couldn't figure a subscription* for something that, in the worst case, is a tedious pain to set up myself and in the most practical case is replaced by a simple, if cumbersome, process. Maybe others are doing different calculus on this (everyone has their own threshold for 'too much hassle' or 'not accessible enough'), but it's a pass from me without free local sharing.
*not sure what's 'free updates for a year' would mean other than "you will need to pay another $19, to continue receiving updates" which is a subscription, by my definition.
Compare this to something like Magnet, which is great software that I use almost every time I turn on my wife’s MacBook and costs $2. Once.
My guess is the people who made Magnet just aren’t getting rich off of it, but maybe we shouldn’t expect to get wildly rich from making a useful utility.
Phone OSes aren't nearly as well-optimized for backwards compatibility. Speaking as someone who works in this field, your phone app is almost never "done." Once you hit publish, you're signing up to continue providing updates for the life of the product. I've got binaries from the 90's that will run on Windows 11, no issues. But apps? Forget it, we just had to publish an update to a racing application for Android for literally no other reason than the binary was old and google said so, or we'd lose our Play store listing until we did.
And in the process of doing that, while changing basically nothing you actually use as a user of that app, we had to update several permissions-seeking dialogs to be compatible with newer versions of Android, along with some changes to how we share files. You might notice the second one if you look hard. That took one of our developers about 4 days of work, and a fair amount of testing after that.
Like, you can hate the game, I certainly do, but the way both Apple and Google go about arbitrarily changing and updating the OS, you just have to update your apps, which takes labor and time. And we have no mechanism to gate updates behind price tags. So like, I get the frustration, I really do and I share it a lot of the time. But I also understand the economics at play here and I won't ask someone to work for free for me.
For something like a single platform utility, the burden is relatively low because the number of things that can break is bounded (as long as public APIs are used, private API usage is another matter). With a Mac app like Magnet there’s one time each year chance of breakages occurring is high (new OS release), which devs are given several months ahead of time to find and fix.
Multiplatform apps obviously multiply that burden, with some platforms being more problematic than others — e.g. Android phones sometimes have weird per-device-model quirks that apps need to work around, which is not something one typically sees on Windows PCs, iPhones, or Macs.
Anything with an online/server component unavoidably needs to be babysat to keep running and secure, and the more functional that component is and the more surface it has exposed the more vigilant one needs to be. There’s also hosting costs, which can be quite high in the case of an independent dev who relies on cloud services to make up for lack of resources.
Which is all to say that it makes sense that a Mac-only tiny utility could more sustainably be a cheap one time purchase than many other types of project could be.
Subscriptions for desktop software sucks; but I can deal with yearly licenses .. assuming the app is maintained, you have a chance to actively consider the value you're getting before renewal. A subscription feels far more passive.
(And somehow the author made it to front page but is not here to discuss his app as would be also be expected for a "Show HN" post)
I also love KDE Connect; the clipboard sharing is so unobtrusive it feels almost magical. It takes less effort to copy and paste across my devices than it does between only Emacs and Vi on my desktop!
It seems to be not yet possible to share entire folders with KDE Connect, so I use Syncthing for that, which is also polished in its own, somewhat different way (more technical to use but optimised for large amounts of data).
KDE Connect expects you to mount the phone's directory to transfer folders, a decision I will never understand. You can use globbing to send every file in a folder though.
Airdrop is fast and works by physical proximity. You don't need to be in the same wifi, just near each other. That's what makes it so useful, otherwise I could just use a cloud solutions as I usually have internet access when I'm in a wifi.
It feels like very often when I see a Show HN project, the HN comments point out some critical missing feature.
>Both devices need to be on the same WiFi network or Hot Spot to be able to see each other.
As for the, “binary too old” thing on the Play store that could be a low effort way of weeding out apps with security vulnerabilities due to old dependencies. There isn’t really an equivalent on Windows for this because it doesn’t have any kind of centralized, hosted app management (at least that people actually use). It’s not uncommon for maintainers of Linux package manager repos to remove “abandoned” (as in hasn’t received any updates in X time) packages for similar reasons, leaving users who want them to source them elsewhere.
They also multiply the number of potential customers, so I don’t see that being a problem.
> with some platforms being more problematic than others
That _is_ part of the problem. As a developer, you have to compare your programming effort with expected revenues, so if a platform is “more problematic”, you’d only develop for it if you expected to get more revenue from it (either by getting more customers, by getting each customer to pay more for the product, or, sometimes, by getting more revenues on other platforms because you also support this one)
This is something I believe requires some research, because each platform is a bit of a different market. Point in case, the market for Magnet exists only because macOS has no Aero Snap type system built into its window management — a utility like it probably wouldn’t sell enough copies to justify Windows or Linux ports.
There’s plenty of software where multiplatform makes sense, but it’s not certainly not universal.
I can’t rationalize paying monthly or even annually for something I expect to continue working exactly the same. Continued development on something like that almost guarantees it’s going to eventually change in a way I don’t want it to, anyway.
Edit: except in the cases where the monthly subscription is paying for supporting infrastructure, of course. That’s easy to rationalize.
How do you feel about cases where there is supporting infrastructure, but that infrastructure is artificial and just designed to allow subscription fees?
> Why not use Android file transfer?
> Android File Transfer is Google's tool for transferring files from your Android to your desktop.
> The tool has not been updated in a long time and feels dated.
> Also, it is 2022 and the future is wireless.
It's not 2022 anymore, and Google just released an update to their Nearby share called Quick share. Or rather, they're adopting Samsung's Quick share.
https://www.cnet.com/tech/mobile/google-is-adding-samsungs-q...
They also have a Nearby Share app for Windows that lets you use Nearby Share on Windows. Would be nice if there was a Linux version.
It's critical that the photos (thousands of them) keep their original EXIF data and filesystem dates, and the methods I've found to get them onto my Mac don't accomplish this.
Thanks for any advice!
Also, what happens once 1 year is up? Any upgrade discounts? Is old version still downloadable?
Anyway, good job, I was in need of something like this recently and used LocalSend https://github.com/localsend/localsend , any notable differences between it and you app?
Please stop claiming to be an "AirDrop for Android" if you can't implement this.
Also Samsung's QuickShare and Google's NearbyShare not only have gotten a lot better but are merging together and being incorporated into Windows and elsewhere
That said, I have used it at times to "transfer" a single file that I copy paste elsewhere and then delete from the sync folder. Sorry Syncthing devs..
For SyncThing-Fork has better options for controlling syncing based on network, battery level, etc.
If you meant more freely aharing than that: apologies, misunderstood. But isn't that the problem Dropbox solved?
Why would I trust Ubidrop more than I trust messengers?
Linux (seems currently maintained) https://github.com/seemoo-lab/opendrop
Android (discontinued January 2023, may have compatibility issues, but still, actually compatible with AirDrop) https://github.com/MoKee/android_packages_apps_WarpShare
If possible I wanted to actually mount the device as a drive. I stumbled upon sshfs-win[0] which mounts sftp shares as drives. Couple that with prim-ftpd[1] and voilà: android mounts as a drive. Tailscale[2] can also make it fairly lan-independent.
Primitive ftpd supposedly starts on boot and keeps running but I found it stopping inconsistently at times, requiring a restart. Still, I'm quite satisfied. I suppose dav could work as well, but no apps popped up on fdroid.
[0] https://github.com/winfsp/sshfs-win
Gotta admit, got me to check the calendar. Though can confirm 2024 is more wireless than 2022.
The pricing here doesn't make any sense nor justify paying for over free alternatives.
1. https://www.androidauthority.com/google-nearby-share-renamed...
https://github.com/grishka/NearDrop
The most annoying thing is you can't share clipboard text easily, only files or links. Does Ubidrop address that?
* I have a file on a device I own.
* I wish to send it to another device.
* I send it.
On Windows, it is still regularly true that the easiest way to send X from one laptop to another one, FIVE FEET AWAY, is via Dropbox or Gmail.
This was technically easy twenty years ago. It's a concrete proof that collective action problems are alive and well in software.
Who in there right mind would pay for this?
https://arstechnica.com/gadgets/2024/01/apple-hits-all-time-...
You're right it's still not yet widely adopted and is less mature than Airdrop.
I think so many attacks on CIFS occurred ~ 2000-2015 that local sharing was locked down into oblivion.
That sounds great, but after reading this...
> you can share over Wi-Fi if the Windows 10/11 PC you’re sharing to is connected to the same private Wi-Fi network. Otherwise, *you can share over Bluetooth.* (emphasis mine)
Bluetooth file sharing is one of the most frustrating, painfully slow experiences (on Windows, at least), to date. It frequently randomly disconnects, all while taking hours to transfer small files. Nobody ever uses this, or if they do, they don't want to.
I'm surprised file sharing is so bad when so many breakthroughs have been made in Bluetooth, and wireless networking tech in general. It seems wrong that we're now on WiFi 6E, and this is still a thing.
P.S. Is the protocol for Nearby Sharing public? It would be a great shame to lock this behind Windows -- it could be a very good solution in the end.
AirDrop, syncing stuff, backups, auto adjust volume for headphones, no screen flicker on startup, trackpad that freaking works, etc.
When I use Windows, I feel like a committee decided something over a long period of time, and it is as convoluted and painful as the many decision makers could make it.
The last time I had to do this between two Android devices I just used wifi direct and it worked flawlessly. And yet Apple doesn't support WiFi direct? I can't explain Windows, but the fact that iOS won't interoperate with Android seems like an intentional choice by Apple to make their customers' lives harder.
Other than that, there's so many ways to send files that it's hard to pick one as an obvious "best" way to go. However, for something that is reasonably versatile and noob friendly, I pick Wormhole.app. Anything with a modern web browser can use Wormhole.app just fine. I can't speak to how much good its 'end-to-end encryption' is, but it does seem like it mixes some of the best of all worlds for point-to-point file sharing, allowing direct connections but also allowing temporary storage in the someone-else's-computer too.
Of course, will Wormhole.app be around in 10 years? Dunno. I also frequently use Tailscale, rsync, SMB shares, etc. for different purposes. Of course this is only fair as sometimes I'm sending files for different reasons, and I would never use Airdrop to do all of those things, so it's not like it's fair to say the fact that I don't use one solution is an indication that there is some big failure.
Airdrop is indeed convenient, but it being hard to audit does make me a little nervous about stuff like that. There's a lot of reason to be at least a little cautious[1]. Of course, there's no single alternative that is installed by default, has a better track record and more auditability, so I think it's hard to just say that this nullifies any benefits of Airdrop.
It is indeed a bit madness that there are so many options and none of them are the "obvious" right way to go. I think this is a problem that can and will be solved eventually though. Miracast is slowly solving the problem of having a "remote" display as I effortlessly can cast my Linux desktop to a random Samsung TV just by being in close proximity; We basically need a lot of parties to agree to something like that but for point-to-point file sharing.
It's probable that security concerns, though, are indeed one of the main reasons why this continues to be difficult.
[1]: https://www.cnn.com/2024/01/12/tech/china-apple-airdrop-user...
FTP was created 52 years ago. SFTP[0] Has been around for nearly 30. The latter is usually how I transfer files between two machines that I can connect to each other.
[0] https://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol
The other day I figured out my last problem with it: My phone was coupled with my laptop and desktop computer, but desktop and laptop were not coupled to each other. This lead to awkward behaviour, when all three devices were turned on. For one reason or another I never thought about changing that, but coupling desktop and laptop fixed all problems I had occasionally with kdeconnect.
The original post was about being an AirDrop alternative, which it really wasn't.
I've had somebody install it from Play to move some things.
https://en.wikipedia.org/wiki/WS-Discovery Web Services Dynamic Discovery (WS-Discovery
Inside windows this listens on UDP 3702 and is hosted by dasHost.exe / Device Association Services.
Here are microsoft's Developer docs for the WSDAPI https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src...
I didn't see any linux or android implementation but it could be out there with some more digging.
I couldn’t find docs from MS on the protocol. Without knowing anything I would guess enumeration is mdns based and transfer would use http or cifs.
I’ll look into my firewall and see if any port specs are listed for the service as a starting point on reverse engineering it.
I’m also curious.
I am really miffed that this is your exact takeaway from what I said. I gave you a way that someone can do this:
* I have a file on a device I own.
* I wish to send it to another device.
* I send it.
Yes, it is in fact just as easy to do this via Wormhole.app as it is Airdrop, except it also works across the Internet when not in close proximity.
The problem here is mainly 1. Wormhole.app is just some website some entity runs, not a standard. We should have a good standard specifically for point-to-point sharing, and 2. It's not integrated into the OS. It's just as easy to pop open Safari and go to Wormhole.app as it is to go to the Share menu and select an Airdrop target, but one is vastly easier to discover than the other.
However, what you said was that you think it's "crazy" you can't just share a file between two devices. You in fact can, easily, without downloading random apps, in numerous ways, from Bluetooth to websites using WebRTC like this one. The Bluetooth one even has pretty good discoverability on Android as I would typically just use the share menu.
I will admit that it is unfortunate that there is no "obvious" solution but that's kind of how the ecosystem works outside of Apple. A lot of things will compete on solving a given problem before we actually get an answer that everyone agrees on. This has its pros and cons, and one of the definite cons is that not everyone is sure what to do. But it's weird to point at this and say "Look! You can't even send files between devices easily!" Yes I can. Lack of a single standard solution does not make it significantly harder, even when doing it between me and some random person that may use a different kind of device than I do.
And then, at least on my phone, it rarely seems to goof up when the app starts the actual syncthing process. Syncthing-fork then just keeps showing "syncthing is starting up" on the status page and the battery drains quickly. It's still the best solution imo to have your photos reliably get backed up no matter where on this planet you are without resorting to Google/$PHONE_MANUFACTURER Cloud.
There should preferably be one open protocol for proximity based wireless ad-hoc file sharing. This protocol can then be implemented by operating systems and/or userland implementations
The entire process can be scripted according to preference.
There are many way to do it. The following should work
Put phone and laptop on same network
For example,
192.168.1.1 is gateway
192.168.1.8 is phone
192.168.1.9 is laptop
Start PrimitiveFTP on the phone
On the laptop use tnftp to retrieve the photos
# get list of the photos, where PrimitiveFTP has been set to use port 2121
echo ls DCIM/Camera|ftp -P2121 ftp://192.168.1.8 > photos.txt
# get the 1st 100 photos
(echo cd DCIM/Camera;sed 's/.* //;s/^/get /;100q' photos.txt )|ftp -P2121 ftp://192.168.1.8
# get all photos created/modified in 2023
(echo cd DCIM/Camera;sed 's/.* //;/2023/s/^/get /' photos.txt )|ftp -P2121 ftp://192.168.1.8
The file attributes should be preserved.Best solution: Do not take photos with a "phone". Use a "camera".
In my experience, a lot of security-related pushback on HN specifically is because many of us have seen how easy it is to forget that not everyone knows to be careful or how.
Do not use Android File Transfer (its a horrible app that transfers in a weird slow serial mode over a wired connection). Do not use Pairdrop/snapdrop/etc. Those Airdrop clones do not handle big folders of files well.
If you have Windows available, ignore my advice and do that. It probably isn't as difficult as Mac.
It starts a web server on the phone on port 4444. Then point a browser at the phone & view/download anything.
Then you can use scp or rsync as if it was any other computer.
And you had to disconnect each device from the wifi they were using, separately.. and you couldn't use the internet during the transfer. That's a no from me.
Airdrop is something I use 10x a week.
My point is that the technology to do this is already everywhere. People who control the software that runs on most computers would rather it be less convenient so they can push their own "solutions" to the "problem" though. Airdrop is a pinnacle example of this.