DRAFT Guidelines for 3rd-party software
The idea is a lot of software is either obsolete and running only on BeOS ; or weakly ported and using unixish style stuff. We want to avoid that. To help 3rd paty developpers improve their software, here is a list of things to check before releasing an application.
What rules should software follow
- It should work on the latest stable release of Haiku
- It should work on gcc2 hybrid - other flavors of Haiku may be ignored
- configuration files should go in B_USER_SETTINGS_DIRECTORY; and the path should be obtained by the appropriate functions & constants, not hardcoded - use find_directory() (Examples for porting). If the application has system-wide settings (not per-user), they should go in B_COMMON_SETTINGS_DIRECTORY. Note this distinction is so far only cosmetical, since Haiku is not yet capable of multi-user running. But it's etter to do it right from the start to make your application more future-proof.
- Beside the settings directory, applications may write data in other places in the config folder. Examples include the user cache and data folders.
- Applications should be self-contained, that is, all the files needed to run them should be in a single folder in B_APPS_DIRECTORY/ApplicationName. This is very different from the usual UNIX filesystem hierarchy (with binairies in "bin", and data in "share" or "etc"). This makes it simpler to track disk usage for each application, and allows having multiple versions of the app installed at the same time (in different folders). Note this folder should not be written to. Use the various configuration folders mentionned above, one ofthem should fit your needs.
- HIG compliance (e.g. sentence casing, colour scheme, vector icons): it's better if your application fits in the look&feel of the whole system.
Similar documents elsewhere
- Apple App Store Review Guidelines has a checklist we may borrow some entries from.
Other helpful resources
Asking for help
- Join the #haiku channel on irc.freenode.org to get in touch with the developpers
- Send mails to haiku-3rdparty-dev@… mailing list. Some Haiku developpers will be able to answer you if in doubt with guideline compliance.