"Barkeep, this round is on me"

How you can do good toward your fellow man, and end up with some quality apps for yourself.

-----

Update March 1st:

I sold 341 apps during February. After subtracting income taxes a donation of $143 was made, providing 20 years worth of clean water for 7 people.

My thanks to all who helped by purchasing apps. The charity runs through March, you can donate directly at http://developersagainstpoverty.org/.

-----

Living in a town which sees more than 100 rain days per year, I find it hard to imagine what it must be like not to have access to clean and safe drinking water. Sadly there are people on this planet for whom clean water is an unattainable luxury.

Unsafe water and a lack of basic sanitation kill more people every year than every form of violence on the planet, including the wars raging around the globe.

This is a fact I learned after tuning in to this week's episode of the chat show iDeveloper Live, where Scotty (the show host) has launched Developers Against Poverty — a campaign asking software developers to help bring clean water to areas of the world that lack it.

After hearing about this initiative, and then being inspired by Baked Ham Games' pledge to donate a percentage of their app sales, I have decided to support the effort as best I can.

Therefore;

I hereby pledge to donate 100% of my February profits from the app store to the cause championed by Developers Against Poverty.

The donation will be made during the first week of March, as soon as the February sales numbers are in.

So if you are at all interested in football (soccer if you're American) or perhaps want to study some Japanese, I hope you will join me in supporting this noble cause by buying some apps, which coincidentally are all currently on sale.

Even if none of my apps appeal to you, do consider donating directly to the Developers Against Poverty charity campaign.

Retro gaming on iPad, for iOS developers

 MADTV and Gabriel Knight running in dospad on the iPad

MADTV and Gabriel Knight running in dospad on the iPad

Sometimes it's good to take a break from coding, and what's more relaxing than running some retro games on your iPad?

Getting DOS onto iPad

Some time ago a DOS emulator called iDOS briefly made it into the App Store, but it was already long gone when I heard of it and tried to download it. As luck would have it the source code for the app is available under the name dospad from Google Code, so any registered iOS developer can build it using Xcode and run it on their iPad.

I believe iDOS or dospad is also available for jailbroken iPads, for those who are not registered developers but are OK with jailbreaking their device.

Installing games

With dospad you get a fully functional DOS system for your iPad. There is mouse support and sound support, making it brilliant for some retro gaming. If the games are mouse driven you can even go full screen for a very immersive experience.

Sierra's adventure game Gabriel Knight is one of my all time favorites, and since I no longer have a floppy disk drive on my computer I downloaded it from an abandonware site called The House of Games, where there's a large selection of old DOS games.

dospad2.png

With dospad installed on your iPad, you can drag files into it using iTunes. Just go to the iPad's Apps tab and select dospad under the File Sharing header.

Dospad comes with an unzip utility so once you have transferred the zip file with your game you can use the DOS command prompt to create a directory and unzip the file into it.

dospad3.png

For Sierra games you then run install.exe to select your sound options. I selected Soundblaster Pro which seems to work well.

Launch the game by running sierra.exe.

Mouse controls

Obviously, this being DOS, you don't use it like a standard touch screen. Instead you control a mouse cursor on screen in the same manner you would using the touchpad on your Macbook. Tapping the screen left clicks at the position the cursor points to.

dospad4.png

You can play either in portrait or landscape mode, as well as full screen.

dospad5.png

Happy retro gaming, and make sure to save your game often.

Add your own teams to Starting 11

Version 2.0 of Starting 11 was just submitted for App Store review and should be available on the store shortly.

New features

The new version lets you add any number of your own favorite teams and players.

Formations you prepare are stored for future modifications, meaning you don't need to start over from the beginning the next time you want to prepare a starting eleven.

How to get it for free

Version 2.0 will be priced at $2, but it is a free upgrade for users of version 1.0. So if you haven't yet downloaded Starting 11 you can get 2.0 for free by acting now, before it goes online at the store.

App store link

The evolution of an iPhone app interface

I recently released Starting 11, an iPhone app in which you can pick your own football team line up and share it via e-mail and Facebook.

From idea to app store submission took about 10 evenings of work. The lions share of that time was spent perfecting the user interface. Below are the design iterations from idea to App Store release, click the images for full versions.

Since I had the idea for this app just before the FIFA World Cup started, I quickly decided to use the Xcode template "Navigation-based Application" to simplify development, hoping to get it published before the World Cup had finished. By focusing on polishing the pitch view, which would be the view where the user spends most of his time, I figured I would get the most bang for my efforts.

Initial idea sketch

Starting11_idea.png

Using the brilliant and free Adobe Ideas app on my iPad i quickly sketched the basic UI and zoomed the resulting image to match the size of my iPhone. This gave me a feel for the size of the UI components, allowing me to decide that it would be feasible to have a full football team on screen at once.

Grass and scoreboard

To generate the grass for the pitch I followed Andrew Houle's Photoshop tutorial, ending up with a huge image of grass texture. My brother graciously provided me with the chalk lines marking the pitch and with the scoreboard graphic which has a nice detailed mesh effect only visible with the extra resolution available on the iPhone 4.

Player kits

I had decided to represent the players on the pitch by having their jerseys show the number on the back, the name would appear beneath. My first effort used a combination of rectangular UIViews to create the illusion of the jersey. I was hoping this would allow me to save time, but it just didn't look good enough to match my vision for Starting 11.

I had to implement my own UIView subclass to handle drawing the player using vector graphics. This allowed me to create something that more closely resembled a jersey.

I also decided to add a dark background to the player names.

After using the app in this state for some time I decided that the shoulders needed to be more rounded, and that a black outline around the player added some needed contrast, especially important when using the application outdoors in the sun. For the same reason the color behind the player name was darkened.

I also added a small line to indicate the separation of the player's legs, without which it looked like the players were wearing skirts.

Finally the flags for all countries had some shine added to them, then the Share button was added and I decided that instead of having the team's name appear on screen twice the navigation bar should contain the application's title.

And there you have it, the UI of version 1.0 of Starting 11. What do you think? What would you change?

Looking forward

After the World Cup is done and we have a new world champion team, the next step will be to add the possibility for customers to add and modify teams. This will make the app useful for the club competitions that start up after summer.

Regarding the iPad I think Starting 11 would be a wonderful fit for the larger screen, so I plan to make it a universal app that supports both the iPhone and the iPad form-factors.

Until these steps are done the app will remain free. I will eventually start charging.

Starting 11 for iPhone in HD

It has yet to be listed in the App Store, but I'd like to introduce you to my latest effort. Starting 11 is an app developed for the ongoing FIFA World Cup.

You choose which team you want to manage and position the players on the pitch in the formation you prefer. You can then share the resulting lineup via e-mail or Facebook.

Starting 11 has been in review at Apple for a over a week already so it should hopefully go live shortly.

Retina Display ready

This is my first attempt at an app supporting the full resolution of the Retina Display of iPhone 4. The difference in detail level is simply astounding, as you can see for yourself below.

Click the image for full size comparison.

On the iPad App Store from day one

memory+card+icon+80.png

I have just learned that my first iPad app has been approved by Apple and will be available from the App Store on opening day.

A Memory Game gives you the opportunity to practice your memory by trying to find and match pairs of cards together. The first version features the two card decks Flags and Symbols.

Once the store is online you will be able to download A Memory Game for free [iTunes link].

memory+preview+small.png

Hiragana, Katakana and the WWDC Wall of Apps

At WWDC there was a really cool wall of apps, which used 20 Apple Cinema Displays to show the icons of the 20,000 most popular iPhone apps, and illuminate them whenever they were downloaded from the App Store. Pretty neat!

WallOfAppsSynthOverview.png

Greg Pascale, a student at Brown University, made a Photosynth of the whole wall, allowing us to study it in detail. I took the opportunity to look for my applications, and found them at the far right of the wall.

WallOfAppsSynthTEB.png

I can hereby claim having had a presence at WWDC '09. Sweet!

10 000 App Store Downloads

As of the latest available weekly sales report on iTunes Connect, the number of downloads for my three iPhone applications have passed 10 000!

The apps are Hiragana Lite (free), Hiragana ($2.99) and Katakana ($2.99).

I am amazed at the success of these admittedly simple applications and would like to extend my sincerest thanks to my customers, especially those who have left feedback and pushed me to improve the apps.

The numbers

 (click to view large version)

(click to view large version)

The vast majority of downloads have naturally been for the free version Hiragana Lite. However with just under 10% of the total downloads, the paid apps have together been able to edge over the 1 000 downloads line. This is way beyond my wildest hopes.

The explosion of Hiragana Lite downloads makes the sales lines for the paid applications look almost flat. But if we disregard the Hiragana Lite downloads and look closer at the sales of the paid apps, combining their numbers, we notice something interesting.

Don't let the changed scale on the y-axis in the following graph confuse you, it goes to 1000 instead of the 9000 shown in the graph above.

Before the release of the free version the sales trend had been declining after the first few weeks. It looks like it was about to go flat right around 500 sales. However since Hiragana Lite has been available sales have picked up and have held remarkably steady.

My conclusion to this is that it is a very good idea to make a free version of your app available, letting potential customers try before they buy.

A second conclusion is that I should probably set aside some time to develop a few more apps.

---

*Note that these numbers do not include updates, only new customer downloads are counted.

Not announcing the Kinetic Battery Charger app

I had hoped to announce the release of my latest iPhone application on the App Store, sadly that's not happening here.

Lately I've been experimenting with the built in accelerator and wanted to put the code to use in an actual app, so I decided to make an app which simulates charging the phone battery when you shake it. Like you would shake your kinetic wristwatch to keep it running.

I designed a battery graphic and added a bar that grows when the phone is shaken to simulate charging. I thought it turned out really well, and the people I've shown it to have said it's hilarious even though they weren't fooled for long.

kineticscreenshot.jpg

I submitted the application as a freebie to the Entertainment category on the App Store, but it turns out Apple's reviewer didn't find it entertaining. Instead I received a letter stating that it wouldn't be allowed on the store.

Unfortunately, your application, Kinetic Battery Charger, cannot be added to the App Store because it uses standard iPhone screen images in a non-standard way, potentially resulting in user confusion. Changing the behavior of standard iPhone graphics, actions, and images, or simulating failures of those graphics, actions, or images is a violation of the iPhone Developer Program agreement which requires applications to abide by the Human Interface Guidelines.

Now this is obviously a form letter as I am not using any standard iPhone screen images at all, except for the info-button which works as expected by revealing a settings screen. I sent a reply stating this fact but have not heard back.

I also spent a few hours poring over the Human Interface Guidelines in search for anything explaining why my application would not be acceptable but came up empty handed.

I find it a little frustrating that the feedback you get from the App Store reviewers doesn't contain any actual information about what they are objecting to. How hard can it be to take a screenshot of the application and draw a circle to point out the offending piece?

Oh well, back to updating the apps I already have on the store, that will hopefully be time better spent.

Analyzing App Store sales for 2008

Way back in October I wrote a post analyzing the sales data from the first three weeks of my applications in the App Store. Things were looking good, with over 250 sales in those three weeks.

Now that we're a little bit into 2009, it's time to take a look at how the sales performance evolved over the rest of 2008. Interestingly the combined sales of the 13 weeks since my previous report have failed to even equal those of the three initial weeks.

Click the images for higher resolution.

Sales Growth

All in all my two apps, Hiragana and Katakana, racked up a total of 467 sales during 2008. As can be seen the sales have leveled off to just a few per week, it will be interesting to see if the release of the free Hiragana Lite has any effect going forward.

Biggest Markets

Like before just under half the sales were generated through the US App Store, with Germany coming in second.

Payout

So far the sales have generated the following payouts:

$ 609

€ 207

¥ 5690

It seems Apple don't strictly follow the $250 minimum revenue per region rule before paying out. The Japanese amount above is way less than $250, and the dollar amount actually includes three separate payouts of $430, $91 and $88 respectively.

Announcing Hiragana Lite

I have decided to make a free version of my japanese study aid application, Hiragana available on the iPhone App Store.

This free version is exactly like the paid version except for 3 small differences:

  1. It's called Hiragana Lite.
  2. It contains the 46 basic hiragana characters, as opposed to the full set of 104 hiragana caracters available in the full version.
  3. Buttons on the info screen which open the App Store using the technique described in my earlier post Launching the App Store from within your iPhone application.

I'd be very happy if you gave it a try and leave me your feedback.

Hiragana Lite (App Store link).

I have also decided to mark the occasion by lowering the prices for the full versions of Hiragana and Katakana to $2.99.

Launching the App Store from within your iPhone application

Today I decided to figure out how to launch the App Store application from within an iPhone application using the SDK.

It turns out this is pretty simple, but you have to beware of a few issues.
  • First and foremost, it doesn't work from the iPhone Simulator, in all probability since the App Store application is not available on the simulator.
  • Second you need to provide a valid URL to an application in the App Store. You can access the URL to an application by simply right clicking the Application in iTunes and selecting the "Copy iTunes Store URL" menu item.

Here is the core code needed.

[[UIApplication sharedApplication]
 openURL:[NSURL
  URLWithString:@"http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=291170459&mt=8"]];

The above URL points to my Hiragana application.

I then chose to store the App Store URL in the info.plist file under a key named TEBAppStoreLink, so that I can use the same code for any future applications.

I ended up with this method for launching the App Store with the URL in the info.plist file.

- (void)goToAppStore
{
  UIApplication *app = [UIApplication sharedApplication];

  // Get the url from info.plist.
  NSString *appStoreLink = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"TEBAppStoreLink"];

  // Open the url if it was available.
  if(appStoreLink){
  [app openURL:[NSURL URLWithString:appStoreLink]];
  }
}


