I'm planning a client-server product for a tiny, low-volume, high-cost vertical market. One of the components of the product will be a desktop application, simple to moderate in complexity, for data entry and uploading to a central server from remote PCs and/or Macs via SOAP. The server is a Java web app.
Customers will be choosing their platform (Windows or Mac) based on what the client app runs on, so my options are wide-open here. However, I will be developing on a Mac and have a strong allergy to MS-specific technologies (sorry). The app will not need to run on any non-desktop-computer devices and I have total freedom to say it will support X but not Y or Z without any negative consequences (quite the luxury, to be sure).
I have a lot of experience in server-side development but very little in desktop GUI stuff, and am evaluating my options on the client - basically what do I want to commit to learning over the next 6+ months. I have server-side Java experience as well as a brief dabble in iPhone development, which went OK.
Overall I'm looking for:
- Ease of learning & development
- IDE support
- Healthy surrounding ecosystem (libraries, tools, help, etc.)
- Quality documentation
My options as I see them, in rough order of how I'm currently mentally ranking them:
- Java Swing
- Cocoa
- Java SWT
- JavaFX
- Adobe AIR
- XULRunner
Am I leaving anything out?