← Back to team overview

syncany-team team mailing list archive

Syncany GUI, thoughts on experimental code

 

Hi Vincent,

I looked a bit at the GUI stuff and I have a few remarks/questions:

*Packages*
- I like the util package and that you split the plugin-gui packages. Do
you think it makes sense to have a folder syncany-plugins, with sub-folder
syncany-plugin-ftp, and syncany-plugin-ftp-gui, etc.?

*Code convention/formatting*
- I realize that this your GUI code is experimental, so your main focus is
probably trying out things, but I wanted to make sure that once you feel
that something will stay that way, to follow our newly created coding
styles: https://github.com/binwiederhier/syncany/wiki/Coding-Style
- It contains stuff like: longer method/variable names, no Singletons, no
abbreviations, JavaDocs, Eclipse code formatter, etc.

*Complex 'on-tray-click' panel*
- I think I can warm up to the idea of a complex panel (such as the Dropbox
Windows panel, although I would aim for something simpler for the first
iteration. The worst thing to do is to do many things half-baked. We have
to concentrate on the basics for now. It's hard, but necessary. If you want
to make a complex panel, go for it, but it must work and look awesome :-)

*Tray Icon*
- You're using some random icon in the tray
- You can use the ones from 2011 if you want to:
https://github.com/binwiederhier/syncany/tree/gradle/syncany-assets/artwork

*WebSockets*
- It's really great that you already implemented the WebSockets stuff with
the JSON messages. A few remarks:
- The GUI still seems to be polling for updates. WebSockets are fully two
way, so you can use WSClient.send() to push changes

*Swing:*
- I modified the Look and Feel to GtkLookAndFeel and it looks okay for the
most part.
- However:
 + The AWT/Tray Icon looks ugly as hell (no transparency, and if they were
menus believe me you wouldn't want them there.
 + The "Browse Folder" dialog in Swing is also really ugly in Linux
- Here are some screenshots: http://imgur.com/a/v81p7

*Wireframing*
- Have you done any wireframing? If not, I can help and draw what I had in
mind?
- Also: I found some old wireframes from February 2011 (!!) that might be
useful, or not :-)
  --> "Pencil" file:
https://raw.github.com/binwiederhier/syncany/ad0fcd26e407757d6ec5892e82969bb95402fd69/syncany-assets/documentation/UI%20Design%20Mockup.ep

*SWT*
- Have you tried the SWT stuff yet? I thought about it and I think that we
should go with SWT.
- For some reasons, the binaries are not in the official maven repository,
but there is a repo here: http://code.google.com/p/swt-repo/
- For Gradle, maybe something like this:
http://stackoverflow.com/a/8815287/1440785
- An awesome tutorial: http://www.vogella.com/articles/SWT/article.html

Best
Philipp

PS: I'll answer the other mails tomorrow (Saturday).

Follow ups