From an interview with Peldi Guilizzoni, the creator of Balsamiq--an Adobe AIR application for creating mockups:
And then you started working on the first version Balsamiq Mockups. Was there any hurdles in the development process?
Ha! There's always hurdles, it's part of the fun of coding isn't it?
Let me think. I think I rewrote the foundation classes (the Model, the Input Manager, the base UI Component, etc) a few times until I was happy with them. First I started with each UI control handle the mouse events for moving and resizing itself, then moved all the mouse handling to a transparent InputManager canvas that sits on top of the view (similar to what I had done for Connect's whiteboard). I also had to learn and digest all the different options for run-time skinning before I was able to create a strategy that worked for my tool, which took a while.
- Is foundation classes a common term for the core classes in a framework?
- Are "Model, UI Component, Input Manager" common themes in user interface development and what do they comprise of exactly?
- What does he mean when he says he "moved the mouse handling to a transparent InputManager canvas on top of the view"? What is the view and the InputManager canvas.
- Why does he do runtime skinning? Can't the skinning be done before hand? What other options are available that he could have explored?
I am trying to get a handle on his design architecture.