Skip to content


Who am I ?

I am an experienced British freelance software developer and trainer, with a special interest in mobile applications, and RIAs.  Currently an expert in Adobe Flash Builder (Flex), AIR for desktop and mobile, and Android SDK development.

My experience of mobile telephony goes back to my early career when I contributed to the creation of the first GSM Mobile standard.  I am the inventor and author of a significant patent for Voice Activity Detection.  This algorithm has been manufactured into billions of GSM mobile handsets.

I work as a freelance developer, consultant, and on-site trainer, on projects throughout the world.  I mostly reside in Asia.

Leave a comment on this blog to contact me.  (Direct messages to me are not published for public viewing).



Leave a Comment
  1. Mark Fuqua / Apr 6 2011 3:53 pm

    When are the classes offered? Where? What is the cost? Are any offered online? I have checked out the prices for airline tickets to Malaysia and they are not cheap. I would be very interested in an online version.

    If I can come up with the money to travel (long shot) I would definitely consider live training. Do you have another website? I have been unable to locate one via Google.


    • Daniel Freeman / Apr 6 2011 4:59 pm

      I’m currently running native Android and native iPhone courses in Malaysia, and the occasional workshop related to my interests in mobile games, airplaySDK, Adobe AIR, etc. I’d consider running courses elsewhere, as I travel quite a bit. But the USA is tricky – because as a British (non-US) citizen, I can’t work there. Although if a USA university found a way to cut through the red-tape – I have mobile development courses suitable for undergraduates.

      No online courses. But I plan to blog more novice tutorials about Adobe AIR.

      My other blog is related more to RIAs and Flex (Flash Builder).

      My personal web site is at:

      (Neither of these has been updated in a while).

  2. c vic (@puppetMaster3) / Nov 6 2011 11:46 pm

    Very nice components.
    I wish you did not use XML, but things like sprite add child.

  3. jonkaye (@jonkaye) / Nov 30 2011 4:31 am

    I am working on some mobile apps and wanted to say thanks for your components and openness, I am eagerly working through the tutorials now.

    I recently made my Flash-based equipment interface component set — buttons, knobs, dials, displays, etc. — open sourced, so I wanted to let you know if you are interested in integrating them into your model or otherwise, please feel free to do so:

    Again, thanks for the great resource you have made and I look forward to hearing more about your future endeavors!

  4. Paul / Dec 5 2011 12:37 am

    If I use the abode air or the mad-components to create apps on iPhone, do I have to integrate it with xcode and deploy on my devices such as iPad? As I know, the apps which are developed without using xcode will be banned by apple company, am I correct?

    • Daniel Freeman / Dec 5 2011 1:50 am

      No. Clause 3.3.1 was revoked last year, and it was only in effect for six months. I can’t blame you for this misunderstanding though. When Apple locked Adobe out, the popular I.T. press made a big song and dance about it. But when Apple relented, and allowed AIR applications on iOS devices, I don’t it was publicised that well. I blame Adobe’s marketing.

      No need for XCode integration. Just publish AIR apps for iOS, and go.

  5. jonkaye (@jonkaye) / Dec 13 2011 6:07 pm

    I thought you mentioned an area to send you feature requests about the MAD Components (aside from the tutorial articles themselves), but I can’t seem to locate it.

    Do you have any plans to set up a discussion forum? Obviously we can go into the code ourselves to make whatever modifications, it just might enable the community of your users to help others and share what we’re doing with your great component set.


    • Daniel Freeman / Dec 14 2011 6:59 am

      A discussion forum is a good idea. Easiest thing for me is to set up a Facebook or Google+ group. Or does anyone have a suggestion for a better way?

      If the request is more like a fix or improvement, it can go here:-

      Or, there’s no problem mentioning it here.

  6. Junichiro Mizoguchi / Dec 14 2011 2:47 am

    I just would like to say “hello” and “good job!”
    I’m now developing an android application and I may deploy your madness soon 🙂
    BTW, I introduced your Mad components in my blog ( In this time, I didn’t ask your any permission to use, however, how shall I treat (or deal?) your logo mark on next time?
    I would like to put a sort of acknowledgement like “my product is empowered by Mad Components” with your logo.
    If you have any requirements and/or guidelines, please let me know ….

    thanks and regards

    • Daniel Freeman / Dec 14 2011 7:12 am

      I’ve no problem with people using the logo to promote MadComponents. I’m just happy when people spread the word. My requirements and guidelines are that people spread the word, and help to expand the MadComponents community. So it’s good to see you spreading the word in Japan.

      No need for an acknowledgement in your app – but please, please, let me know what you do MadComponents, especially if you publish an app, or make something for enterprise use.

      If anyone wants to get MORE involved, I wrote something about other ways to contribute here (scroll to the last section):-

      • Junichiro Mizoguchi / Dec 15 2011 12:09 pm

        Thank you for your kindly reply.
        I’ll try to spread your components’ availability as much as possible!!
        BTW, do you have any plan to support internationalization (i18n) ?
        If you don’t have, I want to know your basic idea and/or approach especially to handle label script localization.


      • Daniel Freeman / Dec 15 2011 5:34 pm

        My approach would be to write a bunch of classes containing static const String values. Write one class per supported language. Make sure you use the same variable names (eg. BONJOUR) in each class. But the strings values will be different “hello”, “bonjour”, etc.

        The you have a Dictionary() … LANGUAGES, set up that maps language codes to these classes.

        Now simply reference the Dictionary by Capabilities.language. Assign this to a public static var Strings:Class; … Strings = LANGUAGES[Capabilities.language]; and within your program, whenever you use a string, do it like this: Strings.BONJOUR

        If you want a right to left character set, you may need TLFTextField. There’s some discussion about how to use those in the comments of this post:-

      • Junichiro Mizoguchi / Dec 18 2011 6:50 pm


        Thank you very much for your kindly advice. Luckily, I will not support right to left script such as Arabic in this time being, because I’m not familiar with those languages.

        thanks a lot

  7. Sushil Kumar Singh Raghav / Dec 24 2011 1:21 pm

    I need help of someone who can fix my airplay based app. Its very urgent.

    • Daniel Freeman / Dec 24 2011 1:35 pm

      I’m probably not your man. While I’ve dabbled with Marmalade SDK, I haven’t had time to delve as deeply as I have with Adobe AIR, Android SDK, or Objective-C. Alas, there just aren’t enough hours in the day – and my freelance work has taken most this year. Have to tried the experts on the discussion forums:-

  8. Sushil Kumar Singh Raghav / Dec 24 2011 1:50 pm

    May be some other developer can help me here.

  9. Steve T / Jan 8 2012 12:41 am

    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. thanks for the enlightenment. I still have one issue in regarding accessibility. I work at a university and everything we produce has to work with the native screen reader. So I’m working with Titanium to get access to native UI. I’m assuming if I want to ever go the Air route I would have to tap into the Native Extensions to get the voice over functionality. Any thoughts on that. I’m interested in exploring native extensions, I’d be interested in adding them to your framework. I’m intermediate but I’m getting pretty good. thanks for your great work.

    • Daniel Freeman / Jan 8 2012 4:46 am

      Thanks for the endorsement.

      I’m afraid I don’t know enough voice over or the UIAccessibility classes. I know that this capability is usually tied directly to native UIKit controls and views. But I assume there might be some kind of lower-level API that allows you to specify a phrase, and be notified when the user speaks it. If you can find such an API, then certainly Native Extensions can tie all the pieces together.

  10. / Jan 18 2012 11:08 am

    Help needed. I have built an app using SDK/AIR/FLEX and the voice assessibilty doesnt work on the application. From my understanding iOS SDK doesn’t provide this opition. CAn anyone direct me to any solution or statement confirming this.

    • Daniel Freeman / Jan 18 2012 5:04 pm

      iOS DOES have voice accessibility. Via the UIAccessibility classes. This capability is usually tied directly to native UIKit controls and views that you’d build in interface builder or XCode if you were developing natively. But if you’re using ActionScript, it might be possible to access UIAccessibility’s capabilities via a native extension. Possibly there’s some kind of lower-level API that allows you to specify a phrase, and be notified when the user speaks it.

  11. Neal Delfeld / Feb 29 2012 4:39 am

    I am working with as3flobile for air, and am having a terrible time setting the font’s leading (space between lines). I cannot seem to find the way to adjust this when using the as3flobile TextArea component.

    Can you offer any guidance on this?

    • Daniel Freeman / Feb 29 2012 6:33 am

      My guidance would be to ask Todd Anderson. . He wrote as3flobile, not I.

      Apart from discussion about extending MadComponents to include as3flobile, I haven’t used as3flobile in any great depth. Why would I? I have MadComponents :).

  12. gabriel / Apr 11 2012 3:36 pm

    sorry for the newbie question.

    if i have this:
    var DATA:XML =


    columns = new UIForm(mysprite, {DATA}, new Attributes(0, 0, 280, 200))

    how do i retrieve the current item?
    thank for all your help and work.

    • Daniel Freeman / Apr 11 2012 11:06 pm

      WordPress strips out all the XML. Try typing that again but replace < and > by [ and ].

  13. gabriel / Apr 11 2012 11:14 pm

    it’s the same xml used in sample.
    thanks for your help

  14. gabriel / Apr 16 2012 5:35 pm

    thank you, got it.
    i have another question, can i have a different way to populate it?
    i need labels with spaces, xml don’t allow that.

    • ocelotman / Jan 29 2013 5:01 pm

      Tag your labels as CDATA and the parser should ignore it

  15. Terry Corbet / May 30 2015 5:15 am

    I know. of course, that you are not the person responsible, but since no one at Adobe seems to take the responsibility, I am asking your help.

    As you know, we have moved from AGAL 2 to AGAL 3, yet there seems to be no Adobe documentation on the new registers, new op codes, new constants, new functional capabilities. If you haven’t he time or interest to update your extremely valuable SlideShare on this topic, can you at least suggest where to go to get the answers so that we can start taking advantage of the enriched toolkit?

    As a closely-related set of questions, do you know what the actual requirements are for a video card plus DirectX driver to successfully get GPU handling of the new VideoTexture? I have a medium-grade video card and still develop on an XP platform. I am getting pretty nice Video Texture behavior, but the reported functionality is software, not hardware driven. In the same way that Adobe product management feels no obligation to document the new software, they seem uninterested in publishing facts about what hardware/software combinations are required for new features.

    Any help, greatly appreciated.

    Thank you,

    • Daniel Freeman / May 30 2015 10:00 am

      Hi Terry,

      Unfortunately, nowadays my work/time is mostly unrelated to Stage3D stuff. Though I still take an interest. Did you watch the Flash Online Conference yesterday?

      I can certainly suggest where to get answers from the community most immersed and up-to-date with Stage3D. Go to the Stage3D Facebook Group:

      In defence of the dedicated Flash Team at Adobe – They are doing an admirable job, under the circumstances. With new features and enhancements to the Flash Player, AIR, and Stage3D. It is still an awesome technology, despite years of speculation that it as dying. However, under Shantanu Narayen’s “leadership”, Adobe doesn’t seem so interested in the Flash Platform anymore.

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: