UI design is always one of the most annoying and unportable tasks a programmer faces. (Aside from the problems with "professional" designs that have more photoshop effects that common sense). Todays devices are changing drastically the iPhone was the linchpin on this. It has fundamentally redefined the human machine interface. Mouse point and click interfaces now need to handle the the finger pinch and flick. Static window layouts wont live much longer in a world of rotatable and portable hardware.
The problem boils down to the fact that every joe and his dog has his own UI implementation. And after reviewing several of these in a post iPhone/Android world I have come the conclusion that they just are not going to survive beyond a few years from now. Now more that ever the clean separation between Model/Controller/View needs to be handled or your code is going to get outdated and become a maintenance time sucker.
I think Androids Fragment idea is the way to go on this. Release the constraints on the placement/layout and reconsider your UI from the perspective of a set of fragments or UI chunks that are correlated and interacting. Think dynamic and fluid layouts. This way it allows the segments to be shuffled around to meet the needs or your next port and code reuse.
While doing all this its best to stay as farway as you can from the Frameworks Implementation specific classes. Especially the pointless rewrite/rebuild of the string and networking class that seems to be in every framework. Wrap them if you must use them but don't let it them anywhere near your core implementation.