Monday, August 26, 2013

You call that piracy? HERE'S some Piracy

Saw this, so went and looked at our stats...

We released the first version of our iPhone "strip poker" app, Poker vs Girls in June of 2009 (really based on the App Store limitations, it would have been better described as bikini poker, but strip poker sounded better! Improved marketing for our poker games was the whole idea.) After a lot of tries, the 2.0 version was accepted in early December 2009.

Version 1.0 had an little banner ad spot at the top, so we could promote our other apps. Version 2.0 needed more space, so we removed the ad. No legitimate purchasers have gotten that version 1.0 since December 2009.  In fact the entire app was removed from the App Store in February 2010 as part of Apple's big sexy-app-purge.  Nobody has gotten it legally since then.

That's now over 3 1/2 years ago...here's the Google analytics for that 1.0 ad page, which nobody who did purchase the app would have seen in that whole time.

1.6 Million unique page views.  Every single one of them would be from a pirated version of the app.  (We of course show ads for our other apps on the page that's being shown.)  I'd hope some percent of those people do like the game and keep playing it, so one person could be several of those views, coming from different devices, etc.  But still.

To compare, it did pretty well before it got removed--the total number of copies sold the entire time it was in the App Store was 22,935.




Monday, August 19, 2013

Not so anonymous, that was ME!

Cool, my question got answered

Some of the best companies have had this because of influential founders.  There are plenty of stories about Steve Jobs saying no to stupid ideas.  I'd bet there are lots for Jeff Bezos too.

Microsoft kinda used to with Bill Gates--as long as it didn't go against some sacred products.  Windows & Office trumped everything to the expense of being early but wrong to tablets.   Not so much these days.

Watching everything Google has released or bought, then killed over the years, I don't think they have this either.


Tuesday, August 13, 2013

The difference an Icon makes

We had done the first versions of WORLD 1-1 with a very cartoony icon.


It never really got any traction and never got many downloads.  We wondered about changing the icon to more reflect the 8-bit graphics in the game, and that you're running and jumping.  We submitted an update, the only visible change was to give it the new icon.


Update: A gameplay screenshot to compare...



Before June 28th, it had been free, and getting 1 sale a day (on a good day.)  When it appears in the chart is when the 1.1 update came out and switched to free.  A little bump, but only lasted a day or so. July 25th is when the version with the new icon came out.  A much bigger increase, and it has lasted more than a few days (Update: as of Sept 9, it's still at that higher rate, breaking 2000 on a number of days)--so it's looking good, and has made a huge difference!




Now we have to figure how to get that ~1% conversion rate for upgrading to a higher number.  Even a small bump to the ~2% conversion that Knife Dancing does would be great :)

Now, go get WORLD 1-1 !

Testing iPhone translation coverage...

We are updating one of our apps to include translations.  Since I didn't do the NSLocalizableString() things from the beginning (5 years ago!) there is now some searching and updating.

We wanted to be able to test if everything had been covered, and figured out a very cool trick to do it. (Shawn, Pete and I; and a big part thanks to Pete being in England!)

I setup a British English translation for the project, and set my iPhone to use British English in the settings.  That way my iPhone still works in the language I know best, I'll live with it if it says "Colour" somewhere.



I made a very quick and dirty Mac program that took the regular Localizable.strings and changed so the British version is simply an uppercase copy of the regular text.

(Forgive the crappy formatting, Blogger doesn't do code and indents that well...)

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
NSString *text = [NSString stringWithContentsOfFile:@"/pathTo/English/Localizable.strings" encoding:NSUTF16StringEncoding error:nil]; 
NSMutableString *newText = [NSMutableString string];
NSArray *lines = [text componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];for (int i=0; i<[lines count]; i++) {
NSArray *halves = [[lines objectAtIndex:i] componentsSeparatedByString:@"\" = \""]; 
if ([halves count]>1) {
//Does NOT take into account %f to %F format things...
         //But do fix some newline types...
         NSString    *rightHalf = [[halves objectAtIndex:1] uppercaseString];
         rightHalf = [rightHalf stringByReplacingOccurrencesOfString:@"\\N" withString:@"\\n"];         rightHalf = [rightHalf stringByReplacingOccurrencesOfString:@"\\R" withString:@"\\r"];         rightHalf = [rightHalf stringByReplacingOccurrencesOfString:@"\\T" withString:@"\\t"]; 
[newText appendString:[halves objectAtIndex:0]];
[newText appendString:@"\" = \""];
[newText appendString: rightHalf]; 
[newText appendString:@"\n"];
} else {
[newText appendString:[lines objectAtIndex:i]];
[newText appendString:@"\n"];
}
}
[newText writeToFile:@"/pathTo/British/Localizable.strings" atomically:YES encoding:NSUTF16StringEncoding error:nil];

}

Now its easy for us to run the app and see any items I've missed, like the tabs across the bottom.



PS: As a pretty awesome bonus, switching to British English in the settings changes Siri to be guy with an English accent.