Adam Milligan

Biography

  • Why not to use ARC

    Why not to use ARC

    If you have done any development for iOS in the past few years you have at least some familiarity with ARC. The overall response to ARC since Apple released it with iOS 5 has been little short of...

    Read More
  • Cedar Expectations

    Cedar Expectations

    As I wrote here we've used OCHamcrest matchers for some time for writing expectations in Cedar, but have found them unsatisfying. We wanted convenient matchers, like the ones Jasmine provides for...

    Read More
  • The Trouble With Expectations in Objective C

    The Trouble With Expectations in Objective C

    At Pivotal we write a lot of tests, or specs if you prefer. We TDD nearly everything we write, in every language we write in and on every platform we write for, so we actively work to improve...

    Read More
  • Cedar vs. Xcode 4 (round one: the command line)

    Cedar vs. Xcode 4 (round one: the command line)

    I've finally found a bit of time to update Cedar to work with Xcode 4, and I hope to have it working smoothly some time in the next few days. However, I've already come across my first...

    Read More
  • Colorized output for Cedar

    Colorized output for Cedar

    Thanks to Sean Moon and Sam Coward Cedar now has colorized output on the command line: If you'd like to display colorized output like this you can specify the appropriate custom reporter class...

    Read More
  • iPhone on blocks: UITextFields

    iPhone on blocks: UITextFields

    If you've ever used a UITextField in an iPhone project (or, I suppose, an NSTextField in a Cocoa project) you know that you pass it a delegate object in order to respond to events. Handling the...

    Read More
  • iPhone UI Automation tests: a decent start

    iPhone UI Automation tests: a decent start

    Apple's inclusion of the UI Automation component in Instruments with iOS 4 is a definite step in the right direction. It's the first reasonable way to write tests that externally exercise your...

    Read More
  • iPhone UI Automation tests with Jasmine

    iPhone UI Automation tests with Jasmine

    Since the language of the new iPhone UI Automation component is JavaScript I figured the easiest way to organize tests is to use a JavaScript testing framework, such as Jasmine. So, I created...

    Read More
  • Cedar device specs and CI

    Cedar device specs and CI

    One of the most common complaints I've read about OCUnit, the unit testing framework built into Xcode, is that the tests you write with it won't run on the device. In addition, I personally have...

    Read More
  • Objective-C exceptions thrown inside methods invoked via NSInvocation are uncatchable

    Objective-C exceptions thrown inside methods invoked via NSInvocation are uncatchable

    Whether you're using Cedar or not, if you've upgraded to the iOS 4.0 SDK you may have run into some odd behavior with exception handling blocks not catching exceptions. Strangely, the problem...

    Read More
  • Keeping track of Cedar

    Keeping track of Cedar

    If you're interested in following the growth of Cedar, or just testing iPhone projects in general, you can join the public Cedar discussion group or follow Cedar on Twitter at @cedarbdd. I'll...

    Read More
  • Cedar has moved to Pivotal’s GitHub account

    Cedar has moved to Pivotal’s GitHub account

    For anyone following the Cedar project on GitHub, I've moved it from my personal GitHub account to Pivotal's GitHub account. This isn't a fork, it's a new repository that from here on out I'll...

    Read More
  • The run loop

    The run loop

    When I started writing Objective-C for iPhone and iPad projects I started to hear about these mystical and all-powerful run loops objects. Everything seems to relate to run loops, all the class...

    Read More
  • BDD-style testing for iPhone projects

    BDD-style testing for iPhone projects

    A little while ago I wrote about Cedar, a BDD-style testing framework for Objective-C. The responses I received nearly all went something along these lines: "That's great! Too bad I can't use...

    Read More
  • BDD-style testing using Objective-C

    BDD-style testing using Objective-C

    As we've grown our mobile practice at Pivotal we've tried to apply to it the same principles and disciplines that have made our Rails practice successful. Often the one that we have the most...

    Read More
  • Pseudo-classical inheritance in JavaScript — a rebuttal

    Pseudo-classical inheritance in JavaScript — a rebuttal

    A couple weeks ago Davis wrote about using pseudo-classical inheritance to make your JavaScript more object-oriented. I agree with a number of his points about the goal of well-structured code. ...

    Read More
  • Programmers Anonymous

    Programmers Anonymous

    I recently had an opportunity to work on a relatively high-profile project with a crazy timeline. A coworker and I spoke with the client for the first time around lunchtime on a Friday, and the...

    Read More
  • Beware the frumious nested attribute

    Beware the frumious nested attribute

    Nested attribute assignment is one of the recent additions to Rails that made a great deal of sense, and made a lot of people happy. Chances are you've either used nested attribute assignment by...

    Read More
  • Little, shiny robots

    Little, shiny robots

    One of my favorite computer games when I was growing up was Robot Odyssey; I imagine it will come as a surprise to no one that I was a nerdy kid. This article is a little bit of a tribute to that...

    Read More
  • Rake, Set, Match!

    Rake, Set, Match!

    A few days ago I finally discovered why rake db:migrate:redo consistently angers me nearly as much as watching Paula Dean deep fry the vegetable kingdom. As any devoted connoisseur of the db rake...

    Read More
  • loading
    Loading More...