Android Studio: Not Ready For Prime Time


As one would expect with a fine product, it would work best right out of the box. In the case of Android Studio, some assembly is required. The issue I found was that a newly created project with default settings wouldn’t compile. I thought that this bug might have been specific to my setup, but after reproducing it on 3 different computers and finding several outstanding questions as well as a few open bugs with Google concerning the issue, I decided that a fix would be a fine thing to write up, hoping it enables other people to develop as painlessly as possible.

Is iOS Dying?


ios7 logo

Apple and Steve Jobs started the smart phone revolution. Just 7 short years ago we had the first iPhone, a technical marvel in its day. The craftsmanship of not only the device but also the iOS operating system was a thing to behold. Apple continued with its excellence in both hardware and software design for years. Unfortunately, the wild ride has ended, at least for the moment. While the hardware has kept up relatively well (although there is not a heck of a lot of innovation), the iOS operating system has, sadly, regressed.

Upgrading Your iPhone App to iOS 7: The New Status Bar


With the release of iOS 7, there are several changes in how you lay out and customize the appearance of your UI. In particular, the status bar is now transparent, and your views will show through it. Now this is a great opportunity to redesign your app and take advantage of this new look and feel, but what if you aren’t ready and you want to the old iOS 6 status bar back? Well, I’m excited to tell you that there is a way to do this!

Setting screen orientations in iOS


Recently I started a project which required an iOS app to be locked in landscape orientation. The method mentioned below was always the standard for locking/setting the orientation, but iOS 6 deprecated this method. This post will show and explain some other options that I came across when investigating alternative options for locking the screen.

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight];

Announcing Flipout! 2.0!


Flipout! Logo

I am very pleased to announce a major update to Grio’s memory matching game:  Flipout!

Flipout! is a game of luck and skill where you need to match pairs of cards… similar to the game of Concentration.  We throw a few twists at you, however, to add to the challenge.  What if suddenly the cards decided to up and swap themselves?  Can you keep track of entire rows moving as one?  And just when you thought you had a handle on things, one of the cards explodes, scrambling all of the cards around it!

We ☠ Eclipse


Over the years, I’ve used a variety of editions of Eclipse with a variety of plugins. These days I try and minimize all of that and ask Eclipse to do as little as possible as infrequently as plausible. The below is a diary of sorts of the events that led to that choice.

A selection of ways Eclipse has failed me:

  • It lies about custom key bindings being set, doesn’t actually set them despite indicating it has, and stores the bindings in the robust and never problematic Java-properties+XML standard format resulting in configuration files that look like this:

    org.eclipse.ui.commands=<?xml version\="1.0" encoding\="UTF-8"?>\n<org.eclipse.ui.commands>\n<activeKeyConfiguration keyConfigurationId\="org.eclipse.ui.emacsAcceleratorConfiguration"/>\n<keyBinding commandId\="" contextId\="org.eclipse.ui.contexts.window" keyConfigurationId\="org.eclipse.ui.emacsAcceleratorConfiguration" keySequence\="COMMAND+SHIFT+V"/>\n<keyBinding commandId\="org.eclipse.ui.window.previousPerspective" contextId\="org.eclipse.ui.contexts.window" keyConfigurationId\="org.eclipse.ui.emacsAcceleratorConfiguration" keySequence\="ALT+COMMAND+CTRL+ARROW_LEFT"/>\n</org.eclipse.ui.commands>

    Normally I could care less what format software stores its config files in, but despite the braindead format I’ve still had better luck editing this file by hand than trying to get Eclipse to handle it correctly. If your config file format is too error-prone for your software to handle, maybe it’s time for a change.

The basics of Cocos2d


Recently I started work on an iOS game. I decided not to use the Core Animations framework provided by Apple and instead experiment with some third party game engines. I chose Cocos2D as it is an all in one package. It gives you the ability to add and control sprites, add cool graphics and animations, access to a sound engine and also 2 physics libraries.

Faking network calls for iOS unit tests


If you have used XCode’s built in unit testing frame work , then you’ve likely hit one of the frustrating points of trying to test your application when making api calls over a network. (I’ll save you some time, and let you know the test dies before the call can finish). That’s not great, but it does not mean you can’t test your application and it’s ability to hit your api.