What really happens is that Mobile Safari is launched with the provided URL, and upon realizing that the link is an App Store link it in turn launches the App Store application.

Of course, if you provide any other URL it just opens in Safari as usual. I haven't tested what happens if a YouTube URL is used, but I imagine the YouTube app would launch. That, however,  is not the problem i set out to solve today.

Japanese navy flag and the App Store reviewer backlash, an apology

As you may remember from my previous post Analyzing App Store sales data, the vast majority of sales I've seen for my iPhone applications have been in the US market. 

My applications have been available for well over a month now and I had been wondering why I barely saw any reviews in the store. As it turns out, reviews are not combined worldwide but instead tied to the store the reviewer is in. This makes sense I suppose, avoiding any language problems. Sadly there is no way for a developer, as far as I can see, to get a summary of the reviews left worldwide. Instead you have to go into each and every store to see if any reviews have been written for the specific markets.

I just realized this fact the other day when I switched over to the US iTunes store to see what movies are available for rental there. I then did a search for my app Hiragana and noticed that all of a sudden there were a couple of reviews that I hadn't seen before. Almost none of them positive!

My applications are marketed towards students of the Japanese language, and apparently people were taking offense with the Japanese navy flag that I was using both for my icon graphics and as a background image for the flash cards in my applications.

 Version 1.0 look

