Tuesday, April 20, 2010

Learning Flex part 0 : Introduction

So here's what we are going to talk about over the next few posts. Each part of the tutorial will come with code snippets and assuming I keep it up, Flex Builder projects showing the code..

I'm also using Flex 3 rather than Flex 4. Rather than joining the cool kids showing off all the cool parts of Flex 4, we are sticking with the corporate standard. There are few organisations willing to take the leap to Flex 4 and Flash Player 10 yet. Until the penetration statistics rise, Flex 3 is where it's at.

So what's the project for this first tutorial? Very simple image viewer. We are going to start with a straight forward image, and add all sorts of cool stuff.

I may split some of the posts up if they get too big while I'm writing them, just so they aren't too overwhelming!
  • Part 1 : Setting up the project. Project structure. Setting up and using ANT. Using a Dependency Injection framework.
  • Part 2 : Constructing Objects. Always use interfaces. Compose objects as much as possible.
  • Part 3 : Testing the objects. Here's why we used interfaces. Using mocks for fun and profit. Using FlexUnit.
  • Part 4 : Composition over Inheritance. Adding a Zoom and Pan. Wrong way to do it with inheritance. Right way to do it with behaviours.
  • Part 5 : Adding additional controls. Zoom in / Out buttons.
This will be a good introduction to topics I'll revisit later, and provide a good grounding for adding in business logic and server interactions in later tutorials.

Learning Flex well rather than just learning.

There are plenty of blogs, tutorials, sites, books, people standing on soap boxes, and conferences that all want to teach you how to do Flex, but once you try to get beyond something simple, you run out of steam very quickly.

So the next few posts are going to be sequence of good practices which every good enterprise Flex developer needs to know. Soon, you'll be able to mix it with all those snooty Java developers who think their language is the only way to write enterprise apps!