Quality Coding

Better TDD: The AppCode Advantage


AppCode is an alternative IDE for Objective-C development. When it comes to test driven development, it’s superior to Xcode. But that’s not all. Check out the “inside-out” coding style it makes possible.

In general, AppCode lets me focus more quickly on semantics and less on fiddling with source code.

Are you interested in the AppCode templates I use?

Question: What other AppCode tricks do you like? Leave a comment below.

About the Author Jon Reid

Jon is a coach and consultant on iOS Clean Code (Test Driven Development, unit testing, refactoring, design). He’s been practicing TDD since 2001. You can learn more about his background, or see what services he can bring to your organization.

follow me on:
Disclosure: The book links below are affiliate links. If you buy anything, I earn a commission, at no extra cost to you.

Leave a Comment:

Anastasia Kazakova says 3 years ago

Do you mean smth like this name suggestion at 7:12: http://youtrack.jetbrains.com/issue/OC-9348?

    Jon Reid says 3 years ago


    Yes, for Extract Variable, it would be awesome if the suggested names for mock([NSUserDefaults class]) included mockUserDefaults, or at least userDefaults.

Matt says 3 years ago

Hi Jon –

I’m returning to iOS dev after a year or so break.

Anyhow, I’ve tried to follow along with this screencast & i’m getting errors. It seems that Appcode does not know how to link in classes from the main project.

I follow right along with your video, but when I create the Example class & I do tell it to be part of the main target, not the test target…. then I get a linker error… app code doesn’t know where to link in Example from.

I am using Appcode 3.0.4. I wish I could get an earlier version to try with.

I thought rather than bang my head some more (was already banging my head on Xcode the past few days).. I’ll just hang on & hopefully you know an easy way out.

Cheers & Thank you for all the great videos!

    Matt says 3 years ago

    As a quick fix, I’ve just included my SUT files into my Tests target.

    I hope Appcode fixes this in 3.0.5.. or anyone out there know a fix?

    Thank you!

    Jon Reid says 3 years ago

    Yup, something broke in recent AppCode regarding project creation. My workaround is to use Xcode to create the project, then switch to AppCode.

    For an existing project, the real solution is to change your Tests target:

    BUNDLE_LOADER should be set to your app, like $(BUILT_PRODUCTS_DIR)/Foo.app/Foo

    TEST_HOST should be set to $(BUNDLE_LOADER)

    With this, you shouldn’t have to include any production files in your test target.

Add Your Reply