first time user usability review

Hi!

This is a short review of my first (well, second, to be fair) experience with Syncthing, using a Debian GNU/Linux (jessie) laptop and an Android phone.

TL;DR:

  • hide dialog details in “advanced” tabs to avoid confusing users
  • android app needs explanations for fields
  • weird bugs in the android app: need restart to see id, share button self-duplicates…
  • sharing single files would be great

The task

My task was to copy a file between two phones. I know this sounds simple, but for some reason, I had all the trouble in the world copying that file around. I tried Bluetooth (failed to find a “send to bluetooth” button), I tried email (file was just too big, 17MB), and I didn’t want to use proprietary cloud services. I was about to go with Telegram, but then I remembered how horrible their security was. Then I tried signal and it asked me to login to Google, something I generally don’t do. There was also what appeared to be a clever “Wifi file transfer” app on one phone, but not on the other (and besides, I learned later that there was a 4MB file limit there on the freemium version!). By the time I cycled through all of this, the other phone was gone, but I swore to myself I would fix that.

Installing

So. Some friend mentionned Syncthing, which I tried in the past but never actually got around really using. Installed it on the phone, no problem. Installed it on Debian, found a nitpicking issue in the documentation but otherwise went well. I was a bit confused that my terminal was showing a bunch of debug messages instead of a GUI, but then remembered that it’s a webapp on linux and switched to my web browser and saw syncthing. Yay!

Pairing

Next step was to pair the devices. That, I am not sure I would have guessed on a real first time, but anyways, I found it. I first tried to add my laptop on the phone. I went into the machines tab, clicked the + button and up came a machine dialog. The dialog was a little confusing, but due to my previous experience, I remembered the concept of machine IDs. Some hand-holding here would probably be in order for first-time users! I noticed the small qr-code icon, being familiar with those through my work on Monkeysign, and clicked that button. That brought me to install the barcode scanner, which I did through F-Droid. When it was done installing, I was stuck in F-Droid, and I had to swipe my way out of there (probably an F-Droid usability issue more than Syncthing that).

Then I could scan the qr-code from the laptop. I found the qrcode fairly easily from the web interface, but that could be easier: on first run, maybe show that by default in the empty space? Or is that a security issue?

Next, filled in the name, fine, chose the other machine name.

Next, I get a weird field with an icon that looks like a chain, and that says by default dynamic. No idea what that was: from the linux version, I learned this is the IP address… This should just be hidden in some “advanced” tab with explanations, IMHO. Same with compression and “initiateur” (in french, in english it was probably Introducer, but there is zero information on what that means in the Android app, also quite confusing).

Hit save, and… hey, where is it gone? The machine is not there? Went to look on the Linux app: not there either. Hmm… Try again, fill in all the fields, nope, no way to add a machine?! That is bizarre.

Let’s try the other way: I go on the linux box to try to add the phone. First problem: the ID! I don’t have a barcode scanner on the laptop (well, there’s a webcam, but I couldn’t find a way to make the webapp use it!), so I had to type it down (gulp!). But even worse, I couldn’t find the ID on the Android app! When I went into the menu on the top left, it would say ID machine, but there would be nothing there: just a button that does nothing (which I later learned is to copy to the clipboard).

Puzzled, I try all the other menu items, including the share button, but I don’t know if i should trust those sharing mechanisms, and besides, sharing is what i’m having problems with in the first place, so those don’t work.

So I restart the Android app. Ah! Voilà! Now I can find the machine ID. I laboriously type it down in the Linux side of things, and learned what all the fields from the Android app meant. Hit go, and now I have a machine there.

I think I had to add the machine again on the Android side after that, but I was a little confused, so I don’t quite remember. Anyways, the machines were paired, more or less. I think they connected through the local IPv6 network, which is frigging awesome (but probably a concern for my privacy, as my link-local MAC address is showing).

Sharing the file

