A Word on Remapping Files


I have gotten a flood of questions from users asking why SMS themes "don't work". The answer is: the applications changed, and the people making the themes refused to upgrade them.

WinterBoard is designed to be very flexible: it can theme nearly anything.

With such power comes responsibility.

In essence, the process of making a theme for WinterBoard requires an understanding of the application you are theming and knowing what files it loads, so you know what to replace.

This, in turn, means that when the themed program changes, such as from 2.x to 3.x, the themes may also have to get upgraded to still match.

No one seems to get this fact. :(

Instead, theme developers complain to me to "fix WinterBoard" so that, for example, SMS themes work again.

That is simply not reasonable: every time I add code to WinterBoard to remap old filenames I slow down a performance critical component.

In this case, what happened is that the SMS application got broken up into the actual application and a new 3.x framework called "ChatKit".

Most of the images people had been theming are now part of ChatKit: if you want to keep theming them, you need to start theming that bundle, not the SMS application. I don't think a single theme has been updated to account for this change in the last two months.

OK: I did it. I added a remapping for the SMS application. If I am loading an image for ChatKit that isn't themed, I check to see if a file with the same name from the SMS application was themed, and take it instead.

In practice this is not a big deal, as it is a single remapping and most of the cost is going to come from the SMS application, but if something similar to this were ever done for UIKit it would be downright devestatingly painful.

So, this is the last time I want to do something like this, and I even consider this ChatKit remapping "deprecated", even in the first version of WinterBoard that includes it: people really need to upgrade their themes to theme the right files going forward.

(Note: this has nothing to do with SMSBackground.png, which is a WinterBoard-specific feature that simply had to get rewritten for 3.x.)