Category Archives: iPhone

Waiting seems to be something that you have to get used to when dealing with Apple.  Granted, the whole process is vastly more efficient than waitingit was back in the days of physical distribution.  And I’m thankful that that I don’t have to hire a publisher and deal with box designs, CD duplication and the massive up front costs they would have incurred.

In fact the 1 to 2 week waiting time I expect for my first game to be approved is hardly enough time to get my marketing plan up and going.  There’s videos to create, stuff to write, lists to build and people to contact.  It’s all work that takes time.

However, it’s also frustrating when people who are anxious to play it can’t and have to wait weeks before they can – even though the development is finished.

These next few weeks are also a time to start looking forward to my next app.  The first one isn’t yet out the door and the next one is already getting sketched out on the whiteboard.  Getting the jump on development is going to be key to keeping the flow going.

So yes, there is some waiting involved, but it’s actually a welcome break to focus on next steps.

ios developer logoIt took much longer than I expected to actually sign up for the Apple iOS Developer Program.  Two weeks ago after starting the process I found myself searching on Google for “How long does the Apple Developer Signup Take?”  And much to my disappointment it seemed to take anywhere from 10 minutes to a month.

It took me over 2 weeks to get through the process.  Though that was partially my fault.

Signing up as a company requires faxing (Who uses fax machines anymore?) corporate documents to prove the address and ownership of the business back to Apple.  Unfortunately I missed this part in the email Apple sent (my friend got the same email and also missed it) so I sat waiting for an email that I had already received for a few days.

One of the problems I ran into was that the Apple fax line is busy pretty much all day.  Even with the fax machine auto re-dialing and multiple attempts to transmit I ultimately had to wait until the weekend to get through.

After sending the first fax which was a copy of my certificate of incorporation, I got a reply back to confirm they received it.  Several days later and I hadn’t heard anything else from them.

So I decided to use the contact us form to try and nudge the process.  Early the following day I got a call from Apple – I sent the wrong documents!

Now I had to send another fax, and again I had trouble getting through on the weekdays.  Finally got the documents faxed on Saturday.  Monday and Tuesday passed without even getting confirmation that they received the fax so I got back onto the contact us form to prod the application along.

9am Wednesday morning I got the call, they got the fax, everything looked good, and they were finally ready to take my money for the Developer program.

Now fully paid for there’s still more process to go through.  The application gets passed up through various groups within Apple who check and setup the Account and it takes up to another 24 hours before I get access to iTunes connect.

There is a stark contrast between the consumer facing side of Apple and it’s backend business processes. Apple stores are known for being simple, sparse, clean and new.  For a company that is trying to obsolete the cdrom to be still only accepting faxed documents, and having a signup process that seems to be highly manual with lots of people on the phones and can take weeks feels like a bit of a disconnect.

The takeaway here is that if you’re applying to Apple’s developer program:

  1. Carefully read all the emails they send you
  2. Use the contact us form to push your application to the top of the stack.

pareto's law, 80-20 ruleThere’s a principal called the Pareto principle or the 80/20 rule that says roughly 80% of the effects come from 20% of the efforts. This ratio seems to pop up everywhere.

In the case of software development what I have experienced in just about every project I have ever worked on is that it also relates to the amount of time it takes to get something done.

As you get to the last few features of a particular product there somehow becomes more things to work on and finish that get added on. For my iPhone game that I’m currently developing it has been functionally complete for several weeks now. A big part of the work was getting the game engine working, getting a collision detection function that worked well, adding all the menus, graphics, and music. All the major components are in place and it comes down to game play tweaks and subtle improvements.

Somehow there is never an end to the amount of things that can be improved. And so it starts taking up more and more time. the last 20% of a project takes roughly 80% of the development time. It’s something to expect, plan for, and in my opinion try to cut in half.

The ethos of the lean start up is to fail fast by testing early and often. When it comes to this last 20% of the work I’m attempting to cut it in half. There may come a time when I have all the time in the world to work on something until it is perfect. I’m not there yet. So corners have to be cut and the first and easiest thing to cut out is the least valuable stuff that takes the most time, energy and effort.

Shipping something is the most important part of the whole endeavor. Take a look at your last 20% of work and decide what’s really necessary and what is just a nice to have enhancement. Cut out the nice to haves and ship sooner. Then gauge the next steps from customer feedback. With the App Store, it’s always possible to publish an update.

Well I’ve had so much fun writing my first iPhone game that I’m starting to think more about what to do next.  So I have put together a bit of a business strategy to help grow into a successful mobile game/app business.

