... a first class learning experience that is tough to quantify but easy to qualify: Don't miss it.
Flexible Rails is a book about how to use Ruby on Rails and Adobe Flex to build next-generation rich Internet applications (RIAs). The book takes you to the leading edge of RIA development, presenting examples in Flex 3 and Rails 2.
This book is not an exhaustive Ruby on Rails tutorial, nor a Flex reference manual. (Adobe ships over 3000 pages of PDF reference documentation with Flex.) Instead, it's an extensive tutorial, developed iteratively, how to build an RIA using Flex and Rails together. You learn both the specific techniques you need to use Flex and Rails together as well as the development practices that make the combination especially powerful.
The example application built in the book is MIT-licensed, so readers can use it as the basis for their own applications. In fact, one reader has already built an agile project management tool based on the book example!
about this book
about the cover illustration
Part 1 Getting started
1. Why are we here? Where are we going?
1.1. Overview of the features and strengths of Flex 3 and Rails 2
1.2. Flash 9? Are you kidding me?
1.4. A preview of the book
2. Hello World
2.1. Installing everything
2.2. Windows or Mac OS X + Flex Builder 3
2.3. Windows + Flex SDK
2.4. Mac OS X (or Linux) + Flex SDK
3. Getting started
3.1. If you’re starting here
3.2. Freezing the Rails version
3.3. Disabling browser navigation integration
3.4. Adding login functionality to Rails
3.5. Adding login functionality to Flex
3.6. Adding data to the test fixtures
3.7. Checking the tests
3.8. Configuring Flex Builder to run and debug pomodo
Part 2 Building the application
4. Creating the main Flex UI
5. Expanding the Rails code, RESTfully
5.1. A brief note about REST
5.2. Calling the user by name
5.3. Creating the new resources (including migrations, models, and controllers)
5.5. Expanding our fixtures and keeping our tests passing
6. Flex on Rails
6.2. Listing tasks in Flex
6.3. Creating tasks in Flex
6.4. Creating and listing projects and locations in Flex
6.5. Making the Projects and Locations ComboBoxes work in the TaskCreateBox
6.6. About that None project and location
6.7. Updating and deleting tasks, projects, and locations
6.8. Keeping our tests passing
6.10. Exercises for the reader
7.1. Revisiting the HTML account signup screen
7.2. Rails and Flex validation — should you stay DRY?
7.3. Understanding Rails validation, and building custom XML for errors
7.4. A Quick look at validation in Flex 3
7.5. Integrating Rails validation with Flex 3 validation
7.6. Flex validators revisited
7.7. Keeping our tests passing
7.9. Exercises for the reader
Part 3 Refactoring
8. Refactoring to Cairngorm
8.1. Background and setup
8.2. Cairngorm event sequence overview
8.3. Creating com.pomodo.model. PomodoModelLocator
8.4. Creating com.pomodo.control.*
8.5. Adding CairngormUtils and ServiceUtils to com.pomodo.util.*
8.6. Creating com.pomodo.command.*
8.7. Creating com.pomodo.business.*
8.8. Deleting the com.pomodo.events package
8.9. Modifying the com.pomodo.components.*
8.10. Modifying Pomodo.mxml
8.11. Running pomodo
8.12. HTTPService Gotchas
8.14. Exercise for the reader
9. Holding state on the client properly
9.1. Refactoring, samurai coder style
9.2. Creating the model classes
9.3. Modifying the PomodoModelLocator
9.4. Modifying ServiceUtils
9.5. Modifying the business delegates
9.6. Modifying the commands
9.7. Modifying the components
Part 4 Finishing up
10. Finishing the application
10.2. Better security with attr_accessible
10.3. GTD semantics, including the Next Action concept and :dependent
10.4. Filtering tasks
10.5. The CommandShell
10.6. Logging out
10.8. Deleting users
10.9. Exercises for the reader
11. Refactoring to RubyAMF
11.1. Warning: biased author
11.2. Hello RubyAMF
11.3. Refactoring to RubyAMF, fast-forwarded
12. Rails on AIR (Adobe Integrated Runtime)
12.1. Converting pomodo to an AIR application
12.2. Refactoring event triggering
12.3. Online/Offline support
12.5. Exercises for the reader
Appendix A: How to use Subversion with Flex + Rails
Appendix B: Handwaving at omitted topics
About the Technology
Rails is a fantastic tool for web application development, but its Ajax-driven interfaces stop short of the richness you gain with a tool like Adobe Flex. Simply put, Flex is the most productive way to build the UI of rich Internet applications, and Rails is the most productive way to rapidly build a database-backed CRUD application. Together, they're an amazing combination.
About the book
With this book, you learn Flex by osmosis. You can read the book and follow along even if you have never used Flex before. Consider it "Flex Immersion." You absorb the key concepts of Flex as you go through the process of building the application.
You will also learn how Flex and Rails integrate with HTTPService and XML, and see how RESTful Rails controller design gracefully supports using the same controller actions for Flex and HTML clients. The author will show you how Cairngorm can be used to architect larger Flex applications, including tips to use Cairngorm in a less verbose way with HTTPService to talk to Rails.
- Flex 3 and Ruby on Rails 2 integrated with HTTPService and XML
- RESTful Rails controllers that support Flex and HTML clients
- Coverage of how to use Cairngorm to architect larger Flex applications
- A full application--not just a toy--developed and refactored iteratively
About the reader
Flexible Rails is for both Rails developers who are interested in Flex, and Flex developers who are interested in Rails. For a Rails developer, Flex allows for more dynamic and engaging user interfaces than are possible with Ajax. For a Flex developer, Rails provides a way to rapidly build the ORM and services layer of the application.
About the author
Peter Armstrong has been developing rich client applications for over 7 years. He worked with Flex full-time from July 2004 (since Flex 1.0) to October 2007 for a Silicon Valley startup, and was part of the team that won the 2006 Adobe MAX Award for RIA/Web Development. Before that, he was a Java Swing developer for over 4 years for another Silicon Valley startup. On the Rails side, Peter has been tracking Ruby on Rails since mid-2005 (since before Rails 1.0) and is the organizer of The Vancouver Ruby/Rails Meetup group. Peter is also a frequent speaker on using Flex and Rails together, including presentations at The Vancouver Flash/Flex Meetup, a RailsConf 2007 BOF, The Vancouver RIA Developer Camp and Rails to Italy in Pisa. Peter lives in the Vancouver, BC area and works as a Flex/AIR/Flash developer, writer (www.flexiblerails.com) and independent consultant (www.ruboss.com).
"Flexible Rails" changes the face of web application development.
Well Done! ... a thorough job of blending two of the best technologies!
Flex 3 on Rails 2 is much more than the sum of it's parts—and this book is the key.
A really nice book that covers all about Flex and Rails working together.