The proliferation of handheld devices and embedded systems revives old programming and design considerations that existed in the olden days, when every byte of memory and every CPU cycle counted. The following guidelines can be useful for programmers who aim at the handheld devices market niche.
Be Prepared To Deal With Chronic Out Of Memory Exceptions
First, you should be aware that out of memory exceptions occur frequently. Handheld devices do not have a hard disk and memory swapping is not an option. This means that your program should be prepared to deal with recurrent memory exhaustion exceptions. To minimize the risks of memory exhaustion, remember to release allocated memory as soon as it is not needed anymore.
Find Alternatives To Fancy Language Features
Fancy language features such as templates, Runtime Type Information, and even exception handling are not supported on most handheld devices. The reason is that these features impose significant runtime or memory overhead. Your applications should use alternative methods for handling runtime errors and type detection such as the traditional C-style errno, and virtual functions.
Lower-Level Frameworks Ensure Satisfactory Performance
Use lower-level APIs. While MFC and similar object-oriented framework can simplify the development process, they add an unacceptable overhead in terms of size and speed. It may be useful to consult your good old Win API book again. At present, this is the only framework that can provide satisfactory performance.