While still in the early days of the mobile app marketplace (the App Store was opened just 3 years ago) the growth has been astonishing.  We’re already seeing some consolidation of the developers as larger development studios are figuring out the marketing processes that work best and the quality of software being published goes up and gets to a point beyond where a single developer can compete.

This consolidation is a natural part of any new technology.  It always starts out as the wild west and eventually the big guys come in with some acquisitions and start to dominate.

However, though it is getting tough to crack into the top 100 apps for any category in the App Store, there are still some ways for small shops to get there and do well.

The biggest lever that big development studios have to help get them to the top spots on the App Store is that they have a lot of apps.  This network of apps is a platform upon which they can get free advertising to promote their latest and greatest program.  It means that on day one of launching something they can quickly get 10’s of thousands of downloads.  The cost of acquisition for those customers is nearly nothing which makes it hard to compete if you have to promote your apps through paid ads.

That fact massively effects what works as a good iPhone business strategy.  Launching your first product as an awesome fully featured app is going to lead to disappointment.  Listening to the hype that similar games might have gotten with massive install rates and then looking at your own stats may be disheartening.

So a good strategy would be to start ramping up with a slew of apps.  Get as many things into the store that are “Good Enough” that you can start to build your own app network.  This can be iteratively used to help promote each additional app and make each launch bigger than the previous one.

The strategy I have developed maps out the next 5 Games that will sequentially build out the software components required to ultimately build my dream game.  Along the way I’ll have easier games to develop and release and the opportunity to re-skin those games for even more apps in the network.  This way by the time my 5th game is ready to go I’ll have a significant number of customers out there to advertise it to.

It’s going to be a fun ride to get all these things done and out there.

I have been working on my first simple iPhone game for the last couple of weeks and now that it is getting close to finished I thought it was a good time to sign up for the Apple Developer Program.

Lesson Learned: Should have started this process earlier.

I had heard the horror stories of apps taking time to be approved or going through plenty of rejections but I expected the Developer signup to be relatively straight forward… Just like any other online signup process.  But apparently it can take anywhere from a few minutes to a month or more to get approved.

The problem is that they need to confirm that the business is registered and collect copies of articles of incorporation and tax numbers.  It means that at some point they’ll have to call to confirm that I am legally in control of the HalOtis Inc Corporation.

Seems like a bit of overkill, but I guess they are processing payments on behalf of the company so I’m sure there are some KYC (Know Your Customer) concerns as well as helping prevent spam and  fraud.

Hopefully it won’t take a month to finish this.  Was planning to submit my first app into the store next week.

The Apple iTunes App Store search engine is a bit of a black box. Unlike Google which has some transparency (though they keep a lot of things close to the chest). With Google you have the opportunity to find trends through Google Trends, or see competition and search volumes by keyword within the Adwords Keyword Tool. Through Google Analytics you have the ability to track back to find out what keywords provide your website with traffic in great detail.

With Apple you get none of that.

When publishing an iPhone App there are two fields that appear to provide some impact on how your app will rank which you have control over.

  1. the keywords field.  You can only update this field when you publish your app or an update and only get 100 characters to work with.  Max it out with as many of the  best keywords as you can.
  2. the title. Don’t be afraid to put something long in here or to embed a subtitle.  Make sure it is something unique enough that if a friend told you about the app you would be able to find it easily.
Other than these traditional SEO techniques for improving your ranking within the app store there’s one non-traditional SEO trick to getting ranked higher in the the results.  That is the number of downloads your app gets.  there are a number of ways your can influence this from outside the app store.
  • Create some youtube videos
  • Give away free download codes to review sites.
  • Create a webpage for the app
  • Create a Facebook Fan page
  • Tweet about it or create a twitter account
  • blog about your app
  • Send out email
  • Do a “Launch”
Besides these more traditional Internet Marketing approaches to drive traffic you also have several new abilities on the iPhone to market and drive traffic to the store.
  • Cross promote with your other apps.  Use things like house ads, a “More” screen with links to your other stuff, menu items, and pop ups.  Use your existing apps as a platform to advertise your newest apps.
  • Push notifications to your users so that they get notified of your latest promotions.  Directly communicating to your customers where ever they are at any time is HUGE.
  • Mobile advertising through places like AdMob allows you to target by region and device type.  If you want to get your App in front of people it’s always possible to pay to get it there.
There you have it.  There are three main factors you can influence to improve your ranking in the iPhone App Store.  Remember that getting your app published is really just the start of what needs to be done for a successful App business.  A great marketing strategy is key to get your stuff to stand out amongst the 285,000 apps in the App Store.


A couple weeks ago I started working on my first iPhone game. It’s been making slow progress mostly due to distractions preventing me from sitting down and coding as much as I would like to.

