Here's another review. This one is of Manning Publication's Flex 4 in Action.
Review of: Flex 4 in Action
Author: Tariq Ahmed et al
Publisher: Manning Publications
Available: 28 Oct 2010
$33.74 (amazon.com) 600 pgs.
Flex 4 in Action is a rewrite and update of the original Flex 3 in Action published in February of 2009. The book retains its overall topic flow so it will feel like an old warm blanket for those that learned Flex 3 from the previous edition or used it as a reference. New readers will feel just as welcome as it is an easy-to-read, thorough tutorial of what you need to know to come up to speed with the new Flex 4. There are also a couple of additions to the book that take it a step above the others.
The authors are acknowledged experts in their respective fields and have converted organizations to utilizing Flex for enterprise class applications.
Summary of Contents
Part One: Application Basics
Chapter One: Making the case
The book starts by talking about challenges that a web developer faces and how to solve them using Flex by Adobe. It also dives into the mechanics of a Flex application and discusses the Flex ecosystem as a whole.
Chapter Two: Getting Started
The authors show you how to take advantage of open source tools. They spend a good part of this chapter discussing Flash Builder and how to begin producing Flex applications.
Chapter Three: Working with ActionScript
Chapter 2 introduced ActionScript and this chapter is dedicated to it. The authors admit that entire books could be and are written about it. This chapter focuses on ActionScript?s core concepts of variable types, operators, loops, conditions, arrays and functions.
Chapter Four: Layout and Containers
In this chapter Flex?s visual building blocks and types of containers are discussed. These components can be anything from buttons, tables and graphics to other containers.
Chapter Five: Displaying forms and capturing user input
Creating forms in Flex is the topic here using input components (controls) and capturing user input.
Chapter Six: Validating user input
In this chapter how Flex handles validation and the different types of validators?such as those which verify the proper formatting of phone numbers and the structure of email addresses is covered. They are put to use, employing several different approaches.
Chapter Seven: Formatting Data
Formatting raw data with Flex?s built-in formatters is the subject of this chapter. This includes types of formatters, real-time formatting, scripted formatting and finally dealing with formatting errors.
Chapter Eight: MX DataGrids, lists, and trees
The authors cover everything you ever wanted to know about using list-based components from the MX library. Topics include list-based components displaying flat data, displaying hierarchical data, handling user interactions and retrieving selected items from List-based components.
Chapter Nine: Using the Spark List controls
In this chapter, you learn about the list-based features and functionality that ship with the Spark library, which is new to Flex 4. The discussion starts with the Spark list-based component architecture, and continues with how to leverage the new list-based Spark functionality in your Flex 4 applications.
Chapter Ten: List customization
This builds on chapter 9 by demonstrating how to customize the list-based components. Topics covered include the labelField property, label functions, overriding itemToLabel, item renderers and editors, advanced item renderers and filter functions.
Part Two: Application flow and structure
Chapter Eleven: Events
The event system is introduced along with its all-important role in a Flex application. Integrating native and custom events in an application while gaining an understanding of event nuances is also covered.
Chapter Twelve: Application Navigation
This chapter looks at the following components that you?ll use to add standard navigational features to your application: Menu, MenuBar, ViewStack, ButtonBar, TabNavigator and Accordion.
Chapter Thirteen: Introduction to pop-ups
The different ways of creating and managing pop-ups as well as simple ways to style them are here along with how to utilize the pop-up manager to help you create, delete, position, close, and destroy windows.
Chapter Fourteen: Implementing View States
This chapter starts by introducing the concept of view states in general. It then continues by covering everything you need to know about them.
Chapter Fifteen: Working with data services
This comprehensive chapter is all about data-centric development with Flash Builder. Starting with connecting to web services it continues with using the HTTPService and WebService components and understanding the Action Message Format (AMF). Communication with JavaEE using BlazeDS, ColdFusion Communication and communicating with PHP via Zend_AMF rounds out the discussion.
Chapter Sixteen: Objects and classes
Exploration of a fundamental feature of Flex, objects and classes, is the core of this chapter along with some OO theory. Covered topics include OO concepts, implementing OO concepts, using ActionScript classes, how to create, invoke and destroy them, and extend those that already exist.
Chapter Seventeen: Custom components
This chapter covers the basics of creating and utilizing custom components and tackles ways of getting your components to communicate with each other. Starting off by taking a look at how components are handled in Flex 4 and the Spark architecture, the discussion continues on with types of components and the difference between simple and composite objects.
Chapter Eighteen: Creating Reusable Components
Code reuse is the topic of this chapter. The example used in this chapter takes a look at a scenario where a component that reveals content must be created, but in many different ways, yet without having to write a separate component for each implementation.
Chapter Nineteen: Architectural Design Patterns
A deep look into Flex-driven design patterns and the thought process behind the core Flex architecture is taken. Then, rolling your own Flex application architecture is discussed without getting over-complicated. This chapter covers the Model-View-Controller pattern, how to roll your own architecture and mentions the frameworks Mate, Cairngorm, Parsley, and Swiz along with a deeper discourse into the Robotlegs framework.
Part Three: The Finishing Touches
Chapter Twenty: Customizing the Experience
This chapter focuses on the user experience and how you can leverage user experience design techniques in Flex to enhance your applications. The VIBE Model, themes and skins, CSS in Flex 4 and best practices are discussed.
Chapter Twenty-One: Working with Effects
This chapter first explains what effects are and how to use them and then the types of out-of-the-box effects are discussed.
Chapter Twenty-Two: Drag-and-Drop
D&D is considered from a usability point of view rather than just because you can use it or because of the coolness factor. The authors discuss how a mindset change is needed to accomplish this.
Chapter Twenty-Three: Exploring Flex-Charting Chapter
In this chapter, exploration of what makes up a chart, the charts that come with Flex, and how to customize them is covered.
Twenty-Four: Debugging and Testing
Debugging applications using the Flex debugger, using the Flash Builder Profiler and Unit and Functional testing of your applications is discussed.
Chapter Twenty-Five: Wrapping up a project
Tying up loose ends and getting the project out the door by customizing the HTML wrapper and deploying it to a production server is this chapter?s topic.
Chapter Twenty-Six: Working with XML
In this final chapter, Flex's robust XML support, from its ability to use XML as a source of data, to how you can use Flex to directly manipulate XML code is presented.
This new edition contains a thorough coverage of the new Spark components of Flex 4. It contains all you need to know to write applications with the new API.
The authors know from experience what you, as a developer, need to succeed and they make an admirable attempt at conveying it. This is nowhere more prevalent than their discussion in chapter 22 where they attempt to make you understand that just because something is 'cool' is not the reason to implement it in an application. When a feature will get the job done is the time to put it to use. You just need to change the way you look at things.
The book features two new chapters one of which was sorely missing from the previous edition. Chapter 19, Architectural Design Patterns, is a long overdue and very welcome addition. This chapter is a critically needed discussion of software architecture and assistive frameworks for Flex. Most books get atrociously overcomplicated, stay solely with theory and fail to bring those concepts to reality. They need to actually go through the process of designing architectures for actual enterprise applications. This chapter gives you the basics of how to go about it. This reviewer believes that a little two much time is spent with RobotLegs in this chapter at the expense of the others mentioned (one of the authors, Joel Hooks, plays a large part in the development and support of RobotLegs so that explains that). There aren?t even simple examples of the other second-generation frameworks Mate (pronounced ma-tay) and, this reviewer?s personal favorite, Swiz.
Chapter 9, Using the Spark List Controls, is the other new addition. This includes a thorough discussion of the Spark List Controls' class hierarchy and customization.
In chapter 24, Debugging, the authors could have spent a little more time on the Network Monitor and Profiler that comes with Flash Builder. There is a little more discussion of the Profiler but both of these topics are cursory at best. Also, this chapter provides sample code for unit testing Flex with the FlexUnit library. This is an absolutely essential addition.
Taken as a whole this new edition gives you good thorough coverage of the new Flex 4 and provides some sweet additions at the same time.
Those of you reading this who decided to pass on buying one of the other Flex 4 books before Flex 4 in Action made its appearance on shelves will be well served. It was worth the wait.