DynaWorks Frequently asked questions

The DynaWorks framework was designed with simplicity in mind; but nevertheless there are many questions concerning the use and technical background of the framework.

The following section will help you to get an answer to frequently asked questions about DynaWorks by listing answer and questions in a list. To find more technical information about DynaWorks, please go to the Technology section.

Q: What is DynaWorks ?
A: DynaWorks is a small framework to develop applications running on a PalmOS™ platform and the K Virtual Machine. The framework features access to build-in or custom databases and supports multiple vierws (or dialogs) for user interaction.

The intension of DynaWorks is not to be a full-fledged GUI (you better use kAWT for that purpose) nor a general database interface. In both cases the aim was to respect the platform (PalmOS) and its limitation and still have a java-like interface for application development.

Back to top of page ...

Q: What do I need to use DynaWorks ?
A: You need (at least):

  • Sun's Java2 development kit available for download from here.
  • The K Virtual Machine for the PalmOS available for download from here.
  • The DynaWorks.jar archive with all classes that come with the framework. You can download it from here.

You may want to use:

  • The PalmOS Emulator (POSE) from Palm to test your programs before loading them onto your precious little device.
  • An integrated development environment like JBuilder 3.5

Back to top of page ...

Q: Can I integrate DynaWorks into my development environment ?
A: Every development environment that supports the development of KVM applications in general can be used to write DynaWorks applications as well.

Currently there are only a few IDEs around that are prepared for this job. You can find more information on how to integrate DynaWorks into the IDE of your choice, turn to the technical section of the tutorial.

Back to top of page ...

Q: Does it work on the PalmOS Emulator ?
A: Yes. There are no known limitations for DynaWorks on POSE.

Back to top of page ...

Q: Is it compatible with ... ?
A: Currently there are no reports of incompatibility of DynaWorks with any other application running on the Palm. If you should encounter any problems of that kind, please let me know by sending an email.

Back to top of page ...

Q: Are there any restrictions ?
A: Not really - but: DynaWorks is freeware, so you should give applications developed with DynaWorks away for free as well. If you want to use DynaWorks for a commercial project, please negotiate that topic with me in advance and contact me by email.

Back to top of page ...

Q: I want to write an application with multiple pages for different user dialogs and views. How do I exchange information/data between pages?
A: You should use the DataDictionary class to maintain application-wide, cross-page objects and data values. For an example of this have a look at the DynaDb example.

I recommend the following procedure: Find all data objects you want to share across pages. If all pages use the same set of information, you can simply group all data into on object (this is the way the DynaDb example works). Otherwise store two or more different data objects in the dictionary. You can then access (and change) this data objects from any page within the application. For more information on the DataDictionary usage, see the appropriate section in the tutorial.

Whenever a page is about to be activated, its perform() method is called. This is the place where you can access the shared data to initialize the page before it is displayed. For more information on the perform() method see the DynaPage tutorial.

Back to top of page ...

Q: I use the 'DynaDb' framework in my application. The database access is quite slow. What are the reasons for this behaviour?
A: There are two possible explanations for this behaviour:

  • You are using a build-in database (databook, address, memo, todo or the like) and have many entries in the database. Opening such a database can take considerably longer than a custom database of the same size.

    The reason for this behaviour is that DynaDb tries to build a map between the record index in the database and the unique ID of each record. You need this mapping if you "link" entries in build-in databases against each other and want to maintain referential integrity across HotSyncs and database editing.

  • You are using the DynaDb class and custom Record classes for your own database. Your extended Record class has many string fields.

    Accessing string fields in records is pretty slow. To reduce memory consumption in connection with variable string length fields each records byte array (the raw data) is parsed for string start and end positions in the byte array when a record is read from the database. In case of many string fields this can reduce performance drastically.

    You can speed up things by avoiding string fields altogether or using the bytes field to store fixed length strings.

Back to top of page ...


Copyright © 2000, Bernd R. Fix. All Rights Reserved.