Monday, November 21, 2011

FoneMonkey, Objective-C, and the Dark Arts

Dr. Dobbs just published part 2 of my series on FoneMonkey for iOS. Part 2 gets deep into the very mysterious business of how we record and playback user interactions.

Not only does this article reveal the secrets to extending FoneMonkey, but it also reveals techniques for doing unholy things in Objective-C like replacing method implementations and grafting methods onto objects at runtime.

Java took them away, but Objective-C puts the guns and knives back into programming!

Monday, November 14, 2011

FoneMonkey for Android has Landed!

Just pushed FoneMonkey for Android 0.6 Early Access out the door. You can download it here. We'll be uploading documentation and sample projects over the next few days.

But now...sleep.

Wednesday, November 9, 2011

Adobe kills Flash

Given that mobile is the future (and the present), this news that Adobe is EOL'ing mobile Flash amounts to a death sentence for desktop Flash as well. It's sad (and perhaps disturbing) that a mature and powerful technology loved by so many was so easily killed off by the neighborhood bully (and everybody just stood by and watched).

Time to learn to love JavaScript.

Tuesday, October 25, 2011

Dr. Dobbs meets the monkey

I think Dr. Dobb's was the first tech mag I ever read (back in the 80's!). The good doctor just published an article I wrote about FoneMonkey.

Wednesday, May 11, 2011

We're the "E" in iOS: Open source projects fill Enterprise holes in Xcode

A long, long time ago, just as the internet bubble was really getting going, many pundits were talking about “internet time” to describe the radical time compression brought about by the web. Software release cycles were suddenly occurring over periods of just a few months rather than years, and technology platforms were similarly revving over just a few years whereas previously it had literally taken decades for enterprise IT to make any major changes in how they built software.

If internet time was fast, what are we to make of “mobile time”? The big bang of mobile time, the release of the first iPhone, was just four years ago. Enterprises certainly needed to move quickly to keep up with internet time, but at roughly the same four-year mark, most enterprises were doing little more than creating static websites. There has been no comparable gestation period for mobile development since Apple was nice enough to skip over infancy and adolescence and give birth on day one to fully formed, mature applications employing radically new user interfaces.

While iPhone applications have been pretty “magical” since day one, enterprise-class tool support for iOS app development has been quite a bit slower in coming. It’s hard to find many enterprise developers having anything nice to say about Apple’s Xcode IDE, which is currently the only serious game in town for developing iOS apps. Try the Google search Xcode +”piece of crap” and you’ll be treated to more than 40,000 results. There are of course many similar but more colorful searches you can try.

Back in the days of internet time, Sun created a virtually unusable IDE called Java Workshop. Fortunately for internet time, other companies including IBM, Borland, and Symantec created competing IDE’s and Java development has enjoyed robust tool support ever since. The closed nature of iOS however has understandably dampened the enthusiasm anybody outside of Apple might have for jumping into the nascent iOS development ecosystem. After all, Apple can at any time change the iOS platform in such a way as to make third-party tools incompatible, similar to the way in which iTunes was continually revved to maintain incompatibility with the Palm Pre mobile phone.

So, since the usual commercial suspects have too much business sense to enter into the iOS development ecosystem, it’s left up to those of us with little or no business sense – I am of course referring to open source software developers – to fill the gap!

Monday, April 4, 2011

FoneMonkey 5, baby!

This morning at 7am we unleashed FoneMonkey 5, our first officially supported production release of our record/playback functional testing tool for native iOS apps on iPhone and iPad.

FoneMonkey 5 is by far our most solid release yet. Go get it now at!

Friday, April 1, 2011

My Podcast with Coté

Yesterday I had the pleasure of being a guest on RedMonk analyst Michael Coté's "Make All" podcast. We discussed the evolution of software dev over the last 15 years, and talked about how native apps and client-side runtimes like Flash support the delivery of full-blown client-side user interfaces, which back in 1996 is what most of us expected from Java applets.

Back then, it wasn't long before we woke up to the twin realities of browser compatibility and bandwidth constraints and were forced to shunt Java from the front- to the back-end of application development, and we spent several years dealing with the page-based hack that became known as MVC2.

Plentiful bandwidth and a new generation of client-side technologies such as Flex, Silverlight, Android, and iOS are finally allowing us to build user interfaces in a much more direct, natural, and efficient fashion than the page-based MVC2 approach, and arguably, provide similar advantages over the the JavaScript-meets-DOM hack now known as AJAX.

You can listen to my complete conversation with Michael here.

Thursday, March 31, 2011


The web is abuzz today with speculation about just what James Gosling will be doing for his new employer, Google. My own two cents are included in this post from John Waters at Application Development Trends.

Friday, March 4, 2011

FoneMonkey 4.2c improves text input handling

We very pleased to announce the availability of FoneMonkey 4.2c which improves handling for UITextField and UITextView components.

4.2c provides robust handling of keyboard input, including recording of the Return key, and fixes an issue where sometimes touch events that ended field editing would be recorded prior to recording the text input itself. On playback, FoneMonkey now triggers all appropriate delegate methods and notifications.

We believe that keyboard-related input issues were the last major problem facing us and 4.2c should reliably provide recording and playback for virtually all common user interface gestures.

Script and generated code storage has been moved back to the base Documents directory to make it easier to use iTunes to move scripts on and off iPhone and iPad devices. FoneMonkey scripts are now suffixed with .fm. You will need to rename any existing scripts.

FoneMonkey 4.2c is available for immediate download at Thanks for the continued feedback. Your input is the primary factor determining what we tackle next!

Tuesday, February 8, 2011

FoneMonkey 4.2 adds iOS UIAutomation Support

We're excited (especially since now we can finally get some sleep) to announce the availability of FoneMonkey 4.2, the latest incarnation of Gorilla Logic's free and open source functional testing tool for iOS apps on the iPhone and iPad.

FoneMonkey 4.2 includes numerous bug fixes and adds several significant new features including:

  • Generation of ready-to-run OCUnit test scripts - Automatically convert "native" FoneMonkey test scripts to Objective-C code that can be extended with Objective-C control logic to add control flow or data-driving logic to your tests.
  • Generation of ready-to-run JavaScript-based tests for Apple's UIAutomation Framework - Automatically convert "native" FoneMonkey scripts to JavaScript code that can be run in Apple's Automation Instrument. You can uyse FoneMonkey to record UIAutomation scripts which allows for test scripts to be maintained in JavaScript rather than Objective-C. Since these UIAutomation scripts require no FoneMonkey libraries to run, they can be executed against "release" builds of your application.
  • Recording and Playback of Device Rotation - You can record and playback device rotations on the simulator or on devices.

This release is a significant step forward in the maturing of the FoneMonkey project. Thanks to the members of the FoneMonkey community for providing the feedback and support essential to making FoneMonkey a continuing success.

FoneMonkey 4.2 is available for download at

Happy testing!


Tuesday, January 18, 2011

See FoneMonkey at iPhone DevCon!

I'll be presenting Automating iOS User Interface Testing with FoneMonkey at iPhone/iPad DevCon East in April. FoneMonkey is a free and open source, record/playback functional testing tool for native iPhone and iPad apps. If you're going to DevCon, come on by and check out the monkey!