2024-11-02, 23:39
1.16 build 4798.42
A new test build to collect feedback on two changes: rework of wakeup and rework of image cache.
Rework of wakeup
The app will now always use the iOS framework signal applicationDidBecomeActive to start the (re-)connection attempts and heartbeat. This should resolve the issue that sometimes "connection lost" message is shown after wakeup. From measurements I could see this only adds a delay of about 0.2 s.
Rework of image cache
The image cache pre-scales images, but always kept the original images' aspect ratio. If the aspect ratio (e.g. 300x600) did not match to the target dimension (e.g. 150x150), the pre-scaled image was maintaining too many pixels (e.g. 150x300). This caused higher flash and memory consumption and also could potentially impact the scroll performance as additional scaling would be needed from the UI functions. This test build now pre-scales images to the target resolution and aspect ratio. Another change reduces the memory consumption of the image cache to 100-130% of the configured size. Before, 200% were used.
For test purposes a setting was introduced: "Images decompressed to RAM". If enabled (which was the default before this test build as well), there is an additional step when loading the images to RAM for the first time. This uses the least memory. If disabled, there is no additional step when loading images. In this case, the memory consumption for the image cache is higher (by the amount of the flash image data which was read for each cached image). As I am not clear on any performance impact of the "decompression" feature, I made this an option for testing.
Important: You need to delete the image cache (either via settings and restart of app, or via fully deleting the app from device). If not done, the image cache (flash) still keeps the images with wrong aspect ratios.
A new test build to collect feedback on two changes: rework of wakeup and rework of image cache.
Rework of wakeup
The app will now always use the iOS framework signal applicationDidBecomeActive to start the (re-)connection attempts and heartbeat. This should resolve the issue that sometimes "connection lost" message is shown after wakeup. From measurements I could see this only adds a delay of about 0.2 s.
Rework of image cache
The image cache pre-scales images, but always kept the original images' aspect ratio. If the aspect ratio (e.g. 300x600) did not match to the target dimension (e.g. 150x150), the pre-scaled image was maintaining too many pixels (e.g. 150x300). This caused higher flash and memory consumption and also could potentially impact the scroll performance as additional scaling would be needed from the UI functions. This test build now pre-scales images to the target resolution and aspect ratio. Another change reduces the memory consumption of the image cache to 100-130% of the configured size. Before, 200% were used.
For test purposes a setting was introduced: "Images decompressed to RAM". If enabled (which was the default before this test build as well), there is an additional step when loading the images to RAM for the first time. This uses the least memory. If disabled, there is no additional step when loading images. In this case, the memory consumption for the image cache is higher (by the amount of the flash image data which was read for each cached image). As I am not clear on any performance impact of the "decompression" feature, I made this an option for testing.
Important: You need to delete the image cache (either via settings and restart of app, or via fully deleting the app from device). If not done, the image cache (flash) still keeps the images with wrong aspect ratios.