Skip to content
January 23, 2012 / Daniel Freeman

Why developers are using MadComponents

MadComponents is a free open-source UI framework for Adobe AIR mobile applications.  It’s popularity seems to be founded on the advantages it offers over using Flex in terms of file size, performance, and ease of development.

Here’s some of the feedback and endorsements I’ve received from developers…

“I started playing with Mad Component and am banging my head against the wall for having wasted so much time with FlashBuilder! …It will take less than half the time to create the same app now” [R]

“After months of working with the Flex mobile components and having some performance issues. I finally took a Saturday to learn about your framework and compare the performance with Flex. Oh my god. It’s unbelievably good, well documented and easy to use. Straight AS3 is the way to go.”

“I’m glad I found MadComponents. I think I’ve pretty much given up on Flex for mobile at this point. I’m continuously disappointed with the performance on my IPad.” [K]

“To be honest, I’ve never done anything in Flex beyond the tutorials. It’s just all too bloated… MadComponents is wonderful – I making big use of it in a large and complex multi-platform app.” [J]

I got full screen video from camera running… more or less same code built with Flex – start the app on iPhone – get splash screen – get empty screen for maybe 2 – 3 seconds then get video. With MCs pure ActionScript – start the app on the iPhone – get splash screen
– IMMEDIATELY get video – there is a MAJOR performance increase.” [RT]

“Thank you! Thank you! These are the components that really should’ve been included in the standard library for AIR for Mobile in the first place!” [T]

“This is all very promising, as I have been stymied by the atrocious performance of Flex on mobile devices… You’ve really stepped out into the express lane by offering this library. There are very few usable libraries like this and I imagine demand will be high….Thanks for all the work you’ve put into this.” [RH]

“Adobe – this is the component set that should have been part of AIR/mobile from the beginning.” [J]

“I want to congratulate you on MadComponents – it has certainly made my life easier for cross-platform development!” [D]

“Awesome Work Daniel!!! Thank you soooooo much for for this and sharing it. I’m working on a project now and was banging my head with Flex’s MXML. Love this!!!” [M]

“This is excellent work. Evaluating now for our apps. Looks like just what I needed. Flex just can’t cut it for our app (and I’ve been doing AS and Flex for a *long* time before I make that statement).” [C]

“You have done a terrifIc job. Mad Components is by far more complete and look really better that Flex Components.” [MB]

“For months we were hooing and hawing about what technology to use for the next app that we were building. We looked at HTML 5, JQ Mobile and PhoneGap for a little while and this was great, except for some reason none of our early tests would consistently work in the different environments (iOS, Android, etc) … Flex can do quite well but we have had issues with glitchy animation… After a little bit of searching we came across the Mad Components library… the application was able to be developed in a much shorter time thanks to MadComponents.” [CULT]

“Thanks for all your efforts with MAD Components – the prototypes I’ve been able to build and deploy across the devices has definitely helped influence the investor’s decision.” [RT]

“I just started using mad components and I love it and it looks like it will replace Flex Hero in my next app.” [RF]

“I really like this library. It is excellent and by far the best out there especially for mobile development in AIR.” [MD]

I’ve used MadComponents to knock out apps on our last demos and it worked great. Highly recommend it. [JMD]

MadComponents is gold if you develop UI-oriented apps. [JZ]

We’ve started using Dan Freeman’s MadComponents due to the performance issues we’ve faced with the Spark framework [DC]

Daniel .. Your components are a god-send. MUCH MUCH faster than the Flex components. [JH]

Although I’m a senior AS/Flash developer, I stayed away from doing any serious mobile development, as technology just didn’t seem mature enough. I never really liked Flex, but I did check out every new major release, to see what’s cookin’. When recently reviewing FB 4.6 and AIR 3.2 I stumbled upon Daniel’s blog and decided to test his stuff.

I was, as most of you here, impressed. [ADIE]

Hi! after permuting through the 1001 bad ways to do UI in AS3 I’ve settled on madcomponents. [EF]



