Channels ▼

Mike Riley

Dr. Dobb's Bloggers

Learning Flex 4 Book Review

November 22, 2010

Even with the excitement over HTML5, Adobe's RIA strategy remains in full effect with the Adobe Flex SDK and Flash Builder environment. Flex offers developers and designers an environment capable of delivering rich desktop and mobile applications. Does Learning Flex 4 supply the necessary training to leverage this established application delivery and execution platform? Read on to find out.Compared to the spectrum of Rich Internet Application (RIA) alternatives, Adobe Flex continues to offer developers one of the easiest and fastest ways to develop RIAs capable of executing on a broad range of desktop operating systems and mobile devices. Those already well versed in object oriented programming, the Eclipse IDE and web technologies like XML, CSS and JavaScript will be able to quickly get up to speed with Flex. Learning Flex 4 is an effective catalyst for this task. The authors of the book are experienced Flex developers, and their choice of sample applications demonstrated in the book do a great job showing how easy it is to build capable Flex and AIR applications. Something I found rather notable was the author's preference for a PHP-MySQL web back-end for database transactions instead of Adobe's own ColdFusion server. This showed me that the authors were really expressing their real-world interests in Flex and not just there to promote Adobe's marketecture.

After opening with a basic introduction on defining Flex and its relationship to other RIA's, the authors walk through the Flash Builder/Eclipse environment optimized for Flex app development. The next few chapters demonstrate Design and Source Modes, as well as offer a crash course in ActionScript. Flex debugging, ActionScript event management and data binding are covered in chapters 6 through 8 respectively. Chapters 9, 10 and 11 review Flex application layouts, forms (validation, formatting, functions, etc.) and consuming and displaying XML data from local and remote sources. Controlling visibility and navigation and working with View States are discussed in the next two chapters. Eye candy effects as well as styling and skinning are reviewed in Chapters 14 and 15, while the final three chapters provide instruction on using a MAMP or WAMP server to transact data back and forth via a Apache/MySQL/PHP application server running on either a Mac or Windows operation system (mention of a Linux-based LAMP stack is oddly absent from the book). Unfortunately, the authors didn't go far enough with this idea since they failed to provide a working example of the open source PHP implementation of the Action Message Format, AMFPHP. Given the book's additional appendixes on MySQL and PHP, an appendix on AMFPHP would have been a great way to fulfill the book's coverage of various alternative technology options available to Flex developers.

One of the minor aspects that I struggled with was identifying the convincing argument of when to use Flex versus other Flash or RIA solutions. I know what Flex is and why it is different than Flash, but given the confusing market positioning by Adobe of Flash, Flex and AIR, I still can't state with complete confidence the definitive application dividing line between when to use each of the three technologies. I had hoped that Learning Flex 4 would help clarify this ambiguity, but beyond reiterating what I already knew about Flex in the commercial and enterprise application development space, the authors could have spent more space in the book's first chapter on clarifying not only what the main differences are between the three application configurations, but more importantly, concrete examples of when Flex is the ideal RIA for the job.

With this lingering question aside, the book on the whole achieves its objective of teaching the basics of Flex development. The sample walkthroughs are easy to follow and the book offers a good primer to any Flex programming newcomer. The book's sample projects and comments can be found on the Learning Flex 4 website.

Side commentary: Unlike the print edition Learning Flash book I reviewed recently, I opted instead to review the electronic book edition of Learning Flex 4. While the PDF version is a digital duplicate of the printed version, the EPUB and Mobi editions lose a lot of the book's print-centric layout and design aesthetics. It's obvious that these Adobe Developer Library books published by O'Reilly are first and foremost intended for print/fixed page geometry consumption. While such design targets pay homage to Adobe's Postscript foundation, the book world is rapidly expanding into digital book consumption. As such, I'm looking forward to the day when book publishers take advantage of the richer media experiences that electronic books have been promising, such as embedded video and audio, seamless links to web resources, real-time online chats and discussion forums, authorized in-place content updates and other enhancements that will take the electronic reading experience beyond a replication of the static ink-on-paper experience. Until then, readers like me who prefer the electronic editions for their portability, rapid delivery and convenience will have to remain patient while the rest of the world catches up and raises the baseline expectation bar on what defines a book in the 21st century.

Title: Learning Flex 4: Getting Up to Speed with Rich Internet Application Design and Development Authors: Alaric Cole and Elijah Robison Publisher: O'Reilly Media ISBN: 978-1-4493-9937-5 Pages: 480 Price: $38.99

Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 


Video