Chapter 3. Conventions of Haiku

Table of Contents

Program Options: Format and Location
Maintain Responsiveness
Avoid Hardcoded File Paths
Make Your App's Look Fits in with Others
Live Updates
Translators
Squeezing the Most Out of BFS: Queries and Attributes
The System Tray: It's Not Just for Dinner Anymore
Tracker and its Uses

Just as a person generally doesn't go barging into a stranger's home and start redecorating and otherwise making himself at home merely because the owner does not own a shotgun, your program needs to have good manners in getting along with both the operating system and the other programs the user has installed on the system. Some of these are merely good coding practices meant to make your job easier and others are for ensuring that your program can be more easily maintained. None of them are difficult or much work, so there. Now you have no choice but to follow them. :D

Program Options: Format and Location

While there are lots of ways to store program settings, the easiest and recommended method is placing them in a BMessage and flattening it to a BFile. By using BMessages as your container, you don't have to concern yourself with writing and debugging other code. The exact location used to store them depends on the number of files you will need. If your software needs only one file and will only ever need one, then it is just simplest to place it in the user's config/settings folder. However, should you need more than one file, please put them in their own folder to minimize the clutter. The folder should either follow the format home/config/settings/your_app_name_here or home/config/settings/your_company_name_here/your_app_name_here.