The book takes you through the process of building a shopping cart, complete with drag & drop functionality and along the way gives you a better appreciation of Flash Builder 4.
It comes with a CD containing the project in it's different stages of progress, along with some deviations from the shopping cart example, when the authors want to instil some titbits of information not contained in the core project you build. (Think labs).
There's no discussion on Flex micro-architectures like Spice Factory Parsley/Pimento or Robotlegs.
It doesn't have much of a server-side aspect to it. Basically data binding is done via an HTTPService to some XML hosted remotely and E4X (ActionScipt/ECMAScript API for parsing XML) is used to bind the data to the controls.
There are 18 chapters (or Lessons).
1: RIA (Rich Internet Application) overview.
2: Flash Builder 4 overview (Avoid taking the plug-in version. I tried adding this to Spring Tool Suite edition of Eclipse and it was too buggy). Helps you find your way around the IDE, debugger and the local history capabilities (similar to a source control system).
Anyone who's used Microsoft Visual Studio and worked with laying out Windows Forms will be able to find their way around the IDE in no time at all. The concepts are very similar, in terms of selecting components and being able to anchor them to borders etc.
3: MXML, layouts, view states.
4: Data binding, form layout, display images. Also shows how you can quickly prototype/mock up a screen with data with the model tag without going in to server-side calls.
5: Events model and system events.
6: HTTPService, E4X used to get products/categories used in the shopping cart (binding XML to components).
7: Covers ActionScript : Value objects, and building a shopping cart component.
8: More of a theory chapter. Shows how ActionScript is generated when [Bindable] meta tag is used. It also covers ArrayCollections and cursors.
9: Refactors MXML into reusable components.
10: Covers Lists/Datagroups. Also covers virtualizations in labs (re-use of visual components for large datasets - avoids high memory usage).
11: More on Events. Architectural benefits. Event Flow, custom events.
12: Datagrids and Item renderers.
13: Drag and Drop.
14: Navigation (Could have been more here) But covers viewstack (base class use for Tabs/Accordion)
15: Formatters/Validators. Covers checkout part of shopping cart (where name/address/credit card etc are taken - no server side stuff) . Things like required, length constraints, zip code validation.
16: Shows CSS.
17: Skinning (The latter is used by the newer Spark components. Allows you to do things with colour gradients - but components also separate out visual aspect (as skin) from functionality.
18: Creating a custom ActionScript component. (This resembles a cash register receipt, with a graphical representation of food produce, line item amount, running total and tally of distinct items.
The book gradually refactors the code in a series of steps. So it's definitely a hands-on exercise, rather than a reference. But I thoroughly enjoyed the book and I picked up a few new Flash Builder 4 tips along the way too.
I definitely understand skinning and the meta tags a whole lot better now.
I guess my only minor gripes with the book were:
1: No coverage of Vectors, the new typesafe array.
2: The final refactoring in the book when a custom shopping list is implemented left you with a solution that was flawed. (When you checkout, you don't get bound to a new shopping cart, so the totals from before carry over. This was working prior to the enhancement. I've talked with the author about this and they say this gets resolved in Volume 2!).
3: The lack of use of constants whenever a literal was used in different places throughout the code. I'd prefer to have compile time checking and easier refactoring.
4: A lack of how you'd go about doing testing. I'm a TDD guy. Emphasising things like not placing business logic in event handlers, so you can unit test etc, would be something I'd have hoped to have been illustrated. Still there's a second volume due out soon. Let's hope it covers that. Can't wait to get my hands on that too!
Awesome book guys.