Ensuring that your software is available on multiple platforms is essential in today’s marketplace, but it’s important not to forget that each platform is distinctly unique in terms of the functionality that users expect, and even more importantly, the unique design and UI standards on each platform.
This is important when designing programs for both mobile (iOS, Android, Windows Phone) and desktop (OSX, Windows). While it may seem obvious that each platform requires its own specific UI touches, when simply porting an application from one operating system to another it’s very easy to forget – especially if you have a customer base demanding that the software be available on that new platform as soon as humanly possible. Remember however that it’s always more important to have a high quality product than to simply have a product. Simply creating the same application with different window chrome is not enough, and the flood of user complaints will make you regret the decision very quickly. A very simple example: If your application in Windows is run primarily in fullscreen, don’t expect it to be the same in OSX, where very few applications take up the entire screen.
A good cross-platform application is one which offers not just a great UI on every platform, but offers the system-specific features which users expect. Again, a few simple examples: In OSX, users expect to be able to use trackpad multitouch functionality within the application. In iOS, users expect to be able to multitask and listen to music while running your application. In Windows Phone 7, users expect the hardware ‘back’ button to function logically. Windows 7 users like jumplist functionality. It’s these kind of very simple, logical features which are specific to each platform and are often forgotten.
In short, ensure that your UI is up to scratch on every platform, don’t just port from one to the other, and ensure that platform-specific functionality is available and accessible.