Leave a Comment
  1. Marcus Baffa / Jan 23 2012 2:33 pm

    Hi Daniel,

    I have used Madcomponents for prototyping an testing and they are really good.

    Now I intend to develop a product and I would to know if I can use MadComponents in a commercial application and what are the license restrictions associated.

    Thanks in advance

    • Daniel Freeman / Jan 23 2012 3:46 pm

      MadComponents are free and licensed under the MIT open license.

      This license isn’t restrictive at all. You can use MadComponents commercially. You can modify it, etc. No royalty fees.

      I just request that you blog about MadComponents, or help spread the word, or help support them – but this is just a request, not a condition of use.

      Please keep me updated as to how your project goes, and tell me about the app when it’s done.

      • Marcus Baffa / Jan 24 2012 1:02 pm

        Ok, thanks Daniel.

        Just one observation. I know that MadComponents is basically an UI framework, but it includes AMF features.

        Have you ever thought about including in the framework the namespaces associated with video
        and audio streaming and also a player. Including, of course RTMP and RTMFP.

        Audio and video streaming is once of the best features avaiable in Adobe products and can be used in a lot of mobile applications.

      • Zync / Nov 8 2012 6:46 pm

        Seriously you should charge for this! Use the same kind of model that the Greensock guy uses for TweenMax Library. Being sick and tired of the sluggish responsive of Flex this is in my must have library of SWC’s and I would gladly pay for it! Absolutely awesome work

  2. Ivan Ilijasic / Jan 23 2012 6:49 pm

    Hey Daniel. Can you point me to some store apps developed with MadComponents? That would be very interesting to see 🙂


    • Daniel Freeman / Jan 23 2012 8:44 pm

      You’re not the only one. There have been developers intensely active in the comments and discussion on this blog, but unfortunately, they disappear when their app is finished, and I never get to hear about the outcome.

      I assume a lot of apps are for enterprise, and not on the app store. One app I know about is this:-

      I only know that this one is based on MadComponents, because I happened to come across their blog with a Google search for MadComponents.

      • Ivan Ilijasic / Jan 27 2012 8:51 am

        Too bad you’re not getting decent feedback.
        I went on Android Market and app description says user needs AIR 3.0 🙂


      • Daniel Freeman / Jan 28 2012 5:31 am

        It’s a good time to keep up-to-date with the latest AIR runtime for Android. I’m having a lot of fun playing with the new features as they’re introduced. But MadComponents itself doesn’t contain dependencies on any AIR APIs at all. It just uses plain old core ActionScript.

  3. Marcus Baffa / Jan 24 2012 1:08 pm

    One more thing. If you could publish more articles about skinning Madcomponents it would be really helpful.

  4. John Pruitt / Feb 13 2012 10:36 pm

    I’ve used Flex Builder since version 2 and have done quite a bit of Action Script in background, but have never considered using AS to actually create the User Interface. After reading your comparison article and doing my own comparison between Flex generated code for a simple input box and the AS code to do the same thing, I’m simply stunned. I’m just starting to develop my first mobile application and have been looking for the right environment to develop in. I had just updated to Flash Builder 4.6 because of one feature that I wanted. The ability to set SoftKeyboardType to Number. I don’t see that ability in Madcomponents, but have figured out how to create an input box that supports that feature using straight AS. My question is, can Madcomponents support SoftKeyBoardType on it’s input box or can it be used as a container for an AS component?

    • Daniel Freeman / Feb 14 2012 5:58 pm

      To be honest, I hadn’t got around to looking at setting the soft keyboard type.

      But I think the hooks I’ve made into the input component should allow you to do it. Can you do something with the flash.text.TextField within UIInput? Something like this…

      var textField:TextField = TextField(UIInput(UI.findViewById(“myinput”)).inputField);

      … then use your pure actionscript technique. ?

      Please leave a somment with your solution if this is the key to doing it.

      • John Pruitt / Feb 14 2012 9:36 pm

        TextField.SoftKeyboardType isn’t valid.
        StageText is used instead of TextField for this.

        This is the code I found for creating the input box that supports SoftKeyboardType

        var myInput:StageText=createInputItem();

        protected function createInputItem():StageText
        decoration = new Sprite();;, 0x000000, 1);, 1);, 200, stage.stageWidth-12, 70,20);;
        stageTextInitOptions = new StageTextInitOptions(false);
        stageText = new StageText(stageTextInitOptions);
        stageText.softKeyboardType = SoftKeyboardType.NUMBER;
        stageText.returnKeyLabel = ReturnKeyLabel.DONE;
        stageText.autoCorrect = false;
        stageText.fontSize = 40;
        stageText.color = 0x000000;
        stageText.fontWeight = “bold”;
        stageText.stage = this.stage;
        stageText.viewPort = new Rectangle(10, 210, stage.stageWidth-20, 70);
        return stageText;

        Parameters would obviously need to be passed to make it useful, but this is fine for testing. Obviously it’s possible for it to be a child of another component since it can be such in MXML.

        I’m sure you don’t want to make changes to MadComponents that would require AS3 in order to function (unless maybe it was done in a totally separate Lib), but I’m not having any luck figuring out how to create this stageText item as a child component of a MadComponents container.


  5. Daniel Freeman / Feb 15 2012 2:08 am

    Ok, I get the issue. (I’ve been so enthralled by Stage3D in AIR3.x, then I hadn’t paid that much attention to StageText). You’re right that I want to keep MadComponents free from AIR-specific APIs. I’ve based it on core AS3 to allow it to be used in the browser, as well as desktop and mobile.

    Here’s what I’d do….

    I’d use a <input> in my madComponents layout as usual. But I’d disable that textfield. textField.type=TextFieldType.DYNAMIC, textField.selectable=false.

    I’d listen for touch events on the components on this <input> Within the handler, I’d create a StageText (which will appear in-front of all MadComponents stuff anyway), and I’d put it in exactly the same position as the input. (use localToGlobal). Initialise it with the string from textField.text.

    No need for the decoration, because you’ll see the input component behind it. Just configure it to use the softKeyboardType. When you’ve finished entering text, remove it – and write that text to the textField.text.


  1. MadComponents to date « MobileAppDev

To discuss MadComponents/MC3D, join the Facebook group!

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: