When you build a client application, you should determine which types of clients your application will support. For example, will your application run on high-powered clients, such as desktops and laptops, or handheld devices, such as PDA's, or all of the above?
After you select the client(s), you should consider the capabilities of these client(s). For example, handheld devices typically have slower processors and less memory than desktop or laptop clients, so applications that require intensive floating point calculations or substantial memory are not appropriate for handheld devices, but are perfectly fine for desktops and laptops. DB2e and Derby are both embedded databases. However, DB2e is much smaller than Derby, so you might choose DB2e for handheld devices such as PDAs and choose Derby, which has greater database capabilities, for more powerful clients, such as desktops and laptops.
Device form factors - such as screen size, color, user input types - also present challenges. For example, complex forms requiring a lot of specific data entry might not be appropriate for a device that doesn't have a keyboard and uses a stylus to point at a keyboard.
You should also consider the network connectivity of your clients. Is the client always connected to the network, intermittently connected to the network, or never connected to the network? You should also consider speed, reliability, and cost of the network connection. For example, client applications requiring large data transfers might not be suitable for a cell phone connection that charges by the byte, so a good design point might be to handle large transfers of data when the user is present in an office environment with a high-speed, no-cost network connection.
Parent topic: Application design considerations: XPD622