Month: November 2015

100 Hour Game—Day 3

Hours remaining: 79.

The Name

The young boy was walking
When the old man appeared
"Hey, you!" said the man
As he stroked his white beard.

"Now where do you travel?
To where do you head?
To the forest? The desert?
Or home to your bed?"

Continue Reading →

The 100 Hour Game—Day 2

Time Remaining: 84 Hours

After playing around with Inverse Kinematics and struggling to get it to transfer the velocity of arm motion to the coin in a realistic way, I thought about how much time I wanted to spend getting this to work and came to the conclusion that I didn’t really like this idea enough. So I threw it out and started over, which is always a good idea when you have severe time limitations.

I considered the set of limited skills and experience I had with SpriteKit and figured out what I could do with them in a hundred hours and came up with:

Continue Reading →

The 100 Hour Game

Inspired by Pancake and Burger by Philipp Stollenmayer, I want to make and release a simple but well crafted iOS game in 100 hours.

The 100 hour deadline is part business—as this is unlikely to make any money, I probably shouldn’t spend that much time on it—and part creative—having a time constraint will force me to make faster decisions and to not second guess them.

Continue Reading →

Fastlane

Fastlane is mostly pretty great, automating much of the drudgery around releasing apps, but there are issues with Xcode’s UI testing where the simulator will fail to launch with UI Testing Failure - Timeout waiting to launch Target Application. or UI Testing Failure - App state is still not terminated. errors, especially with a large number of UI Tests (Trail Wallet has over 35).

This means that one of the big ticket items of Fastlane, Snapshot, is unreliable with my full test suite. However, I didn’t want to give up on it because the idea of having a process that automatically takes and uploads screenshots to iTunesConnect for all devices across multiple locales based on the current version of the app was just too good to leave behind.

In the end, in order to get reliable results, I ended up duplicating my main scheme and simply removing all other UI Tests, leaving only tests specifically designed for Snapshot. It’s defiling the sanctity of my tests to have tests specifically to take screenshots, of course, but the potential time saving benefits are well worth it and, hopefully, it’s only temporary.

Here’s how I did it:

1. Click the app icon to get access to the Scheme menu, then click ‘Manage schemes…’

Screenshot showing how to access the scheme manager in Xcode

    2. Select your main app scheme, then down in the bottom left click the gear icon and click “Duplicate”

    Screenshot of the scheme options menu in Xcode

    3. Rename your scheme (e.g. <AppName>Snapshot) then click “Edit…”

    4. Click on `Test` in the left hand list, then click the disclosure indicator next to your UI Tests target and deselect everything except your snapshot tests.

    Screenshot showing how to edit the Test target of the new scheme in Xcode

    5. Finally, (assuming Fastlane is set up in your application folder) edit your Snapfile at `[AppDir]/fastlane/Snapfile` and set the scheme to your newly created scheme:

    
    # A list of devices you want to take the screenshots from
     devices([
       "iPhone 6",
        "iPhone 6 Plus",
       "iPhone 5",
        "iPhone 4s",
        "iPad Air"
    ])
    
    languages([
      "en-US"
    ])
    
    # The name of the scheme which contains the UI Tests
    scheme "TrailWalletSnapshot"
    
    

    Snapshot will use this new scheme and only run the relevant tests.

    It’s not ideal, as having Snapshot run through every test and verify they pass on every device before uploading a build is good practice, but given the unreliable nature of the simulator for me at the moment this at least gets me some of the benefits of using Snapshot.