Reckoner Update July 2024


This month there was a lot of in-the-background changes to address responsiveness. Additionally, work has started on v2.0.0 which will be the first time I change the database schema so I am taking extra time with this release!

🚢 Releases

There were a few releases this month. Notably I added a change to process the synchronization in a Dart isolate. In normal parlance, isolates are Dart’s way a multithreading. It basically behaves the same way as Javascript service workers. This was the result when I found out that my phone UI was lagging due to data being synchronized. This change should make sure that this behavior doesn’t happen anymore.

⏳️ In Progress Release

Version 2 is in progress! The big change here is to deprecate merchants as a discrete table and instead just save the merchant name as a field on transactions. Drift includes a lot of handy testing tools to verify migration functionality and will allow for high confidence in the data integrity when this is released. I could release it today, but I am taking more time and need to test with a VM with a database export from my data before I release this to everyone.

📱 Application Store Releases

There hasn’t been any change in app store releases, but there will be in the near future.

🍎 Apple Device Support

So I went ahead and dropped some money on a MacBook Air as a replacement for my laptop. We needed a few more mobile computing devices in our household. I must say the power they are able to get out of a passively cooled device is impressive. I have debug builds for both the iPhone and Mac working! It took me less time than I thought to get it working. Release builds will take more time to complete though.

For better and worse Apple devices require the developer to be registered (and pay a $99 fee), and for builds to have a signing key. You can bypass this when building for Mac, but cannot bypass this when building for iPhone. I am in the process of getting registered and releasing a iPhone version of Reckoner!

🐧 Consolidating Linux Releases

Last update, I talked about the issue with Snap packaging and dropping support for it. This month, I plan to drop support for AppImage and just support Flatpak going forward. However, I plan to make up for it by building and supporting an ARM build on Flathub. The reason for this is that I want to make sure my primary build device can build for as many platforms as possible. The primary build device I will be using going forward is the MacBook Air.

While not impossible, I am having difficulties getting the build of the AppImage done on the Mac. To the contrary, I was able to quickly get a docker setup running for building the Linux tarball needed for both ARM and x86 up quickly. Thus, as was the case with Snap packaging, AppImage will be dropped and Flatpak will be the only Linux application store I plan to support going forward.

It is very interesting that I was able to get up and running with the Linux AppImage and Snap quickly and Flathub had a much more involved process to get it published. In the end though, the work needed pays off as the build infrastructure and vetting is more robust than any other Linux application store.