It seems that if you try setting certain properties like backgroundColor in the controller and NOT in the tss file, these get ignored.
1) Open example code attacheded in a alloy project.
2) Observe how $.square has no backgroundColor defined (commented out, line 26)
3) In index.js observe how $.square's backgroundColor is being set (to backgroundColorChecked, which is equal to red).
4) Compile and run app (can be done with -T ws-local)
5) When app launches, observe how $.square seems not to show, like it's not there. That's because the backgroundColor set in line 4 of index.js didn't really work
6) Also, observe how $.square.backgroundColorChecked=red and $.square.backgroundColorUnchecked=blue prints in the console, so the reference to the colors actually exists.
7) Go to index.tss and uncomment line #26 out.
8) Compile the app and run it again. Observe how the backgroundColor is indeed applied this time to $.square.
9) Also observe how width and height values set in lines 6 and 7 of index.js seem to be applied to $.square just fine, unlike backgroundColor.
Tested this with Android and iOS and it works there.
Same EXACT behavior happens with the backgroundImage property of Ti.UI.View AND color property of a Ti.UI.Label.