

What's in my iOS Toolbox? Part 2 - edsancha
http://edsancha.com/blog/2014/02/03/whats-in-my-iOS-toolbox-2.html

======
wattjustin
My own plug which I apologize for, but there's a good collection of interviews
with iOS developers and the tools they use here:
[http://www.objectivesee.com/](http://www.objectivesee.com/) that I genuinely
think anyone reading these comments would find interesting.

------
MaxGabriel
My personal recommendation on Automated Testing is to use Subliminal
[https://github.com/inkling/Subliminal](https://github.com/inkling/Subliminal)

Subliminal allows you to write tests in Objective-C that interface directly
with your app. This makes your tests be more powerful (can test things not
visible to the user, and can simulate activity that UIAutomation can't (like a
credit card swipe, which is why KIF was invented)).

More amazing is that you get the benefits of static typing. Instead of
stringly-typed accessibility identifiers, you can use string constants
(NSString * const kIdentifier = @"blah").

It runs by bridging UIAutomation and Objective-C, so its more reliable than
KIF, which has to use private API to simulate touches. This doesn't work
correctly for gesture recognizers and is very fragile.

~~~
rbritton
I've been using UIAutomation to automate screenshot generation and make it
easier to keep support documents up-to-date. Do you know if this works for
that? Straight UIAutomation times out a lot doing that and often requires
multiple runs to get everything.

~~~
MaxGabriel
Yes. You can send Javascript to be evaluated by UIAutomation so it has all the
capabilities of that UIAutomation does. There's a PR that adds this natively
[https://github.com/inkling/Subliminal/pull/118](https://github.com/inkling/Subliminal/pull/118),
but you can also just implement it yourself quite easily:

    
    
        - (void)captureScreenshotWithFilename:(NSString *)filename
        {
            [[SLTerminal sharedTerminal] evalWithFormat:@"UIATarget.localTarget().captureScreenWithName(\"%@\")",
                                                    [filename slStringByEscapingForJavaScriptLiteral]];
        }

------
ary
This series of posts appears to be a somewhat poor copy of another blog
(although it is linked).

[http://benscheirman.com/2013/08/the-ios-developers-
toolbelt/](http://benscheirman.com/2013/08/the-ios-developers-toolbelt/)

------
austinl
Another suggestion (now that this post has been extended) is Mattt's new
collection of CLI tools called Nomad [http://nomad-cli.com/](http://nomad-
cli.com/)

------
kumarski
Might want to change the title to "Part 2"

Parte Segundo or second part sounds a bit unusual.

Good content is always king though.

------
javienegas
Again that is a very interesting article. Mixed feelings about Cora Data -.-

