I am looking for some implementation advice on a cross platform application I am trying to build. I am hoping for something straight forward.
I would like to create a small application that works on both Windows and Mac that allows users to type in their username and password upon install and once this is done, to act as a background service to poll my server every second for tasks to perform. They will mostly be file read/write and upload operations.
I am currently thinking about using the Mono project, However, I have never used it although I am comfortable with C#.
Are there any other options I should consider? I’m not sure about Java as I have a feeling that the interface may be ugly/different across different platforms.
I am hoping my app has no friction in terms of dependencies that the user has to go and get.
I appreciate any input on this.
Regarding the look and feel:
I wouldn’t worry too much about the look and feel of a cross-platform Java application. Java’s Nimbus look and feel looks quite good actually and is bundled with Java already: http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/nimbus.html
Additionally, one can find many different free, cross-platform, look and feels that you can bundle with your software. I myself am a big fan of the TinyLAF look and feel:
http://www.muntjak.de/hans/java/tinylaf/tinyscreen.html
I have written several economics applications in Java and I think they look good on Macs as well as Windows machines. (The only thing I have found is that menu bars sometimes look strange on Macs.)
—
One other thing to be mindful of is the file structure differences on Macs and Windows machines; if your program involves outside files make sure you don’t hardcode in anything platform specific (like directory separators).