Version 1.0 look

Some review excerpts:

"I don't know if you know what it means but it is like using Nazi flag for learning German application icon."
"Are you even aware of the gross political incorrectness of that imperial military flag you're using as an icon and background? People don't even dare fly that thing in Japan anymore."

Read more reviews here (App Store link, make sure you are in the US iTunes store)

The second review above hits it on the spot. I was not at all aware that the flag I was using is considered politically incorrect. In my eyes it is a very neat design, I even bought a jacket featuring it as a design element when visiting China last year. I guess now I know not to bring that jacket when going across the Atlantic to Aaron Hillegass' Cocoa Bootcamp at the Big Nerd Ranch this winter (more about this in a later blog post). 

I did know the flag was/is used by the Japanese navy and i know that the Japanese committed a bunch load of horrible war crimes during WWII, but it never crossed my mind that people may equate it to the nazi flag. Is this really true? Wouldn't the App Store staff have considered this before clearing the applications for release? Feel free to leave your thoughts in the comments section, I would really appreciate it.

Measures taken

Of course I could not let the current state stand, so here are the measures I have taken to try to rectify the situation.

  • Redesigned icon
  • Removed card background
  • Half price during the full month of November!

Also I would like to express my apologies here to everyone offended by my using that flag in my applications.

Shameless plug

