[Home]  [Prev]  [Next]    A guide, a tutorial for developing well-designed cross-platform applications

1. Preface

The main goal of the guidelines is to show how to develop the GUI of your application suitable for any platform. Development with these guidelines gives your application a professional looking set of base functionality. Application applying these guidelines should allow for ease of use, so a user might immediately feel comfortable.

Any of these guidelines should be viewed as a help and not as a command and may be freely applied (or not). Not all of the guidelines are appropriate in each case but if you don't consider it carefully the result might not be what you expected. Using this tutorial and applying the appropriate guidelines will make your application fit well with other applications and on any platform.

1.1 Introduction

The guidelines outlined here follow two principles, first they should allow for users to feel comfortable with an application design with these guidelines and second they should be defined in a way developers can easily apply them. Good guidelines are just agreed upon and used without much considering. That doesn't mean these guidelines have reached this perfect state, it means this is the goal which should be achieved. Of course guidelines are always compromises and there are cases where a guideline might not be appropriate.

Guidelines tend to become rather artificial if not immediately supported by working sample code. This means an environment has to be chosen, of course without compromising or limiting these guidelines. So for the purpose of supporting these guidelines wxWidgets (a cross-platform toolkit) and C++ (one of the widely known languages) has been chosen. For an average developer it shouldn't be too difficult to translate these code samples to other frameworks and other languages. Therefore wyoGuide don't require wxWidgets.

All the code samples are implemented and tested in the Demo sample. In case the documented code doesn't work (nobody is perfect), first look in the sample.

1.2 Cross-platform versus platform specific

If applications were written for different platforms (as today should always be the case) these guidelines should be applied for each port. The guidelines avoid any platform specific features still it might be easier to apply them on certain platforms but not on others. So it's possible that guidelines specify features which are standard on some platform but not on others.

Since platforms differ rather much in some points it's not easy to specify cross-platform guidelines and compromises have to be made. Whenever a conflict arises this is marked in the guidelines and a user may equally well use the native guideline. But never use a native guideline of one platform on any other platforms, either use the fitting one or use the wyoGuide one.

1.3 Other guidelines

There are other guidelines for various special cases (see References). I've tried to take over everything useful from the other guidelines but in your case that might be not enough. Still you can't do much wrong if you use the wyoGuide guidelines and you are free to extend it as much as you want.

1.4 Feedback

To develop the guidelines further I need to know what others think about. What is perfect, what is missing, what is wrong. It would be nice if could write your experience after some use into the wyoGuide mailing list (see link below).