Unobserved

This Week At Unobserved #1

2024-08-16

A New Furtherance

It's been a busy week at Unobserved. This week I began building the latest release of Furtherance, a complete rewrite that will combine all three desktop versions into one cross-platform app. The new, cross-platform version will be written in Rust (just like the current Linux version) using the Iced framework.

I wanted to use Rust to keep the app fast and memory safe, but I could never get the old GTK version to work right on Mac or Windows, hence the switch to Iced. Right now, the Linux version is Rust/GTK, the macOS & iOS version is Swift/SwiftUI, the Android version is Dart/Flutter, and the Windows version is C#/WinUI. Because of all the different versions, I was only able to ever focus on one or two platforms at a time. This has caused the macOS platform to get far more features than any other OS, which is a shame for all of the users on Linux and Windows.

Iced has proven to be a truly cross-platform framework, and using it will allow me to provide a better experience to all Furtherance users, no matter which platform they are on (desktop only for now). The Linux and Windows apps will immediately benefit from some cool new features, such as breaks when using Pomodoro, the ability to change the task name and start time while the timer is running, shortcuts, charts, and more. I will also be able to begin knocking out some of the issues that have been open for a long time, such as having an icon in the menu bar, as I will be able to do it once for all platforms (and Iced has this feature coming up on its roadmap).

I also want to mention, the entire UI is changing. Not just because it is moving to Iced, but I am making it larger and sectioned into Timer, Shortcuts, History, Report, and Settings. These will be listed on a left sidebar. There are several reasons for this change. First, adding features was beginning to clutter the old UI too much, and there were things I wasn't adding just to keep it from being burdensome. Second, I wanted to add Shortcuts, but couldn't find a useful way to fit them into the old design. Third, there is now more space to better display charts and history. There are a couple of other reasons too, but these are the ones that stand out.

I am absolutely loving iced so far, and happy to be moving Furtherance down this path. The code (very new, not even alpha yet) is no up on GitHub if you want to check it out, in the iced branch. Keep checking back here for weekly updates on the progress, or visit the source code on GitHub to see the changes (and leave it a star if you'd be so kind).

Also, just in case you read this and are upset that Furtherance will no longer be GTK or SwiftUI, as I'm sure many people will be, the old version will remain online and open source. You can always keep using those or fork them and maintain them yourself if you'd prefer that (without the trademarked Furtherance name, of course).

Thank you, everyone, for your support while I go through this change. As of now, this branch is not open for contributions, but it will be as soon as I have the first release out.

Progress

Furtherance Rewrite Progress Aug 18, 2024

So far I have the Timer View completed, and the layout of the History View. If you want to check it out, you can build the code I've written so far (make sure you back up your database first, the new app will alter it). The timer works, and tasks save to the database (which will be compatible with the old database and update it for the new features when the app is first opened), but Shortcuts, Report, task editing, and Settings are not yet implemented, nor are any more advanced timer features such as pomodoro or idle detection.

I'm working on this in pretty much all of my free time, so it's moving quite quickly. Each week I will put out one of these short reports, with at least one screenshot, and you can view the progress.

Thanks for reading. Talk to you next week. In the meantime, shoot me an email to let me know what you think of the new design. There's never been and will never be a better time to get your thoughts into the app.