First off, my apologies for the late posting in the SysAdmin series (or very early since tomorrow is Thursday). I had to deal with a double HDD failure on my home PC this weekend which ate up 14+ waking hours between Saturday night and all day Sunday, which would have been my prime writing time. Then the third HDD in that system crashed Monday evening, egad, what are the odds. I digress…
I've been looking for an easy way recently to manage configuration files for remote servers without having to deal with subversion, and even looked at some sort of file sync with Evernote/Dropbox via Android using an FTP client, but neither Evernote or Dropbox give you easy access to files on your SD storage when you download files. Evernote will let you navigate to notes you create on your Android device, but the folders to get to that note don’t have intuitive names. Again, I digress, and will cover Evernote and Dropbox from a sysadmin point of view another time.
I decided instead to look at tools that could let me carry some config files on my Android device and sync them to remote servers, but that still raises the question of versioning. Since no capable tool was found, and since I tend to take my Android device along with me everywhere I go anyway, I wanted to explore a few different options.
So today, instead of one extensive thorough review of a single app as I've done in previous articles, I decided that this article would instead be a quick recap of 3 different FTP clients for Android, and then give my recommendations in the conclusion.
Note – I’ve added descriptive alternate text to all images, so feel free to hover your mouse over them to see additional comments.
In no particular order: DroidFtp, AndFTP, and FSync.
Market Details and Introduction
4 stars from 542 ratings; All comments from 2010 are 3 stars or less.
Has had 10,000-50,000 downloads.
FAQ at http://thecrayonbox.org/files/DroidFrpFAQ.html
The market description says that constructive comments are welcome at firstname.lastname@example.org, but warns that whiners will be ignored. I wonder what would happen if I whine that his FAQ site is offline? It's also non-reassuring when the developer name, FAQ site, and dev Email address are all different.
The Good, The Bad, and The Ugly
My first complaint about the software is the opening screen where you enter session data for a server connection (image 1). Tapping on a text field places the cursor at the beginning of the strings which are already present. Its annoying to have to tap a second time to get to the end of the string, then backspace through the existing test data just to enter real data.
I do, however, like that you can connect to a system without having to save the connection setup. And, overall, the simplicity of the app is somewhat endearing. This is not a jack-of-all-trades kind of app, it has one focus and sticks to it. Nice!
Configuration settings are slim, only giving you an option to choose where on your SD card you’d like to set as your default download path, and to enable system logging.
Once connected (image 5 and 6), you’ll see your files on the remote system. Forewarning, you may want to run this in landscape mode if you have long filenames, as this app will attempt to wrap filenames which looks pretty bad. Under the “what was he thinking” category, pressing the Back button on your device will navigate you up the file system, not take you back to the previous page (home screen in this case). The only easy way to exit the app is to disconnect form any session which will return you to the home screen, and the Back button from there will return you to Android.
While you are connected, the submenu is where you can to to upload a file, but the interface on the files is a simple scrolling dialog where tapping on a folder will enter that folder but hitting the Back button will return you to the file listing screen, and not navigate back through other folders on the SD storage. Once you find your file, uploading is quick and easy, simply select the Upload File option from the submenu while you’re connected, and browse to your file (image 8). Be careful though, as the Back button does not operate as you’d expect it to. Android Development 101 teaches aspiring developers to maintain a sense of consistency, and follow common UI principles. This developer must have missed that class.
I'd rate this app at 4 stars. The interface isn't as nice as others I've seen, and limiting uploads to a single file at a time is a bit of a nuisance, especially since you have to navigate from the root of your SD card to find each file. However, the simplicity of the application is really nice, and it’s a relatively small app to download.
Market Details and Introduction
4.5 stars from 3,274 ratings; Recent comments are almost all 4's and 5's
Has had 50,000-250,000 downloads
App web site: http://lysesoft.com
Support Email: email@example.com
Neat features: FTP/FTPS/SFTP, manages several connection configurations, provides download/upload resume, provides Intents for other applications to link to AndFtp for connectivity(*)
* in programmer lingo, an Intent in Android development is like providing an API to other applications on your device, similar to how Decaf can link to ConnectBot as covered in a previous SysAdmin Series article.
The Good, The Bad and The Ugly
The interface is well thought out but not necessarily intuitive for first-time users. Even as a seasoned software developer myself and a hard-core Android user, I found myself scratching my head a few times. Despite an eventually-successful login, I couldn't simply flag files on the SD card and upload them to my home folder, I was forced to select a folder first (image 15). I tried to create one using the interface and got an error that a new folder couldn't be created. I logged in a second time and created a new folder just fine and uploaded my files into that folder (image 16 and 17).
Hitting the back button to try to navigate around worked as expected, but hitting it too many times will return you to the home screen where you'll see that you've been disconnected. Unlike our favorite SSH client (ConnectBot), you cannot maintain several connections at the same time. It would be nice if returning to the home screen didn’t disconnect you, but instead altered itself to detect that you are still connected and give you options to resume your session or disconnect.
I give high marks for the layout of the app, and allowing a decent amount of customization and lots of supplemental commands. A place to manually enter FTP commands might be handy for hardcore FTP users.
I’m not sure why, but I couldn’t connect as my ‘testuser’ account on my FTP server, and had to log in with a regular user instead. The others apps evaluated in this article connected as ‘testuser’ just fine.
I personally rate this app 4 stars; if it was a little more intuitive and less buggy (couldn’t log in as a user named ‘testuser’, bug in creating new folders, unable to upload into home folder) I would consider a 5-star rating.
Market Description and Introduction
(recommended by Alvin X.)
3 stars from 27 ratings; comments back to November are mostly 3 stars or less with one 5-star
Has had 1,000-5,000 downloads
App web site: http://www.unisaran.com/fsync.html
Support Email: firstname.lastname@example.org
FTP/FTPS, Sync Widget, ZIP, drag and drop interface
The Good, The Bad and The Ugly
From the get-go, we can see that the UI designers at Fsync are doing their jobs, and doing them very well. It's always nice to see a fresh looking interface. The fact that you can customize the color scheme is a neat option as well though just exploring into that submenu changed my default color scheme from blue to green without me touching anything. Another bonus is that setting up a network connection gives you a button to Save, and a button to Test (images 10 and 11) -- clicking Test will save the settings if its successful, a really great feature. The idea of gestures in the app is nice, but I found no practical use for them.
I tapped on the server connection to connect to my FTP server (image 12) and nothing happened. A long-tap on the entry crashed the app (image 13). Upon restarting, and going to the submenu, selecting Network, and long-tapping on the connection, I was given options to connect, edit the settings or delete the connection. Also, upon restarting the app, it seems my default color scheme changed from blue to green.
I was unable to find clear instructions on how to upload or download a file, and found this almost frustrating enough to not include Fsync as an option in this article. However, I eventually figured out that long-tapping on a file on the Network view gave me an option to copy the file, which copied it to a "server clipboard". However, once I navigate to SD storage, there's no intuitive 'paste' command. I eventually found that if I long-tap on a folder, I can choose the Paste command to start the download to SD. I imagine the instructions are similar to go in reverse.
At the risk of saying that the app has a security hole, when logging in as an unprivileged user, I was surprised to see myself logged into the root folder of my FTP server, and not my home directory. I don’t recall seeing a setting for this in the configuration screens.
The app has an option for viewing background jobs, as if there's a means to queue up several files and just send them in the background, however I wasn't getting tired of trying to find the options and gave up looking.
While this is one of the nicer interfaces in the bunch, I can still only rate this app with 4 stars. It's still a little buggy, and it's not very intuitive. I'd suggest the app developer write a tutorial or add some comprehensive help screens for users to get some assistance within the app.
DroidFtp, AndFtp and Fsync are all free apps in the Android Market, and compete with other apps out there as well as other paid apps. It was disappointing to see that developers don’t give us any sort of “command line” access to the FTP prompt for advanced work, or even giving us the full range of FTP commands such as remotely renaming files.
If these were the only three FTP clients in the Android Market, I would personally use AndFtp. Some thought has obviously gone into the application to make it comparatively easy to use in a side-by-side comparison of DroidFtp and Fsync. On looks alone, my choice would be Fsync, but the application just isn’t intuitive enough. DroidFtp has some nice features going for it, and I love that it’s a do-one-thing-and-do-it-well kind of app, but recent comments are all bashing on the app and makes me wonder if the developer has moved on to other apps.
Do you have a favorite FTP client for Android? Feel free to leave a comment below and share your thoughts.