Introducing version 1.1 of my Hiragana and Katakana apps.

Now containing:

  • 100% less Japanese navy flags
  • Refined transition animations
  • Other minor fixes
 Version 1.1 look

Version 1.1 look

These have already been available for a couple of days, and a few more positive reviews have trickled in. If you own the previous versions i recommend getting them updated via the App Store, unless you really want to hang on to that navy flag of course.

If you have avoided purchasing these applications for any reason, now is your chance to get them at a discount; $1.99 as opposed to the regular price of $3.99. Get them at the App Store.

Oh, and don't forget to leave a review in the store if you feel like it. Thanks!

Analyzing App Store sales data

I am currently selling two applications on the iTunes App Store. Hiragana and Katakana are educational applications aimed at the novice students of the Japanese language. Hiragana and Katakana are also the names of the two Japanese character alphabets my applications focus on.

Apple provides sales data for applications sold via the App Store, but the data is presented in the most unintuitive way possible, as plain data tables. This makes it extremely hard to get a view of sales performance, so I dropped the data files for my first three weeks of sales into my favorite data analysis application and ended up with the following insights. Click the images for higher resolution.

Sales Growth

Hiragana was first available for download from the App Store on 20th of September, with Katakana following on the 27th. In less than three weeks 266 units have been sold with Hiragana representing the majority of sales. The last week had the highest sales with a combined 126 units, 71 of which were Hiragana and 55 were Katakana.

