My Flex and AIR Topics to Learn and Research for 2010
In the quest to become a well rounded Flex and AIR developer I’m always on the hunt for new areas to learn and explore. There are plenty of established pieces of the Flash Platform jigsaw puzzle to research as well. Every Flex and AIR project usually has one or more facets that are unique to the application being developed. Some have heavy emphasis on mapping components, others rely on LCDS. Others consist of a multitude of custom components and some utilize FMS or Red5. Some use PureMVC and some use modules. Over the past few years we’ve all seen various Flex and AIR applications that use one or more of these related technologies. Within the Flex and AIR ecosystem there are a multitude of areas that can be focused on. I personally think it’s probably pretty hard to be well versed in all of these areas. This doesn’t mean we can’t try! I think it’s getting to the point where Flash Platform Developers almost need to specialize in a few areas of Flash Platform related development (maybe it’s always been that way). Anyway, here are some areas that I am going to be looking into for the remainder of the year and into 2010. I’ll try to share some of my exploration and research on my blog however you can always follow me on Twitter to get information more frequently.
Flex 4
This is pretty broad but I want to build a full scale application using Flex 4 and as much of the Spark component architecture possible. Ideally I want to use Flash Builder for these endeavors.
Flex Unit 4
Unit testing and TDD are two topics that are of very high interest to me. I want to learn as much as possible about the next version of Flex Unit. There are improvements and new features that should really help and promote TDD for Flex and AIR projects. I’m really excited about the support available in Flash Builder for Flex Unit 4 and can’t wait to start exploring and using it. I’ll probably try to build some Flex 4 apps with Flash Builder to satisfy my first goal stated above and take a TDD approach using Flex Unit 4.
Presentation Model
I’ve developed several applications using Cairngorm and worked on quite a few existing applications that used it as well. I really want to learn more about pulling all code possible out of the view layer for Cairngorm based applications and using the Presentation Model to do so. I’ve been looking into this for a while and think I’ve gotten pretty close however I want to gain a solid understanding of this design pattern for use in Flex and AIR applications that specifically use Cairngorm.
LCDS Data Management Services
Simply stated I need to learn more about Livecycle Data Management Services. I’ve worked with BlazeDS to some extent however the features of Data Management Services are not available in BlazeDS so I’m going to switch my focus to LCDS for a while. I also want to learn more about how data synchronization works between AIR and LCDS. I learned quite a bit more about Java in 2009 (got an A+ in that class btw) to help with learning more about BlazeDS and imagine that will help me in my quest to master LCDS.
PureMVC
In 2008 I started looking into frameworks other than Cairngorm and actually ended up learning quite a bit about Mate. I even worked with Laura at ASFusion to author an article on Mate for Flash Magazine. I really like Mate however more and more people keep asking if I know PureMVC and I have to say “No.” If I learned Cairngorm and Mate I’m sure I can learn PureMVC. I just haven’t yet. 2010 is the year for me to get up to speed with PureMVC.
Flash Media Server
I actually worked with FMS on a project in 2007 however the usage was limited and it’s been a while. I imagine things have changed and there are new features to learn. This is another popular request that keeps cropping up. If I have time after getting through all of the items above I want to dig into FMS and build something more tangible with it using more features. I’d also like to look into Red5.
Flex Modules
Another thing that I’ve worked with a little bit but need a deeper understanding, specifically in regards to Cairngorm. This is another thing that I’ve been asked a few times. From what I know now working with modules isn’t really all that different to the way us Flash devs have been building apps since the late nineties. There are some technicalities though and I need to learn more about them. A more in depth look is in order though so I can say “Yeah I know how to use modules with Cairngorm.”
Flex Charting Components
Again I’ve worked with the Flex charts a bit. I’d like to take some time to really explore each one in great detail and perhaps create an example of my own. The animation aspects of the charts are pretty cool and any respectable “Dashboard” has to have charts on it
. I also want to look into the ILOG charts.
Custom Component Development
The Flex component lifecycle is an area that I really want to explore in greater depth. I used to have it memorized however that was after reading Programming Flex 2 from cover to cover and then studying for the Flex 2 Developer Certification. I’m torn on whether to learn about the Flex 3 component lifecycle or just focus on the Flex 4 component lifecycle. Still debating on that a bit but I’ll probably try to build some custom components of both variety.
So that’s a rough roadmap of what I want to look into next year. Hopefully I can touch every subject but at least I can look back on this blog post and make sure I’m on task. I have a whole list of non-Flex subjects that I want to look into as well, maybe I’ll post those soon. Running Kannopy for the last two years has been really awesome but there are a lot of things that need to be taken care of on a business level that distract from development “play” time. This is something to keep in mind if you decide you want to break out of the corporate world and build your own company or start freelancing. There is always something to do. Accounting, marketing, bookeeping, budgeting, project management, project estimates, NDAs, contracts, client meetings, travel, invoicing, billing, collections, design, hardware and software maintenance, equipment purchases and setup, etc., etc., etc… Just remember that you ARE the entire team and company, a one man/woman Army
Very interesting roadmap!
Definetely you’ll never stop learning when you are a developer, there are constantly emerging new technologies and possibilities, the more you know the better. Maybe i’ll steal your roadmap and add it to mine
Sean.gotoAndLearn(); // <– not referring to another site
When you start working with PureMVC, make sure you check out Fabrication (http://code.google.com/p/fabrication/), which is an extension of PureMVC that uses introspection and some other tricks to clean up the code that you have to write.
If you’re going to be using Adobe’s Flash Media Server, make sure that you feel comfortable with other AMF gateways (RubyAMF, Zend AMF, etc.), as many of the things that you want to do can’t be done in FMS ECMAScript – for that you need an AMF server to act as your backend. This includes things like database access, command line application running, and other things. I’m considering switching to Red5 after I get the current application I’m working on completed, but being as I’m not a Java developer, I may just stick with Adobe’s FMS.
Hey Stephen,
Thanks for stopping by to check out the blog post.
This is great info you’ve provided, thanks a ton!! I’ll look into Fabrication. I have worked with AMF a bit but certainly need to learn more about it. From what you’re saying here it sounds like Red5 might be a little more robust. I’ll have to check it out for sure!
Thanks again for taking the time to check out the post and provide some feedback. Really appreciate it.
Kind regards,
Sean
If you already know Java, Wowza might also be a better fit for you than FMS.
We use modules (with Cairngorm) in all our projects. Nothing special to know about them really although you do have to keep a close eye on memory management. I found using a single ModuleLoader and swapping modules in and out could cause nasty memory leaks. If your modules aren’t very large and you can afford to keep them in memory once used, you can use separate ModuleLoaders for each module and swap between them.
I have a similar problem; a desire to learn everything. It’s even harder when those interests extend beyond Flex.
As the breadth of Flash development increases, so does the requirement for specialization. I think most developers resist specialization because the churn of obsolescence in tech is continual. You have to pick your ponies wisely.
If Flex is your bread and butter, a work filter should be applied to study. If your immediate position requires (now or in the near future) a lot of custom component development, then by all means learn the intricate details of the component lifecycle. Just remember, those details are fleeting. Think of the investment in learning the ins and outs of Halo components, now contrast that with Spark.
In terms of Custom Component Development, the “Halo” architecture is not going away any time soon. It isn’t even deprecated in Flex 4. They will exist side by side at least until the next release; quite possibly longer.
So, unfortunately, you should probably learn both Halo and Spark.
I’d start with the old architecture, because that will most likely be the preferred approach through the next nine months, at least.