About
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).

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.
Thanks
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). http://e2easy.wordpress.com
My personal web site is at: http://www.danielfreeman.co.cc
(Neither of these has been updated in a while).
Very nice components.
I wish you did not use XML, but things like sprite add child.
You don’t have to use XML. A few developers have given me similar feedback. The latest updates have improved non-XML ways of doing things.
See http://madskool.wordpress.com/2011/10/11/improved-pure-actionscript-support-in-madcomponents/
It’s not addChild(), but I’ve added three methods attach(), attachVertical(), and attachHorizontal(). Also attachPages() for adding pages to view flipper, navigation, or pages.
No XML.
There’s a whole bunch of examples here:-
http://code.google.com/p/mad-components/source/browse/#svn%2Ftrunk%2FPureMadComponents%2Fsrc
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:
http://code.google.com/p/eqsim-state-machine-and-interface-components/
Again, thanks for the great resource you have made and I look forward to hearing more about your future endeavors!
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?
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.
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.
Thanks!
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:- http://code.google.com/p/mad-components/issues/entry
Or, there’s no problem mentioning it here.
Hi,
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 (http://ameblo.jp/jesusisinus/entry-11106565130.html). 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
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):-
http://madskool.wordpress.com/2011/12/05/10-new-madcomponents-features/
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.
thanks
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:-
http://madskool.wordpress.com/2011/05/27/madcomponents-sans-xml/
Dan,
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
I need help of someone who can fix my airplay based app. Its very urgent.
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:-
http://www.madewithmarmalade.com/devnet/forum
May be some other developer can help me here.
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.
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.
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.
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.
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?
My guidance would be to ask Todd Anderson. http://custardbelly.com/blog/?p=173 . 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
.
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.
WordPress strips out all the XML. Try typing that again but replace < and > by [ and ].
it’s the same xml used in MadComponentsPurePicker.as sample.
thanks for your help
I’ve updated the MadComponentsPurePicker.as sample on the Google site… showing how to do this.
http://code.google.com/p/mad-components/source/browse/trunk/PureMadComponents/src/MadComponentsPurePicker.as
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.