However I have been quite impressed with how quickly something can come together even when writing in a language like Objective-C, and using game development concepts that are a bit new to me, on a framework, Cocos2D, that I’m still learning. Sometimes it’s nice to program in high level scripting languages to get things done quickly, but other times it’s nice to get back to basics and remind yourself how memory allocation works, use pointers directly and deal with hardware restrictions. It’s amazing to see how something we usually take for granted like font rendering can bring a game grinding to a halt on the iPhone.

It takes just a couple hours to add entire new features to the game. I have got it to the point now where it’s got all the key components. Collisions, score keeping, bonuses, power-ups, enemies, parallax backgrounds have all been integrated and the control feel has been tweaked. It’s actually fun to play already! In terms of the programming side of things it’s 90% finished.

The next step is a mental shift to get the graphics done for the game and replace the placeholder graphics it has. Graphics will make or break a game. Even though Doodle Jump managed to get by with terrible graphics that kind of novelty is not going to work for the vast majority of games in the App Store. Graphics are a big part of the look and feel, but also a big part of the story in the game. To have a huge success all parts of the game need to be polished and well executed.

Getting the graphics work done is going to be tough. For this first game I have no money to hire a graphic artist to do the work on so I’m going to attempt to do them myself. That means hours of work in Photoshop drawing levels, characters, buttons, bullets, backgrounds and everything else. It’ll be a learning experience though and should help me understand and hire some one to do the graphics for the next game.

Overall feeling from getting this far in the development is that Developing for iOS is actually kind of fun. XCode is one of the best IDEs I have ever used even though it’s different enough to require some time to learn. I don’t know why people complain about having to deal with reference counting on pointers and lack of garbage collection. It’s not that hard to manage your own memory clean-up.

Over the past few weeks I have been reading about and coding my first iPhone game. So far it has proved very fun.

In my entire software programming career I have done a lot of business applications. Mostly in the financial services industry. There’s a lot of mundane stuff that comes up with those sort of applications where you end up coding admin interfaces, tweaking the layout of input fields, or handling errors with friendly messages. Testing this involves (hopefully) some automated unit tests which are a tedious job to write.

Games however are a different beast. At least for the type of game that I’m writing, which is a 2D scroller, most of the things that need to be tested are related to gameplay and require actually playing the game to see how code changes affect the feel. Things like how fast should the bullets move or how sensitive should the movement controls be take some hands on testing.

It’s a workflow that I enjoy using. Write some code, play the game, make notes of things that need to be done, then code some more, and repeat.

It can also be a good laugh to see how some simple changes can affect the game play. Make the controllers extremely sensitive and suddenly the dynamic of the game changes. Introduce a devastating new weapon and it becomes too easy. There seems to be a delicate balance between all the factors involved to produce something fun.

It is fun to write code that actually makes me laugh out loud when I test it out.

For the past two months I have been working full-time on iPhone and iPad apps at work. As I have been building my experience with Objective-C and iPhone development the thought of creating a couple games has been becoming more enticing. Over the last few weeks this small voice has been getting louder as I have been reading about the success of a number of games. Especially the amazing results ($300,000 revenue in 7 days) for The Heist

I had been looking at various cross platform ways to make game for both iPhone and Android platforms but in the end it seems like doing iPhone development in anything other than Objective-C is just frustrating. So native development it is. And that’s great because there’s tons of documentation, full access to all APIs and lots of answers on StackOverflow.

Objective-C really isn’t that bad and while I would prefer to be able to develop in Python with the right framework game development is actually fairly painless.

To start with I picked up a book Learn iPhone and iPad cocos2d Game Development. Which proved to be a great help in getting me off to a running start. I have never done game programming but It’s proving to be very enjoyable. Lots of game play testing required – which is how I like to work.

With the books sample code as a starting point I was able, in just 3 hours, to implement my own control features, add collision detection, weapon types and tweak the game play. The sample code is quickly turning into something unique.

Surprisingly, even at this early stage the game is quite fun and several times during development I found myself getting lost in the game.

For this first game though I’m not striving for perfection. Just get something working and ship it. The hardest thing, and the only thing holding me back from creating more games faster is trouble finding graphic artists to draw sprites for me. I can handle the programming, and I have a friend who is a sound engineer but game graphics people are hard to come by. As a result this first game will be sketched by me.

I’m hoping to have the game programming finished in a week, the artwork will be another week and finally the sound should hopefully take just a few days. If everything stays on schedule it should be in the App Store in about 1 month.

Are you interested in reading more about creating iPhone games on this blog? Leave a comment and let me know.