Biggest Markets

Close to half of the sales were in the US market (122) with Germany, Canada, Japan and Australia being the other regions with more than ten sales each. The long tail of stores selling less than ten units represents 85 sold units, with 11 stores clocking in at one sold unit each. I doubt I'll ever see any profits from those markets as I need to sell approximately 100 units in a store to reach Apples minimum amount of $250 for royalty payout.

The information above is based on the weekly stats reported by Apple. Apple also provide daily statistics, but you have to grab them while they're fresh, only the last 7 days are available. I was out of town for a little over a week and forgot to download a few days worth of data. Going forward I'll try to store every day and return with a more detailed analysis. It should be interesting to se the daily trends. I would expect weekends to lead the sales since that's when people may have the extra time to play around with their iPods and iPhones. We'll see.

Published on the App Store: Hiragana

My first iPhone/iPod Touch application, Hiragana, has been published on the App Store. Apple's review of it took less than a week from submission to publication which did catch me off guard, as I was hoping to have more time to prepare a webpage for its launch.

HiraganaPrimaryScreenshot.png

Hiragana is a flash card application which helps me, and hopefully others as well, take advantage of occasional down time during the day to study the Japanese hiragana characters. 

You can slide the cards left/right to flip through them. There are 104 character cards in all, plus one information card which functions as the application manual.

Sliding the card upwards reveals the pronunciation of the character.

A double tap zooms the card out to fit the whole card on screen, and presents a card removal button similar to the ones in Mobile Safari's tab view.

The cards can either be studied in order or in randomized order. This is toggled by tapping the crossed arrows in the lower left corner.

The i-button in the lower right flips the view around and allows the customer full control over which characters to include in the card set. 

The application makes use of Core Animation to provide a very smooth and pleasant user experience.

Hiragana is available now for $3.99, all feedback is appreciated.

A version of the application focusing on the Katakana characters has also been submitted, but it is still in review.

Running SDK apps on a jailbroken 2.0.1 iPhone [Updated]

Update: There is useful information in the comments about how to do this with later versions of the SDK as well. Thanks to everyone who has contributed. 

 

This summer I've spent some time working on my iPhone app, which I hope to release on the App Store later this fall.

Since I imported my iPhone from the USA, I have to use the iPhone Dev Team's Pwnage Tool to unlock and jailbreak it. I chose to stay on firmware 1.1.4 until 2.0.1 was available to avoid the performance issues that were widely reported. This means I have not had the opportunity to try my application on the phone itself, but last night I updated to 2.0.1 and tried installing the app.

It turns out my application works great, but I still need to add a few more features and spend some time generating nice visuals to replace the placeholder graphics I am using.

To get the application running on the iPhone I had to copy it using scp to the /Applications directory on the phone and bypass the iPhone Code Signature check. After some googling I found the ldid tool written by Jay Freeman, which takes care of the Code Signature.

