This would be a much better use for Qt than Electron. But I guess that's not hip enough anymore.
One of the reasons I love Filezilla is because it feels like I am working right inside Windows shell / explorer.exe.
"Beauty is in the eye of the beholder", "There's no accounting for taste", and all that. I'm not a fan of the style that was used (too much blank space, flat UI elements, gives the vibe of a webpage instead of an application that you can do something in, having both a hamburger menu and dropdown menus seems weird), but "garbage" is needlessly harsh.
It's useful to be reminded that software development is a process of continuous learning, and that's what this project represents anyhow: Learning a new platform by tying some libraries together into something that's functional and that demonstrates what the developer was trying to learn.
This app it is kind of overkill, though.
That's a ridiculous statement. Web UIs are pretty awful, unpredictable, confusing and non-standard compared to desktop ones. Not only that but they're hard to develop, you have to jump through hoops of CSS hacks to make things behave in a sort-of-desktop-like fashion.
There are many high quality graphing libraries available on desktop apps (Qwt, QCustomPlot, DevExpress to name a few I've worked with).
The training thing you talk about is true though, if your team has more experience on the web, then retraining them is wasted effort I suppose. Depends on your idea of quality result though.
Such as?
Doing native UIs since MS-DOS and Amiga, with enough web experience not to see how it is better than the RAD tooling of the 90's or declarative UIs like XAML.
Where is Blend for web UIs or Delphi style app development?
I don't use FTP frequently - I just needed something basically to upload/download files.
After switching to windows, I couldn't find any decent FTP clients I liked. I tried Filezilla, Winscp, Cyberduck. They're all too busy and look like they're straight from XP... so I made this.
I guess I'm just not sure what you're talking about when you say "High Quality GUIs" when talking about Windows FTP clients specifically.
For comparison, Windows 95's install package took up 19MB of disk space. So I guess Electron's 50MB is pretty efficient as far as operating systems go.
.NET does this, Java does this, DirectX does this, etc.
I think that's the point that they're making: Electron, due to its nature, isn't an optimal choice to build something that ought to be a small tool.
This is obviously a kind of "hello world" learning experience for you, and I'm sure it'll be a useful stepping stone to work toward more complex programs that provide better justification for the footprint. And with that purpose in mind, it's a nice start. I personally don't care for some of the UI paradigms that are fashionable right now (the "flat" and "minimal" stuff), but this seems like a sane implementation of that style.
I think there's a very valid exception -- well, there's many, but here's my favorite: "Don't reinvent the wheel unless you are trying to learn how the wheel works."
See I like that phrase. Gives you a lot more creative license to just redo what has been made if you are curious about it. What if at the end of that learning experience you have a nice, fairly polished wheel and you'd like to share it? Maybe for e-cred, maybe for criticism, maybe just searching for praise.
I'd say that the underlying motivation is irrelevant. We as a community should be less skeptical about this stuff, we really need to learn to just be happy for people, maybe even give out some praise.
So on that note. Nice job OP! I really like the font choice, and colors. UI wise this might be the best FTP client I've seen.
Also I wasn't a fan of how every client looked like they were straight from XP. I used this as a way to get familiar with Electron, as well.
Lastly, it's open source so people can add whatever they want to it. I have a few ideas that I would love to be using myself (image previews, in-client file editing, etc), and I'm sure other people have their own features they'd want - and they can add them now.
There's no shortage of clients. Personally, I think you shouldn't use FTP at all, but you do you.
Does it support SFTP too? From a operational perspective FTP itself should be avoided for anything except public drop-box applications (IMHO).
Also, best practice in node.js (and electron too) is to not put your node_modules folder in Git. You should add it to a '.gitignore' file.
I'm using JSFTP (https://github.com/sergi/jsftp), which doesn't have SFTP support yet. I wanted to get it up and running on both Mac and Windows before diving into that.
I've found a few forks of JSFTP with it at least partially implemented, so that's the next thing I plan to tackle.
This is the first electron or even real node projects I've worked on from scratch, so I'm still getting used to everything.
The 'filesize' section is from [1], only the word 'bytes' has changed to 'B' and 'filesize' in two places. It looks like there are other copies of this same snippet in a Google search, but this one shows direct descent from [2] via the 'forked from' tag, so is probably the root of the trail. Not saying that's where you got it from, but this is clearly a derivative work.
Then your 'showFocus' section is from [3] and [4], both posted under the same username. I can't immediately see any other path this piece has developed from and it doesn't seem as significant, but your copy only differs by some trailing spaces.
I stopped looking after realizing over 50% of the first file I looked at was stolen from other sources without attribution.
[0] https://github.com/mitchas/ffftp/blob/master/app/app.js
[1] https://gist.github.com/napoli1890/d33c7b9056e77a8670874e93d...
[2] https://gist.github.com/thomseddon/3511330
[3] http://stackoverflow.com/questions/22776662/catch-ng-show-ev...
I'll try to figure it out.
So running an entire web browser, separate from your actual web browser is minimal?