Writing Custom UIs

Before you jump in and start writing code...

...read this
...and this.

(These guys have learned a few lessons in the process.)