Filed Under: Flex with 0 Comments
Being a Java developer my preferred tool for building applications is Maven. Adobe does not seem to know of this tool which as been the industry standard for some years time and therefor there are no official Maven plug-ins for building Flex applications. I have used Israfil and Flex Mojos for some time and my experience is that none of them are worth the trouble.
Israfil is a dead project in my opinion. The main contgributer does not add new features and people tend to just fork it and build their own version without being able/willing to commit it back to the project.
At first glance Flex Mojos looks like the right tool for the job, however after using it for some time I think it’s not worth the trouble and I will try to explain why.
It is a bad idea (and maybe not legal) to have the Flex SDK as a dependency in you POM. §Using the compiler Java API is also a bad idea as you get situations where your code builds just fine in FB and breaks when using Flex Mojos. This is extremely annoying and you have to spend a lot of time on something which is a waste of time.
One thing which all Maven plug-ins have in common is that they enforce you to structure your Flex projects to suite Maven’s needs instead of what make sense. The concept of one artifact for each project does not work well with the Modules feature in the Flex framework. Nor does it provide an easy way to compile CSS-files to SWF-files without creating a new project. The Maven requirement makes you have to add a lot of complexity to your project as you need to create a lot of modules and projects just because of a requirement which makes no sense in Flex development.
What do I recommend? I recommend using the Flex Ant Tasks that ships with the SDK and use the Maven Ant Runner plug-in. This solves the problems mentioned related to Flex Mojos and it allows you to benefit from all latest innovations in the SDK right off the bat. With the plug-ins you have to wait for any new feature to be implemented.
I do not write this to piss off the authors of the plug-ins mentioned as they are all doing a great job. I really hope you get the plug-ins right so that I do not have to maintain Ant build scripts, so the best of luck to you. However I just felt that I should come clean and say what is my preferred way of building Flex applications.
Filed Under: Flex with 1 Comment
I’ve been playing around with the beta of FlexUnit 4 and I must say that it is exceeding my expectations. The single most painful thing to do in FlexUnit is to perform unit testing of user interactions. With the amount of code and pain involved in doing so not many people used the framework. However with FlexUnit 4 it’s so much easier, thanks to the inclusion of the Fluint framework into FlexUnit.
There is no reason why you should not upgrade today. FlexUnit 4 is backwards compatible and you can migrate each unit test whenever you would like. With the introduction of Fluint and it’s support for Sequences it is possible to unit test user interface interactions without having to write tons of code to accomplish it. You get to write less code and another very important aspect is that you can actually understand what your tests do some time later because of the simpler syntax of testing.
FlexUnit 4 is a huge step from the old versions and it is now on the same level as JUnit and other test frameworks. Especially with the easier configuration of test runners, unit testing and continuous integration will be so much easier in the future. I am also over the moon about the FlexUnit plug-in which is coming to Flash Builder.
I have a few projects with unit tests using FlexUnit 0.9 and upgrading to FlexUnit 4 is very simple. All your tests can still be reused and all that is required is that you change the way you setup the test runner.
Here is how little I had to change in one of my projects:
private function onCreationComplete():void {
testRunner.test = createSuite();
testRunner.startTest();
}
private function createSuite():TestSuite {
var testSuite:TestSuite = new TestSuite();
testSuite.addTestSuite(SomeModelClassTest);
testSuite.addTestSuite(SomeUIComponentTest);
return testSuite;
}
....
<flexUnitUIRunner:TestRunnerBase id="testRunner"/>
With FlexUnit 4 this is actually made simpler, just have a look:
private var core:FlexUnitCore;
private function onCreationComplete():void {
core = new FlexUnitCore();
core.addListener(new UIListener(testRunner));
core.run(SomeModelClassTest, SomeUIComponentTest);
}
....
<flexUnitUIRunner:TestRunnerBase id="testRunner"/>
I assume you have read the post FlexUnit 4 feature overview which gives a hint at what you can expect. Besides this one page the documentation is pretty much non-existing, but you can have a look in the source tree in the branch 4.x for samples of how to use the new features.
One would expect that it would be possible to see all the new features documented as unit tests, however it does not seem as if the FlexUnit team believe in dog food as the unit tests are far and few between.
Go download the FlexUnit 4 Beta 1 now!
Filed Under: Misc with 0 Comments
I’ve written about how much I think Cairngorm should be put to sleep, but having a big mouth sometimes has the downside that you might have to your money where your mouth is. Allistar challenged everyone who’d been complaining about Cairngorm to step up and join the Cairngorm Committee, so I did.
Just this evening the Committee had their first conference call and it actually might look as if the framework might come back from the dead. What is even better is that it might actually become a better more developer friendly framework.
Filed Under: Misc with 0 Comments
MediaMaster was one of the direct competitors of the music service Ezmo which I helped build. It was with sadness I read today that they too had to close down the service due to lack of funding. I know all to well how difficult it is to fund such a service and given the current global financial crisis it’s not a huge surprise.
Out of the closest competitors to Ezmo I guess it was Anywhere.FM who really made it, they got swallowed by Imeem just a few months after launching.
It seems like subscription based services like Spotify are catching on, but to me those services are more about music consumtion than music collection. In my opinnion there is still room for services which provide a way for music collectors to enjoy music digitally whereever they may reside. Maybe it’s me being an old fart, but I like to have some piece of music I can call my own in the sense that it’s my collection…
I wish my Swedish friends in Spotify all the best and I hope they can sit at Steve Jobs’s table and turn down a 30 billion dollar offer
UPDATE!
Not even the record industry themselves are capabel of creating music services which last over time. This week Sony BMG and Universal Music’s joint venture TotalMusic had to shut down. Aparently they had some of the same problems as the other services mentioned here and this makes you wonder if this really is an industry that’s worth saving or if they should just die as a result of their own incompetence.
Filed Under: Misc with 0 Comments
It’s always funny when you see the results of software architects having jerked off extensively while drawing diagrams on how to write applications. The Patterns&Practices site by Microsoft is one of the best places to see this in the wild.
One such jerk off session resulted in what they have called Three-Tier RIA Application Scenario. It has more patterns than Paris Hilton has bags. I guess this is what happens when someone with an engineering degree tries to explain in simple words what goes arround in their head.
Filed Under: Flex with 0 Comments
Yesterday I was excited about SpringSource helping out with building an improved version of BlazeDS which works even better with the Spring Framework. Today I read on InfoQ that SpringSource is indeed doing even more exciting stuff, they’re helping take Christophe Herreman’s Prana Framework to the next level. Spring ActionScript is the new name and this is really great news and everyone should get excited, right now!
Most of the current Flex/ActionScript frameworks tend to have the same problem, that they don’t focus upon developer productivity. They guys and girls at SpringSource have a great track record when it comes to creating developer friendly frameworks, so this is great news for those of us who’s batteled with Cairngorm and other MVC frameworks for some time.
MediaMaster was one of the direct competitors of the music service Ezmo which I helped build. It was with sadness I read today that they too had to close down the service due to lack of funding. I know all to well how difficult it is to fund such a service and given the current [...]
It’s always funny when you see the results of software architects having jerked off extensively while drawing diagrams on how to write applications. The Patterns&Practices site by Microsoft is one of the best places to see this in the wild.
One such jerk off session resulted in what they have called Three-Tier RIA Application Scenario. It [...]
Yesterday I was excited about SpringSource helping out with building an improved version of BlazeDS which works even better with the Spring Framework. Today I read on InfoQ that SpringSource is indeed doing even more exciting stuff, they’re helping take Christophe Herreman’s Prana Framework to the next level. Spring ActionScript is the new name and [...]