Whenever a new technology that interests me hits the streets, I buy everything that gets published (well, almost everything). I have six or eight books on ActionScript 3 and Flex 2 and 3, most of which are very good. I also have an embarrassingly large collection of Ruby and Rails books. I haven't written a review for any of them, simply because they are just 'good' books. But this book is phenomenal! It knits together best practices of Flex development seamlessly with best practices in Rails, demonstrates a solid client-side architecture and ties it to a RESTful Rails architecture. It shows how to do validation and error handling on both the server and client sides. It contrasts different Flex event-driven architectures and shows how to map each to the server side api. It fills in all of the gaps that I puzzled over when trying to integrate Flex and Rails in a single development and runtime environment over the past year.
There is a lot of code in the book ... it is basically an extensive tutorial. The application developed in the book has the feel of a real and sufficiently complex project. What is truly amazing is that ALL OF THE CODE WORKS! In fact, I have found only one typo in the entire book. Caveat: I am only two-thirds of the way through, but I have seen enough to be blown away. This is what good written training ought to be. Well done, Peter Armstrong and Manning!
The combination of Rails on the server and Flex on the client is a beautiful thing. It is incredibly fun and satisfying to work with. Although you will probably have the most fun if you have already done some RESTful Rails and some Flex programming, the experience is not strictly a prerequisite. Get it and go!
The opening iterations (chapters) develop a standard Flex client-side application architecture. It is the architecture that I found in my other Flex books. Latter parts of the book show a refactoring of the 'standard' architecture to a Cairngorm-style MVC architecture. This results in a much more manageable and extensible application architecture. Then it shows a refactoring to use ActionScript objects appropriately in lieu of XML on the client. Next, it shows how to the RubyAMF Flash Remoting gateway for communications between Flex and Rails. Finally, it refactors the client code to run in AIR (Adobe Integrated Runtime), a cross-platform standalone client-side environment.
If you are a beginner to Flex get 'Adobe Flex 2: Training from the Source' by Tapper et al (pre-orderable in Flex 3 version)
If you want to see deep into Flex and its capabilities, especially when tied to a Java server, get
'Rich Internet Applications with Adobe Flex & Java (Secrets of the Masters)' by Yakov et al
But if you are into Rails and want the best tutorial on Flex and Rails, this is it!