I have been very busy recently working on a very interesting project for Learning Inc, a company run by my old friends from Video Arts days in Manchester.
Many interesting aspects to this job, the Learning Design and Graphic Design (as usual for Learning Inc), but for me there were lots of interesting programming parts too.
Firstly I got to implement a large scale Model View Controller (MVC) application in ActionScript 2.0 - based on Colin Moock’s example in Essential ActionScript 2.0 using a proper Object Oriented language. Something like this has been theoretical to me for a long time and it was liberating to put it into practice. The advantages and benefits of planning properly on paper (or on computer screen) first were immediately obvious once things started to both expand in scope and, as they frequently do, change in requirements.
Firstly it was easy for me to outline my approach before I started work, so that it was clear to both me and Learning Inc how I was going to go about building the app. I also found that by documenting everything - from UML style Class diagrams, program flow, logic flow and use case scenarios - the code starts to almost write itself after a while. Suddenly making a large change to how the whole program works doesn’t feel quite so drastic, if you know that you only have to change how one class works internally to implement it. I kept hearing myself saying ‘A place for everything, and everything in its place’.
Secondly it was interesting to be working with the UFI framework. A package of classes and components for developers that save us the job of re-writing code that many other developers need to write for each application. This included screen magnifiers, scrollbars for textboxes and MovieClips, LMS Connectors, and much more. There was plenty of documentation to get through, and some of it read more like a murder mystery than an API companion, but by the end of it I had a pretty good understanding of how the framework fitted together.
Thirdly, and most challenging, the application had to be accessible. Screen readers - particularly JAWS - had to be able to read the application. JAWS can be a cruel mistress at the best of times, and we were not surprised at how unforgiving it can be with code and reading/tab order on-screen. We found that we were a lot less forgiving with its performance than many of it users possibly are. We finally settled on the policy that if you can achieve what you want to buy using the correct key strokes, then it works.
It was a shame that we were not able to make a case for building the application in Flash 8. It would have solved a lot of problems that we had to take on ourselves. Particularly with respect to Accessibility issues. Maybe if we had another 6 months for the plug-in to have got greater adoption on the web then we could have done that.
There are still some tweaks to be made to the application, but in effect it is finished. It was exciting to be working with Learning Inc again, particularly Ivor, and as usual it is looking great.