Next step: how do I actually share a file… Look around, oh, I need to share a folder. Hmm… so I share the folder where the file is on the Android phone… Okay, done. Now the Linux app is showing me an accept button, click that, okay, a dialog to save the files somewhere… Hmm… I still get a lot of questions there! I am not sure I need to know all this stuff, I just want to share files… Just use the defaults everywhere (but I did choose “smallest first” for the files order, which seems better than “random”). It seems to me a bunch of those settings could also be hidden in an “advanced” drop down.

Now, all done, click… Close … OOPS! I should have clicked Save! Darn it. Now how do I get this dialog back? No idea…

So I go on the Android phone, unshare the folder with the laptop, which oddly duplicates the button - probably a bug in the UI there! It asks me to restart, alright, go ahead. Now I restart, share again, duplicate the button again, restart, and I finally get the dialog fill it, and the files start sharing! :slight_smile:

Parting thoughts

Somehow, I would have preferred to have a button in the “Send” dialog in the file manager that would say “laptop” and forget about it. It would pop me a device pairing dialog and i would go with the little qrcode dance, once, and it would setup a folder just for me. Having to create those shares is a little annoying. :slight_smile:

Thanks syncthing! It was wicked and a little clunky, but it works, and all free software. Good job!

1 Like

I think the “where did the share dialog go” issue is https://github.com/syncthing/syncthing/issues/2740

i’m a little tired after writing all of this, and there’s a lot of issues to sift through for duplicates, but if you wish, i may be able to find time to file bug reports for other issues raised in the review, if that is useful.

Update: after having to the other Android phone again, I was able to pair the two phones and transfer files. However, the new share dialog wouldn’t show up in the reglar app - i had to go into the webapp to see and accept the new share for the files to be transfered.

It was also quite painful to find the right location to put files: the help would say files are in /storage/emulated/0 if I input ~ but i had trouble finding that key - it would have been better to put files relative to ~ by default… If not directly in ~/Downloads.

It’s also not quite clear that it is better to create a new directory when accepting a share, maybe that should be the default behavior!

You’re right, it seems like a good idea to show a description for settings on Android. In our current layout this isn’t really possible, because we have the text entry direclty in the fragment. But we could do it the way app settings do it, by having a title/summary, and clicking on it opens an edit dialog. Could you open an issue for this on Github?

After you add a device, there should be a restart dialog. Did you miss that, or was it missing for some reason?

The device ID should be displayed in the drawer. If it’s missing, that’s definitely a bug. Can you give me any way to reproduce this? And clicking the copy button shows a toast, not sure what else to do there.

I’m not sure what you mean with “duplicates the button”. What exactly are you doing there?

Regarding “Send” dialog, Syncthing isn’t really for sending files, it’s for sharing folders. However, a share button in the file manager that adds the folder to Syncthing sounds like a good idea. But I’m not sure if there’s any file manager that allows sharing folders. Do you know one by any chance?

The notification for new folders isn’t implmented on Android yet, see this issue.

/storage/emulated/0 is the path of the primary storage, but Syncthing itself doesn’t know about that, it just shows a normal path. The usability is probably better if you use the folder picker in the app.

Thank you for all this feedback, it definitely helps to get a different perspective from a new user :thumbsup:

1 Like

Regarding the advanced settings when ading/accepting a folder:


You don’t need to accept a folder, you can also create a folder with the same ID and they will start sharing it.


@Nutomic Total Commander seems to be able to share folders, long press -> “send to”.

Alright, let’s take this thing one at a time. :slight_smile:

Alright, done:

No, there was a dialog. Sorry if I wasn’t clear on that point. My point is more that I don’t think Syncthing should have to restart on such trivial changes. It feels like upgrading Windows 98! (Okay, not as bad, but you get my point. ;))

I am not sure how to reproduce this. It happened only once, the first time I started syncthing. And this is on a fairly old phone (HTC One S, running Android 4.1). After restarting syncthing, the problem goes away.

