As stated before, only necessary data should be saved into the device’s flash memory. Optimize the data, if possible, and use packing algorithms if a lot of data must be saved. However, compare the amount of extra code for packing algorithms with the benefit of the size of packed data.
Remember to inform the user if overwriting a significant entry in the database is irreversible.
It is important to handle exceptions and be prepared for environmental
changes when saving data to the flash memory of the device through the Record
Management System (RMS). S60 devices do not have a strict limit for a MIDlet’s
RMS space, and basically MIDlets can save as much data to the flash memory
as there is free memory available. However, remember that another application
(Symbian or Java) may have consumed all the flash memory – in that case the
system throws a RecordStoreFullException
error message.
Note: The maximum Record Store size for Series 40 is 32KB.
It is also possible that an extraordinary environment change may take place while saving or reading data to/from the RMS. For example, if the device’s battery gets empty while saving data, it is possible that the data will not be saved into the flash memory or the saved data will be corrupted. Make sure that the application works without errors even if the saved data includes old information or is broken.
Note that if an application is updated, the RMS data of the older version may remain in the flash memory of the device. Check that the existing data is compatible with the newer version or that it is deleted programmatically. Note that when installing a newer version, the user might also be asked whether to delete all data related to the older version.
Check that:
The device’s flash memory is not filled with unnecessary data.
The user is informed if important data is about to be overwritten in the database.
The application is prepared for exceptions and errors.