Maintaining and updating several applications at once isn't a simple process, especially if you don't have as much time as you'd prefer. After putting out point updates of a couple of my apps that implemented some of the work I've been doing this year, and planning to roll out similar incremental releases of my other apps, I've decided to hold off on any further incremental releases and just update everything in one big bang. This is definitely a case of mission creep, as my plans are now evolving in the direction of a complete user interface (UI) refresh of my apps, many revisions in their under-the-hood features, and revisions of their branding, but I think it's the best course to pursue.
In general terms, here's what the changes portend for my apps:
- A significant UI update away from bright colors toward more muted styles, in keeping with UI trends on the Mac, and with some reduction in native integration in their appearance. I've written before about my sense that my apps, with their large, bright icons and native gradient toolbar, now look a bit dated, as if they were stuck in 2006. Not only are the UI's dated, but their current configuration makes supporting more modern UI features on the Mac, such as fullscreen capability and resolution independence (for the Retina Display), a lot more difficult, if not impossible. From a technical standpoint, my Tcl/Tk libraries that support the native Cocoa gradient toolbar do not integrate at all with my library that supports the fullscreen feature, nor does the Cocoa toolbar library allow me to use different button styles in my UI. As a result, it has to go. Along with removing the native toolbar integration, I will be implementing some other changes to make my UI's a bit easier to evolve in the future. This will result in a UI that looks somewhat less native than it does now, but my hope is that it will be simpler to use as well.
- Shifting the focus of my Mac integration efforts from the UI to under the hood. My emphasis on UI integration over the past several years has been in response to early complaints that my Tcl/Tk apps were ugly and non-native. That issue was as much a result of my own inexperience with UI design as it was with limitations of my toolkit. I pushed very, very far in the other direction, to the point that I was not only trying to make complaints about the attractiveness of my apps cease; I also wanted them to be indistinguishable from Cocoa apps written in Objective-C. Visually, I may have gotten close to that goal, but there has been very little under-the-hood improvement in my apps over the years, both in terms of their feature set and their performance. The result is that although my apps my look native out of the box, they are still often sluggish in performance, static in their feature set, and quite mixed in how they integrate with the OS in ways other than visually. Just to give one example, for years my Unix software apps have used the "sudo" command under-the-hood to install software packages, just as one would do from the command line; this is not the most secure way of operating, but I could not successfully use the native authorization API's with their standard dialog (such as the one that pops up when running Apple's software updates). Recently, after studying some sample code in other projects, I successfully integrated the native API's in one of my apps, and that will be rolled out in a future release. Going forward, my apps will integrate a bit less visually, but they will have better performance, and they integrate better with security and other native API's. (As noted previously, I am taking instruction from the design approach of the NeoOffice developers.)
- Re-branding my apps and website with a new, more muted icon theme. Doing a lot of re-tooling of my apps themselves seems a good occasion to revise their branding a bit as well. I've wrestled with how to do this, as many of the icons I use are stock ones from open-source icon sets; my solution is to use open-source icon components from other themes to implement similar icon layouts, with a different color theme. That way the new icons will bear a resemblance to the older ones and the apps will still retain their visual identity, but it will just be refreshed.
Why all these changes? Declining sales are one reason; I'm not satisfied with the way my apps have sold in recent years and I think it's time to try some major changes. But, apart from that, I also want to put the apps on a platform for continued evolution. That's a necessary task. I think they've gone as far as they can go in their current configuration and more than minor tweaking is required to get them ready for their next five years of life. That's the larger purpose of this project, even if sales don't revive to a dramatically higher level.
I realize that until I release them, these changes are just vaporware. My goal is to have them out after the new year, but time will tell.