You also ONLY need Android File Transfer on Macs because Apple is too shit to implement MTP and wants to cripple non-Apple devices. On Windows/Linux/BSD you just plug in your android device and it works. A lot of devices support USB 3 speeds too so transferring is fast and not miserable unlike most iPhones and iPads.
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.
Hey, if you don't mind a question...I need to help a friend back up all the photos off an Android phone and have had a lot of difficulty doing it on my Mac for the reasons you've stated. I do have a Windows notebook at work, are you saying if I plug the Android phone into a ThinkPad, it will just show up like a drive and let me copy photos?
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.
I'm not who you asked, but yes this is correct. If the photos are from the phone's camera they will be in the DCIM folder. There is also a Pictures folder that stores photos downloaded from other apps. At least, that is how my Pixel Fold is.
The best way to transfer files reliably off an Android device has always been an FTP server app on the phone in my experience. MTP can be really buggy with big files and it can be tough to reliably resume interrupted transfers.
The best way I have found is to create a SMB network folder on your local wifi network (you can do this in Windows and Mac, its usually the default folder share method in the OS, or you can use a NAS) and then use TotalCommander to move the entire Android filesystem (or just the DCIM folder) to that network folder in one go. It took me about an hour to transfer ~128 GB over wifi.
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.
HN may dislike it because it's an old protocol and it's more reliable than the newest crap today's developers are promoting, but I like PrimitiveFTP for this task. The .apk file is available at f-droid.org. MacOS should have tnftp(1) which is a preferred program of mine. Type ftp -h on the Mac to check.
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 biggest valid concern about FTP is that it’s not encrypted. If you access files through any network that’s being even casually monitored, the monitor gets access to the username and password for you phone’s FTP server.
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.
For avoidance of doubt, 192.168.1.x in the example means a network that user set up, using a router chosen by user, running OS that user compiled from source. It does not mean a network open to the public, or someone else's network. Apps like "Airdrop" and other "secure" file transfer apps seem to encourage use on other people's networks, and many of them require an internet connection, and often use third party servers by default. In the example, neither phone nor laptop has an internet connection, only a connection to the router that user controls. The router does not have an internet connection either. (Compare using Wi-Fi Direct via a closed source app from Apple.)
Best solution: Do not take photos with a "phone". Use a "camera".
A license covers "1 Mac OS device" - what about PC?
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?
Not the OP, I've used LocalSend successfully (Mac and Android phone), it's great when it works but every now and then it's unable to find my phone to send stuff to.
Thanks, I've been emailing myself photos in Gmail 5-6 at a time like a caveman for the past several years... any app I tried was a non-cross-platform disaster or cost too much and had major feature bloat. This looks dead simple.
What sucks is that there's no foolproof way to make sure it keeps running. Not so much of an issue for a techie, but I tried to use it so my mom's photos keep getting backed up, and I have to remind her at least once a month to start it again. And that's despite having all the energy saving stuff disabled for the app, and having Autostart allowed. I don't know whether there's still some heuristic to kill apps that run in the background and haven't been interacted with in X days or something.
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.
That's unusual if that's the case, in my experience. I rely on syncthing to keep my notes synced between devices/applications (and photos) and using "run according to time schedule" for "5 minutes" has never produced a problem for me, through reboot and months between opening the app sometimes.
Fellow caveman here. That's the way I've been doing it for years also, haha. Just tried Sharedrop.io mentioned in another post on HN and it works great if your phone and computer are on the same network (make sure your VPN is off if you have one).
Just plugging tour phone in (eg. with the charging cable) will do the trick, though on Apple-hardware, you'll need to install OpenMTP (https://github.com/ganeshrvel/openmtp) or somesuch.
If you meant more freely aharing than that: apologies, misunderstood. But isn't that the problem Dropbox solved?
It's not an Airdrop competitor if it doesn't even meet the basic requirement of Airdrop - to be able to arbitrarily send a file to someone without being on the same network.
I understand that, and LocalSend looks great for what it does. But AirDrop is so insanely useful to many of us because it allows us to share a large file with a person, regardless of whether we are on the same network or whether there is a network at all. If you need that and you can't, it's quite frustrating.
The original post was about being an AirDrop alternative, which it really wasn't.
Oof! A very cool thing, solving a real problem I have, but if you're taking feedback on pricing: I could never justify paying for local filesharing.
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.
The chase for subscription revenue is destroying a lot of potentially-great software. Not just in pricing structure, but in how software is designed in the first place.
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.
I love Magnet and also paid for it. Coming from Linux to Mac, I _rarely_ pay for any kind of utility .. but I did here. Maybe that says something in itself.
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.
I resonate with this. I can even stomach the JetBrains subscription if I rationalize that this is the equivalent for paying again for e.g. the 2024 edition. And they are good about letting you continue to use the software as of your last paid update.
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.
> except in the cases where the monthly subscription is paying for supporting infrastructure
How do you feel about cases where there is supporting infrastructure, but that infrastructure is artificial and just designed to allow subscription fees?
> The chase for subscription revenue is destroying a lot of potentially-great software.
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.
Part of this is that it’s only been recently that mobile OSes have started to approach a similar level of maturity as their desktop counterparts, while also introducing and developing new concepts that desktop OSes never had (like permissions). For some number of years a high level of churn was inevitable.
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.
How demanding/complex upkeep is may be a big factor here.
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.
> Multiplatform apps obviously multiply that burden
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)
> They also multiply the number of potential customers, so I don’t see that being a problem.
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 would pay 100$ for parts and spend hours setting something up if it meant avoiding a subscription, ANY subscription. Ive spent as much on SDR equipment so i can read aircraft ads-b signals, something availible better and free on a variety of websites. Thats what being a nerd means.
Also, there's snapdrop[1] that does almost the same thing, for free, without the need to install anything. It'd probably be wiser that snapdrop were a native application; then it's dev would not need to pay to host the client application anywhere.
Surprised no-one mentioned https://syncthing.net/ yet. That would seem to be the main competitor for such an app. Still, perhaps there's a market for something a little more user friendly and streamlined. Nice work!
To be fair, the developers of Syncthing have been explicit that Syncthing is not intended to be a file transfer application, and that you should avoid doing so. Syncthing is designed to keep two folders on separate devices in sync at all times.
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..
I have my Android and laptop running Syncthing with the Android end read write so when I move the files out of the receiving directory on the laptop it is automatically deleted on the Android device. No need for separate copy and delet, just move.
KDE Connect has been around for at least 5 years : https://apps.kde.org/kdeconnect/ . It is quiet amazing and does way more than only file transfert : clipboard sharing, multimedia control, ping, messages, remote keyboard/mouse, etc.
> KDE Connect has been around for at least 5 years : https://apps.kde.org/kdeconnect/ . It is quiet amazing and does way more than only file transfert : clipboard sharing, multimedia control, ping, messages, remote keyboard/mouse, etc.
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).
>It seems to be not yet possible to share entire folders with KDE Connect
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.
I tried to use it with my linux laptop but it didn't work. It assumes you're in the same wifi and that the usual broadcasting works, right? This is not what airdrop does.
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.
When I see comments like this one, I think that we should do Show HN posts like: 'I intend to build an app Airdrop-for-Android, what are the most important features' ;-)
It feels like very often when I see a Show HN project, the HN comments point out some critical missing feature.
KDE Connect has definetly made my life easier in school. I could just photo scan files with my phone and drop them on my 2in1 for editing. KDE Connect does require all devices to be in the same network, however, for which I needed to create a hotspot to get that "just works" feel
I think that's a bit harsh - most of the comments here (including my own) are discussing existing file transfer methods, so it's hardly an abject advertisement. Show HN posts typically get more attention than regular posts anyway.
This never worked for me somehow, but would love alternatives for Airdrop, it’s so buggy and the interface is horrible if you have more then 3 devices in your neighbourhood
Still no automatic and seamless WiFi ad-hoc network creation for fast offline file transfer.
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
Doesn't qualify as a "Show HN" - it's already been posted twice in the past few years and there's been no updates for more than a year [0]. Sounds like an attempt to get a few clicks by labelling it as "Show HN".
Previous posts only count if the post has had significant discussion which this one doesn't appear to have had in the last year. If you think there's something else wrong with the submission just email the mods.
That is what flags are for, it's just that the post was a valid Show HN and accusations like 'doing it for clicks' belong in flags and emails to to moderators and not in the thread.
I used to carry around an old phone running Pirate Box. Sometimes people would connect to it at coffee shops and put interesting things on there. That's how I found out about the band Death Grips!
149 comments
[ 2.8 ms ] story [ 213 ms ] threadGotta admit, got me to check the calendar. Though can confirm 2024 is more wireless than 2022.
> 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!
Then you can use scp or rsync as if it was any other computer.
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.
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
The file attributes should be preserved.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.
Best solution: Do not take photos with a "phone". Use a "camera".
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?
I've had somebody install it from Play to move some things.
https://f-droid.org/en/packages/net.nitroshare.android/
For SyncThing-Fork has better options for controlling syncing based on network, battery level, etc.
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.
If you meant more freely aharing than that: apologies, misunderstood. But isn't that the problem Dropbox solved?
The original post was about being an AirDrop alternative, which it really wasn't.
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.
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.
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?
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.
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.
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.
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.
[1]: https://snapdrop.net/
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..
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.
>Both devices need to be on the same WiFi network or Hot Spot to be able to see each other.
It feels like very often when I see a Show HN project, the HN comments point out some critical missing feature.
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
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
[0] https://news.ycombinator.com/showhn.html
(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)
1. https://www.androidauthority.com/google-nearby-share-renamed...
The pricing here doesn't make any sense nor justify paying for over free alternatives.
[0] https://localsend.org/
https://piratebox.cc/android