I am not sure what a toast is, but before the restart, clicking the copy button wouldn’t do anything at all. It’s as if this whole dialog was broken.

Oh boy… that’s the weirdest thing! I am just clicking the device button after editing a share… So this is what it looks like when i go visit a share (pardon my french :):

So far so good!

Then this is what happens when I toggle one of those machines (expected, I guess - notice the button is already duplicated behind there). I click “Plus tard” (later):

Then I get this nice mess:

Any time i click one of those toggles, they replicate like crazy!

Going in and out of the share fixes the problem. Obviously, this could be because this is a old version of android (4.1).

(I love it, by the way, that i could share those screenshots with syncthing as well!)

I do not. I have fairly little experience with Android, sorry I can’t help you there. However, I persist in saying that it would be quite useful to have a way to share single files. I don’t care how Syncthing does it, but from a user’s perspective, that was my requirement, and creating a folder was a bit too complicated.

Maybe a good solution here would be to have the following process:

  1. the user chooses “send to syncthing” on a file
  2. syncthing starts
  3. syncthing asks the user if the file should be added to an existing share or a new share be created, and which devices to share with (if it’s a new share)
  4. syncthing copies (or symlinks?) the file into the share

Done! That way the user doesn’t to learn so much about the Syncthing mechanisms before actually doing things, and is neatly guided through them. The user can quickly learn about shares and devices in a more intuitive way than being presented with all those things at once.

This is similar, mind you, with this feature request, although that one is specifically about sharing stuff with things outside of Syncthing.

Maybe this could help as well?

Frankly, I have no idea what’s going on there. I just know it took about 4 attempts to fill that up correctly. I am not sure what the file picker is: when i tap the field in the web interface, there’s a drop-down, but /storage was not listed there. Now I can’t reproduce that at all: presumably it behaves differently when creating a share locally or when accepting one? No clue.

The android app certainly looks better, but it’s obviously much harder to figure out if I don’t get prompted. :slight_smile: So yeah, that issue seems like a priority item, definitely.

I am glad it has been useful! Usability is critical in such grand public apps. I am glad the syncthing team is taking it seriously, and welcoming such feedback.

Oh and @wweich, glad to see some mysterious settings being hidden away, good job! :slight_smile:

I hope that covers it all!

I think the plan is to get rid of restarts completely at some point. But I’m not sure how far along that is.

When you click on the device ID, there’s a grey text overlay in the bottom of the screen, saying that the ID was copied to the clipboard. Like I said, I don’t see a better option to signal that.

Wow, it’s kinda surprising that no one has reported that duplication thing before (I’ve also never noticed it). Will fix!

What you’re writing about sharing files to Syncthing is exactly what is requested in the issue you linked (although the issue description is kinda bad really). Just needs someone to work on it.

documenting somehow that a share with the same name will magically work (which is really odd to me)

That’s basically the entire way Syncthing works. You add devices to each other using the device ID. Folders with the same ID will be shared between devices. There have been suggestions to use a random ID + label instead (similar to btsync), but any change would be a quite fundamental one.

Hi guys, here’s my take on Syncthing. The software is really good for sharing file between different devices. I have my Windows laptop synced with my phones. This helps to transfer data quickly and securely. Talking about security, the only reason I trusted Syncthing is because of its FOSS nature.

However, I must admit, the setup process was tricky as hell. It took several trial and error to get the software to run. I followed the steps listed here: docs.syncthing_net/intro/getting-started.html, but they don’t seem that easy to start with. Perhaps I am not that techy to start with and I guess it was just pure luck that I got the devices to work. Currently I have my Android devices synced using the software. However, I read here that they offer a beta version for iOS: https://www.vpnranks.com/syncthing-review/. Is this true? Where can I get my hands on this beta app?

1 Like

If you have any concrete suggestions about the setup process, they are definitely welcome.

The iOS app is not open source, and afaik is not actively developed any more. There should be a thread somewhere on the forum.