Here are the steps I used to get my SDK developed app running on a jailbroken iPhone, all commands should be entered as one liners in the Terminal:

1. Make sure you set Xcode to compile for the device, not for the simulator.

2. Compile the project, then copy the resulting MyApp.app directory to the iPhone's /Applications directory.

mac# scp -r MyApp.app/ root@iphone_ip:/Applications/

3. Access the phone using SSH. The root password is alpine, at least on my phone.

mac# ssh root@iphone_ip 

4. Make sure the executable is marked as such, this step is probably unneccessary but it wont hurt anything.

iphone# chmod +x /Applications/MyApp.app/MyApp

5. Install the ldid tool, this step probably needs Cydia to be installed on your phone.

iphone# apt-get install ldid

6. Run ldid on the application executable on the phone.

iphone# ldid -S /Applications/MyApp.app/MyApp

7. Your application icon should now turn up once the phone is rebooted.

These steps will work even if you have not been accepted to the paid iPhone developer program.

Note that these instructions are experimental. I can't be held responsible for whatever happens if you try them.

iPhone App Store and the IRS - a study in frustration [Updated]

I decided to spend my friday afternoon setting up all the necessary information in preparation for selling my applications on the iPhone App Store. Since I am based in the EU, not in the US, I ran into a brick wall of trouble.

Once logged into the iTunesConnect system all seemed very straight forward. Since I watched the Publishing on the App Store video that Apple released on iTunes yesterday I knew I had to sign a contract, so I clicked the Contracts, Tax, & Banking Information link.

I then chose to add a new contract for Paid Applications to my account. There are three necessary steps, so I start by filling in my contact information. Not a problem.

Bank Info

I then need to supply Bank Info, like the name and address of my local bank. So far nothing troublesome at all. I also need to provide:
Account Name
Account Type
Branch/Branch ID
Account Number
Account IBAN
Bank Swift Code
Sort Code (UK) / SIC (SZ)

Here things were getting a little hairy, but I was able to figure everything out. My bank actually provided a convenient account number to IBAN converter and the Swift code (althought they call it a BIC code) on their website.

Tax Info

Finally I just have to add my tax info to the contract and I should be ready to go. But as it turns out, this step requires filling in something called Form W-8BEN and involves the IRS. I have to provide a US Taxpayer Identification Number, so I start exploring how to obtain one of these magic numbers.

As I am registered as an individual I need either a Social Security Number (SSN) or an Individual Taxpayer Identification Number (ITIN). I don't think I qualify for a SSN, not being a US citizen and living in Europe and all, so I start reading up on getting an ITIN. As it turns out this will take six to eight weeks and involves filling out another form, form W-7.

As forms go it is actually pretty good, only one page long. But reading the instructions it seems I have to send it in with my passport, not a copy mind you, the original passport. They promise to return it to me in 60 days.

Now, I'm not about to put my passport in an envelope and send it off across the Atlantic any time soon. I need it for my vacation this summer! I'm actually a bit disappointed as I was hoping to be able to start selling applications on the App Store in July. I just feel this could have been handled easier.
Apple Inc. does have a presence in the EU, so how come I have to register for an american tax number anyway?!

Getting an ITAN is a PAIN

Peter Nixey also notes the trouble getting an ITIN in his article about moving his business to the US:

You can’t get an Social Security Number SSN without being a US resident which means instead getting either an EIN (Employer ID Number) or an ITIN (Individual Tax Payer Number) both of which are a PAIN.
To cut a long story short, despite our best bureaucratic wrangling we were unable to attain ITINs. As if from nowhere though, an EIN popped out of a random conversation we were having with an official who it seems we charmed / confused into co-operation. It seems out that EINs actually require almost no paperwork and that the main thing required is persistence.


Quoted from Coming to America: Getting visas to do business in Silicon Valley

For me getting an EIN is not an option as I don't have a company. Although those numbers seem to be only a phone call away.

UPDATE: This turns out not to be true. After reading up on the SS-4 form for applying for an EIN it turns out foreign (non US) individuals can apply for EIN to comply with IRS withholding regulations. So I called the number (+1-215-516-6999) and ended up with an EIN in just 5 minutes. Very convenient, I just wish Apple had made this more clear on their application site.