Tact 1.5
September 11, 2023
Jaanus Kase
We recently published Tact version 1.5.0 to the App Store. It contains several major updates that are worth calling out here.
New approach to navigation
Tact initially used a lot of sheets (modals) for navigation because it was the easiest way to build cross-platform highly maintainable user interfaces in SwiftUI. Although SwiftUI always had a navigation view, it had too much magic and not enough developer control.
The 2022 version of SwiftUI brought us a clearer approach to navigation with modern stack and split view API-s, so we could migrate important parts of Tact navigation from sheets and custom hacks to system standard navigation view.
In Tact 1.5, you see standard system navigation both in Account and chat participants sections of the user interface. What used to be a sheet is now standard system drill-down navigation. We actually have three different navigation systems now in the app to support this—for iOS, iPadOS and macOS—but the platform-specific part of them is really tiny and easy to maintain. Most of the code is shared.
You can also see a contextual menu invoked from the corner of the view to see chat participants and do other things in the chat. This is another part of the user interface that is best done with system standard tools, easy to build and maintain. You will see this pattern more and more in Tact going forward. These menus will contain more features, and there will be more such menus throughout the interface.
Easier and safer re-installations of Tact when you have lots of data
When you have lots of data accumulated in Tact, re-installing Tact on the same device or installing it on a new device didn’t work very well. The user interface would show you an “endless spinner” and information in the interface would jump around until Tact downloaded its initial set of data.
This re-installation process got an update in Tact 1.5. It is now much safer to re-install Tact, or install it on a new device. If you have used Tact before, you will see the screens that inform you about the progress of the initial download. When this process is complete, Tact switches to its regular interface and you can continue to use Tact.
Smaller fixes
There are other smaller fixes in this version.
Links with Unicode characters in them were not correctly interpreted, and wouldn’t correctly display previews.
Tact handles people’s photos better and doesn’t waste bandwidth. It would unconditionally download profile photos more often than is necessary. Now it only downloads the photos that have actually changed.